3GPP TS 36.355 V15.5.0 (2019-09)
Technical Specification
3rd Generation Partnership Project;
Technical Specification Group Radio Access Network;
Evolved Universal Terrestrial Radio Access (E-UTRA);
LTE Positioning Protocol (LPP)
(Release 15)



Keywords
3GPP, LTE, LCS

3GPP
Postal address

3GPP support office address
650 Route des Lucioles - Sophia Antipolis
Valbonne - FRANCE
Tel.: +33 4 92 94 42 00 Fax: +33 4 93 65 47 16
Internet
http://www.3gpp.org

Copyright Notification
No part may be reproduced except as authorized by written permission.
The copyright and the foregoing restriction extend to reproduction in all media.

© 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
All rights reserved.

UMTS™ is a Trade Mark of ETSI registered for the benefit of its members
3GPP™ is a Trade Mark of ETSI registered for the benefit of its Members and of the 3GPP Organizational Partners
LTE™ is a Trade Mark of ETSI registered for the benefit of its Members and of the 3GPP Organizational Partners
GSM® and the GSM logo are registered and owned by the GSM Association
Bluetooth® is a Trade Mark of the Bluetooth SIG registered for the benefit of its members
Contents
Foreword	10
1	Scope	11
2	References	11
3	Definitions and Abbreviations	12
3.1	Definitions	12
3.2	Abbreviations	13
4	Functionality of Protocol	15
4.1	General	15
4.1.1	LPP Configuration	15
4.1.2	LPP Sessions and Transactions	15
4.1.3	LPP Position Methods	16
4.1.4	LPP Messages	16
4.2	Common LPP Session Procedure	16
4.3	LPP Transport	17
4.3.1	Transport Layer Requirements	17
4.3.2	LPP Duplicate Detection	17
4.3.3	LPP Acknowledgement	18
4.3.3.1	General	18
4.3.3.2	Procedure related to Acknowledgement	18
4.3.4	LPP Retransmission	19
4.3.4.1	General	19
4.3.4.2	Procedure related to Retransmission	19
4.3.5	LPP Message Segmentation	20
5	LPP Procedures	21
5.1	Procedures related to capability transfer	21
5.1.1	Capability Transfer procedure	21
5.1.2	Capability Indication procedure	21
5.1.3	Reception of LPP Request Capabilities	22
5.1.4	Transmission of LPP Provide Capabilities	22
5.2	Procedures related to Assistance Data Transfer	22
5.2.1	Assistance Data Transfer procedure	22
5.2.1a	Periodic Assistance Data Transfer procedure	23
5.2.1b	Periodic Assistance Data Transfer with Update procedure	25
5.2.2	Assistance Data Delivery procedure	25
5.2.2a	Periodic Assistance Data Delivery procedure	26
5.2.3	Transmission of LPP Request Assistance Data	28
5.2.4	Reception of LPP Provide Assistance Data	28
5.3	Procedures related to Location Information Transfer	28
5.3.1	Location Information Transfer procedure	28
5.3.2	Location Information Delivery procedure	29
5.3.3	Reception of Request Location Information	29
5.3.4	Transmission of Provide Location Information	30
5.4	Error Handling Procedures	30
5.4.1	General	30
5.4.2	Procedures related to Error Indication	30
5.4.3	LPP Error Detection	30
5.4.4	Reception of an LPP Error Message	31
5.5	Abort Procedure	32
5.5.1	General	32
5.5.2	Procedures related to Abort	32
5.5.3	Reception of an LPP Abort Message	32
6	Information Element Abstract Syntax Definition	32
6.1	General	32
6.2	LPP PDU Structure	33
–	LPP-PDU-Definitions	33
–	LPP-Message	33
–	LPP-MessageBody	34
–	LPP-TransactionID	34
6.3	Message Body IEs	35
–	RequestCapabilities	35
–	ProvideCapabilities	35
–	RequestAssistanceData	36
–	ProvideAssistanceData	36
–	RequestLocationInformation	37
–	ProvideLocationInformation	37
–	Abort	38
–	Error	38
6.4	Common IEs	38
6.4.1	Common Lower-Level IEs	39
–	AccessTypes	39
–	ARFCN-ValueEUTRA	39
–	ARFCN-ValueNR	39
–	ARFCN-ValueUTRA	39
–	CarrierFreq-NB	40
–	CellGlobalIdEUTRA-AndUTRA	40
–	CellGlobalIdGERAN	41
–	ECGI	41
–	Ellipsoid-Point	41
–	Ellipsoid-PointWithUncertaintyCircle	42
–	EllipsoidPointWithUncertaintyEllipse	42
–	EllipsoidPointWithAltitude	42
–	EllipsoidPointWithAltitudeAndUncertaintyEllipsoid	42
–	EllipsoidArc	43
–	EPDU-Sequence	43
–	HighAccuracyEllipsoidPointWithUncertaintyEllipse	44
–	HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid	44
–	HorizontalVelocity	44
–	HorizontalWithVerticalVelocity	44
–	HorizontalVelocityWithUncertainty	45
–	HorizontalWithVerticalVelocityAndUncertainty	45
–	LocationCoordinateTypes	45
–	NCGI	45
–	PeriodicAssistanceDataControlParameters	46
–	Polygon	46
–	PositioningModes	46
–	SegmentationInfo	47
–	VelocityTypes	47
6.4.2	Common Positioning	47
–	CommonIEsRequestCapabilities	47
–	CommonIEsProvideCapabilities	48
–	CommonIEsRequestAssistanceData	48
–	CommonIEsProvideAssistanceData	49
–	CommonIEsRequestLocationInformation	49
–	CommonIEsProvideLocationInformation	53
–	CommonIEsAbort	55
–	CommonIEsError	56
6.5	Positioning Method IEs	56
6.5.1	OTDOA Positioning	56
6.5.1.1	OTDOA Assistance Data	56
–	OTDOA-ProvideAssistanceData	56
6.5.1.2	OTDOA Assistance Data Elements	57
–	OTDOA-ReferenceCellInfo	57
–	PRS-Info	59
–	TDD-Config	60
–	OTDOA-NeighbourCellInfoList	61
–	OTDOA-ReferenceCellInfoNB	64
– 	PRS-Info-NB	66
–	OTDOA-NeighbourCellInfoListNB	69
6.5.1.3	OTDOA Assistance Data Request	72
–	OTDOA-RequestAssistanceData	72
6.5.1.4	OTDOA Location Information	72
–	OTDOA-ProvideLocationInformation	72
6.5.1.5	OTDOA Location Information Elements	73
–	OTDOA-SignalMeasurementInformation	73
–	OTDOA-SignalMeasurementInformation-NB	76
–	OTDOA-MeasQuality	78
–	AdditionalPath	79
6.5.1.6	OTDOA Location Information Request	79
–	OTDOA-RequestLocationInformation	79
6.5.1.7	OTDOA Capability Information	80
–	OTDOA-ProvideCapabilities	80
6.5.1.8	OTDOA Capability Information Request	82
–	OTDOA-RequestCapabilities	82
6.5.1.9	OTDOA Error Elements	82
–	OTDOA-Error	82
–	OTDOA-LocationServerErrorCauses	82
–	OTDOA-TargetDeviceErrorCauses	83
6.5.2	A-GNSS Positioning	83
6.5.2.1	GNSS Assistance Data	83
–	A-GNSS-ProvideAssistanceData	83
–	GNSS-CommonAssistData	83
–	GNSS-GenericAssistData	84
–	GNSS-PeriodicAssistData	84
6.5.2.2	GNSS Assistance Data Elements	85
–	GNSS-ReferenceTime	85
–	GNSS-SystemTime	86
–	GPS-TOW-Assist	87
–	NetworkTime	87
–	GNSS-ReferenceLocation	90
–	GNSS-IonosphericModel	90
–	KlobucharModelParameter	90
–	NeQuickModelParameter	91
–	GNSS-EarthOrientationParameters	91
–	GNSS-RTK-ReferenceStationInfo	92
–	GNSS-RTK-CommonObservationInfo	93
–	GNSS-RTK-AuxiliaryStationData	94
–	GNSS-TimeModelList	96
–	GNSS-DifferentialCorrections	98
–	GNSS-NavigationModel	100
–	StandardClockModelList	102
–	NAV-ClockModel	103
–	CNAV-ClockModel	103
–	GLONASS-ClockModel	104
–	SBAS-ClockModel	105
–	BDS-ClockModel	105
–	NavModelKeplerianSet	106
–	NavModelNAV-KeplerianSet	107
–	NavModelCNAV-KeplerianSet	108
–	NavModel-GLONASS-ECEF	110
–	NavModel-SBAS-ECEF	111
–	NavModel-BDS-KeplerianSet	112
–	GNSS-RealTimeIntegrity	113
–	GNSS-DataBitAssistance	114
–	GNSS-AcquisitionAssistance	115
–	GNSS-Almanac	118
–	AlmanacKeplerianSet	119
–	AlmanacNAV-KeplerianSet	120
–	AlmanacReducedKeplerianSet	121
–	AlmanacMidiAlmanacSet	122
–	AlmanacGLONASS-AlmanacSet	123
–	AlmanacECEF-SBAS-AlmanacSet	124
–	AlmanacBDS-AlmanacSet	125
–	GNSS-UTC-Model	126
–	UTC-ModelSet1	126
–	UTC-ModelSet2	127
–	UTC-ModelSet3	128
–	UTC-ModelSet4	128
–	UTC-ModelSet5	129
–	GNSS-AuxiliaryInformation	130
–	BDS-DifferentialCorrections	131
–	BDS-GridModelParameter	132
–	GNSS-RTK-Observations	132
–	GLO-RTK-BiasInformation	134
–	GNSS-RTK-MAC-CorrectionDifferences	135
–	GNSS-RTK-Residuals	137
–	GNSS-RTK-FKP-Gradients	138
–	GNSS-SSR-OrbitCorrections	140
–	GNSS-SSR-ClockCorrections	142
–	GNSS-SSR-CodeBias	143
6.5.2.3	GNSS Assistance Data Request	144
–	A-GNSS-RequestAssistanceData	144
–	GNSS-CommonAssistDataReq	144
–	GNSS-GenericAssistDataReq	145
–	GNSS-PeriodicAssistDataReq	146
6.5.2.4	GNSS Assistance Data Request Elements	147
–	GNSS-ReferenceTimeReq	147
–	GNSS-ReferenceLocationReq	148
–	GNSS-IonosphericModelReq	148
–	GNSS-EarthOrientationParametersReq	148
–	GNSS-RTK-ReferenceStationInfoReq	149
–	GNSS-RTK-AuxiliaryStationDataReq	149
–	GNSS-TimeModelListReq	149
–	GNSS-DifferentialCorrectionsReq	150
–	GNSS-NavigationModelReq	150
–	GNSS-RealTimeIntegrityReq	152
–	GNSS-DataBitAssistanceReq	152
–	GNSS-AcquisitionAssistanceReq	153
–	GNSS-AlmanacReq	153
–	GNSS-UTC-ModelReq	154
–	GNSS-AuxiliaryInformationReq	154
–	BDS-DifferentialCorrectionsReq	154
–	BDS-GridModelReq	155
–	GNSS-RTK-ObservationsReq	155
–	GLO-RTK-BiasInformationReq	155
–	GNSS-RTK-MAC-CorrectionDifferencesReq	156
–	GNSS-RTK-ResidualsReq	156
–	GNSS-RTK-FKP-GradientsReq	156
–	GNSS-SSR-OrbitCorrectionsReq	157
–	GNSS-SSR-ClockCorrectionsReq	157
–	GNSS-SSR-CodeBiasReq	157
6.5.2.5	GNSS Location Information	158
–	A-GNSS-ProvideLocationInformation	158
6.5.2.6	GNSS Location Information Elements	158
–	GNSS-SignalMeasurementInformation	158
–	MeasurementReferenceTime	159
–	GNSS-MeasurementList	161
–	GNSS-LocationInformation	164
6.5.2.7	GNSS Location Information Request	165
–	A-GNSS-RequestLocationInformation	165
6.5.2.8	GNSS Location Information Request Elements	165
–	GNSS-PositioningInstructions	165
6.5.2.9	GNSS Capability Information	166
–	A-GNSS-ProvideCapabilities	166
6.5.2.10	GNSS Capability Information Elements	168
–	GNSS-CommonAssistanceDataSupport	168
–	GNSS-ReferenceTimeSupport	169
–	GNSS-ReferenceLocationSupport	169
–	GNSS-IonosphericModelSupport	169
–	GNSS-EarthOrientationParametersSupport	170
–	GNSS-RTK-ReferenceStationInfoSupport	170
–	GNSS-RTK-AuxiliaryStationDataSupport	170
–	GNSS-GenericAssistanceDataSupport	170
–	GNSS-TimeModelListSupport	172
–	GNSS-DifferentialCorrectionSupport	172
–	GNSS-NavigationModelSupport	172
–	GNSS-RealTimeIntegritySupport	173
–	GNSS-DataBitAssistanceSupport	173
–	GNSS-AcquisitionAssistanceSupport	173
–	GNSS-AlmanacSupport	174
–	GNSS-UTC-ModelSupport	174
–	GNSS-AuxiliaryInformationSupport	174
–	BDS-DifferentialCorrectionsSupport	175
–	BDS-GridModelSupport	175
–	GNSS-RTK-ObservationsSupport	175
–	GLO-RTK-BiasInformationSupport	175
–	GNSS-RTK-MAC-CorrectionDifferencesSupport	175
–	GNSS-RTK-ResidualsSupport	176
–	GNSS-RTK-FKP-GradientsSupport	176
–	GNSS-SSR-OrbitCorrectionsSupport	176
–	GNSS-SSR-ClockCorrectionsSupport	176
6.5.2.11	GNSS Capability Information Request	177
–	A-GNSS-RequestCapabilities	177
6.5.2.12	GNSS Error Elements	177
–	A-GNSS-Error	177
–	GNSS-LocationServerErrorCauses	178
–	GNSS-TargetDeviceErrorCauses	178
6.5.2.13	Common GNSS Information Elements	179
–	GNSS-FrequencyID	179
–	GNSS-ID	179
–	GNSS-ID-Bitmap	180
–	GNSS-Link-CombinationsList	180
–	GNSS-NavListInfo	180
–	GNSS-NetworkID	180
–	GNSS-PeriodicControlParam	181
–	GNSS-ReferenceStationID	181
–	GNSS-SignalID	181
–	GNSS-SignalIDs	185
–	GNSS-SubNetworkID	186
–	SBAS-ID	186
–	SBAS-IDs	186
–	SV-ID	187
6.5.3	Enhanced Cell ID Positioning	187
6.5.3.1	E‑CID Location Information	187
–	ECID-ProvideLocationInformation	187
6.5.3.2	E‑CID Location Information Elements	188
–	ECID-SignalMeasurementInformation	188
6.5.3.3	E‑CID Location Information Request	189
–	ECID-RequestLocationInformation	189
6.5.3.4	E‑CID Capability Information	189
–	ECID-ProvideCapabilities	189
6.5.3.5	E‑CID Capability Information Request	190
–	ECID-RequestCapabilities	190
6.5.3.6	E‑CID Error Elements	190
–	ECID-Error	190
–	ECID-LocationServerErrorCauses	191
–	ECID-TargetDeviceErrorCauses	191
6.5.4	Terrestrial Beacon System Positioning	192
6.5.4.1	TBS Location Information	192
–	TBS-ProvideLocationInformation	192
6.5.4.2	TBS Location Information Elements	192
–	TBS-MeasurementInformation	192
–	MBS-BeaconMeasList	192
6.5.4.3	TBS Location Information Request	193
–	TBS-RequestLocationInformation	193
6.5.4.4	TBS Capability Information	194
–	TBS-ProvideCapabilities	194
-	MBS-AssistanceDataSupportList	194
6.5.4.5	TBS Capability Information Request	195
–	TBS-RequestCapabilities	195
6.5.4.6	TBS Error Elements	195
–	TBS-Error	195
–	TBS-LocationServerErrorCauses	195
–	TBS-TargetDeviceErrorCauses	195
6.5.4.7	TBS Assistance Data	196
–	TBS-ProvideAssistanceData	196
6.5.4.8	TBS Assistance Data Elements	196
–	TBS-AssistanceDataList	196
–	MBS-AlmanacAssistance	196
–	MBS-AcquisitionAssistance	197
6.5.4.9	TBS Assistance Data Request	197
–	TBS-RequestAssistanceData	197
6.5.5	Sensor based Positioning	198
6.5.5.0	Introduction	198
6.5.5.1	Sensor Location Information	198
–	Sensor-ProvideLocationInformation	198
6.5.5.2	Sensor Location Information Elements	198
–	Sensor-MeasurementInformation	198
–	Sensor-MotionInformation	199
6.5.5.3	Sensor Location Information Request	200
–	Sensor-RequestLocationInformation	200
6.5.5.4	Sensor Capability Information	201
–	Sensor-ProvideCapabilities	201
6.5.5.5	Sensor Capability Information Request	202
–	Sensor-RequestCapabilities	202
6.5.5.6	Sensor Error Elements	202
–	Sensor-Error	202
–	Sensor-LocationServerErrorCauses	202
–	Sensor-TargetDeviceErrorCauses	202
6.5.5.7	Sensor Assistance Data	203
–	Sensor-ProvideAssistanceData	203
6.5.5.8	Sensor Assistance Data Elements	203
–	Sensor-AssistanceDataList	203
6.5.5.9	Sensor Assistance Data Request	204
–	Sensor-RequestAssistanceData	204
6.5.6	WLAN-based Positioning	204
6.5.6.1	WLAN Location Information	205
–	WLAN-ProvideLocationInformation	205
6.5.6.2	WLAN Location Information Elements	205
–	WLAN-MeasurementInformation	205
6.5.6.3	WLAN Location Information Request	206
–	WLAN-RequestLocationInformation	206
6.5.6.4	WLAN Capability Information	207
–	WLAN-ProvideCapabilities	207
6.5.6.5	WLAN Capability Information Request	207
–	WLAN-RequestCapabilities	207
6.5.6.6	WLAN Error Elements	208
–	WLAN-Error	208
–	WLAN-LocationServerErrorCauses	208
–	WLAN-TargetDeviceErrorCauses	208
6.5.7	Bluetooth-based Positioning	212
6.5.7.1	Bluetooth Location Information	212
–	BT-ProvideLocationInformation	212
6.5.7.2	Bluetooth Location Information Elements	212
–	BT-MeasurementInformation	212
6.5.7.3	Bluetooth Location Information Request	213
–	BT-RequestLocationInformation	213
6.5.7.4	Bluetooth Capability Information	213
–	BT-ProvideCapabilities	213
6.5.7.5	Bluetooth Capability Information Request	214
–	BT-RequestCapabilities	214
6.5.7.6	BT Error Elements	214
–	BT-Error	214
–	BT-LocationServerErrorCauses	214
–	BT-TargetDeviceErrorCauses	215
–	End of LPP-PDU-Definitions	215
7	Broadcast of assistance data	215
7.1	General	215
7.2	Mapping of posSibType to assistance data element	215
7.3	Procedures related to broadcast information elements	216
7.4	Broadcast information elements	218
7.4.1	Basic production	218
7.4.2	Element definitions	218
–	AssistanceDataSIBelement	218
–	OTDOA-UE-Assisted	219
7.5	Broadcast ciphering (informative)	219
Annex A (informative):	Change History	222

Foreword
This Technical Specification has been produced by the 3rd Generation Partnership Project (3GPP).
The contents of the present document are subject to continuing work within the TSG and may change following formal TSG approval. Should the TSG modify the contents of the present document, it will be re-released by the TSG with an identifying change of release date and an increase in version number as follows:
Version x.y.z
where:
x	the first digit:
1	presented to TSG for information;
2	presented to TSG for approval;
3	or greater indicates TSG approved document under change control.
y	the second digit is incremented for all changes of substance, i.e. technical enhancements, corrections, updates, etc.
z	the third digit is incremented when editorial only changes have been incorporated in the document.
1	Scope
The present document contains the definition of the LTE Positioning Protocol (LPP).
2	References
The following documents contain provisions which, through reference in this text, constitute provisions of the present document.
-	References are either specific (identified by date of publication, edition number, version number, etc.) or non specific.
-	For a specific reference, subsequent revisions do not apply.
-	For a non-specific reference, the latest version applies. In the case of a reference to a 3GPP document (including a GSM document), a non-specific reference implicitly refers to the latest version of that document in the same Release as the present document.
[1]	3GPP TR 21.905: "Vocabulary for 3GPP Specifications".
[2]	3GPP TS 36.305: "Stage 2 functional specification of User Equipment (UE) positioning in E-UTRAN".
[3]	3GPP TS 23.271: "Functional stage 2 description of Location Services (LCS)".
[4]	IS-GPS-200, Revision D, Navstar GPS Space Segment/Navigation User Interfaces, March 7th, 2006.
[5]	IS-GPS-705, Navstar GPS Space Segment/User Segment L5 Interfaces, September 22, 2005.
[6]	IS-GPS-800, Navstar GPS Space Segment/User Segment L1C Interfaces, September 4, 2008.
[7]	IS-QZSS, Quasi Zenith Satellite System Navigation Service Interface Specifications for QZSS, Ver.1.1, July 31, 2009.
[8]	Galileo OS Signal in Space ICD (OS SIS ICD), Issue 1.2, February 2014, European Union.
[9]	Global Navigation Satellite System GLONASS Interface Control Document, Version 5.1, 2008.
[10]	Specification for the Wide Area Augmentation System (WAAS), US Department of Transportation, Federal Aviation Administration, DTFA01-96-C-00025, 2001.
[11]	RTCM-SC104, RTCM Recommended Standards for Differential GNSS Service (v.2.3), August 20, 2001.
[12]	3GPP TS 36.331: "Evolved Universal Terrestrial Radio Access (E-UTRA); "Radio Resource Control (RRC); Protocol specification".
[13]	3GPP TS 25.331: "Radio Resource Control (RRC); Protocol Specification".
[14]	3GPP TS 44.031: "Location Services (LCS); Mobile Station (MS) - Serving Mobile Location Centre (SMLC) Radio Resource LCS Protocol (RRLP)".
[15]	3GPP TS 23.032: "Universal Geographical Area Description (GAD)".
[16]	3GPP TS 36.211: "Evolved Universal Terrestrial Radio Access (E-UTRA); Physical Channels and Modulation".
[17]	3GPP TS 36.214: "Evolved Universal Terrestrial Radio Access (E-UTRA); Physical layer – Measurements".
[18]	3GPP TS 36.133: "Evolved Universal Terrestrial Radio Access (E-UTRA); Requirements for support of radio resource management".
[19]	3GPP TS 23.003: "Numbering, addressing and identification".
[20]	OMA-TS-LPPe-V1_0, LPP Extensions Specification, Open Mobile Alliance.
[21]	3GPP TS 36.101: "Evolved Universal Terrestrial Radio Access (E-UTRA); User Equipment (UE) radio transmission and reception".
[22]	ITU-T Recommendation X.691 (07/2002) "Information technology - ASN.1 encoding rules: Specification of Packed Encoding Rules (PER)" (Same as the ISO/IEC International Standard 8825-2).
[23]	BDS-SIS-ICD-2.0: "BeiDou Navigation Satellite System Signal In Space Interface Control Document Open Service Signal (Version 2.0)", December 2013.
[24]	ATIS-0500027: "Recommendations for Establishing Wide Scale Indoor Location Performance", May 2015.
[25]	Bluetooth Special Interest Group: "Bluetooth Core Specification v4.2", December 2014.
[26]	IEEE 802.11, Part 11: "Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications".
[27]	IETF RFC 6225, "Dynamic Host Configuration Protocol Options for Coordinate-Based Location Configuration Information", July 2011.
[28]	3GPP TS 36.213: "Evolved Universal Terrestrial Radio Access (E-UTRA); Physical layer procedures".
[29]	"Earth Gravitational Model 96 (EGM96)", National Geospatial-Intelligence Agency, NASA.
[30]	RTCM Standard 10403.3: "Differential GNSS (Global Navigation Satellite Systems) Services" – Version 3, October 7, 2016.
[31]	IGS ANTEX: "The Antenna Exchanged Format" – version 1.4, September 15, 2010.
[32]	Federal Information Processing Standards Publication 197, "Specification for the ADVANCED ENCRYPTION STANDARD (AES)", November 26, 2001.
[33]	NIST Special Publication 800-38A, "Recommendation for Block Cipher Modes of Operation Methods and Techniques", 2001.
[34]	3GPP TS 38.101-2: "NR; User Equipment (UE) radio transmission and reception; Part 2: Range 2 Standalone".
[35]	3GPP TS 38.331: "NR; Radio Resource Control (RRC); Protocol specification".
[36]	3GPP TS 38.215: "NR; Physical layer measurements".
[37]	3GPP TS 38.101-1: "NR; User Equipment (UE) radio transmission and reception; Part 1: Range 1 Standalone".
3	Definitions and Abbreviations
3.1	Definitions
For the purposes of the present document, the terms and definitions given in TR 21.905 [1], TS 36.305 [2] and TS 23.271 [3] apply. Other definitions are provided below.
Anchor carrier: In NB-IoT, a carrier where the UE assumes that NPSS/NSSS/NPBCH/SIB-NB for FDD or NPSS/NSSS/NPBCH for TDD are transmitted.
Location Server: a physical or logical entity (e.g., E-SMLC or SUPL SLP) that manages positioning for a target device by obtaining measurements and other location information from one or more positioning units and providing assistance data to positioning units to help determine this. A Location Server may also compute or verify the final location estimate.
NB-IoT: NB-IoT allows access to network services via E-UTRA with a channel bandwidth limited to 200 kHz.
Reference Source: a physical entity or part of a physical entity that provides signals (e.g., RF, acoustic, infra-red) that can be measured (e.g., by a Target Device) in order to obtain the location of a Target Device.
Target Device: the device that is being positioned (e.g., UE or SUPL SET).
Transmission Point (TP): A set of geographically co-located transmit antennas for one cell, part of one cell or one PRS-only TP. Transmission Points can include base station (eNodeB) antennas, remote radio heads, a remote antenna of a base station, an antenna of a PRS-only TP, etc. One cell can be formed by one or multiple transmission points. For a homogeneous deployment, each transmission point may correspond to one cell.
Observed Time Difference Of Arrival (OTDOA): The time interval that is observed by a target device between the reception of downlink signals from two different TPs. If a signal from TP 1 is received at the moment t1, and a signal from TP 2 is received at the moment t2, the OTDOA is t2 – t1.
PRS-only TP: A TP which only transmits PRS signals for PRS-based TBS positioning and is not associated with a cell.
3.2	Abbreviations
For the purposes of the present document, the following abbreviations apply.
ADR	Accumulated Delta-Range
A‑GNSS	Assisted‑GNSS
AP	Access Point
ARFCN	Absolute Radio Frequency Channel Number
ARP	Antenna Reference Point
BDS	BeiDou Navigation Satellite System
BSSID	Basic Service Set Identifier
BTS	Base Transceiver Station (GERAN)
CID	Cell-ID (positioning method)
CNAV	Civil Navigation
CRS	Cell-specific Reference Signals
ECEF	Earth-Centered, Earth-Fixed
ECGI	Evolved Cell Global Identifier
ECI	Earth-Centered-Inertial
E‑CID	Enhanced Cell-ID (positioning method)
EGNOS	European Geostationary Navigation Overlay Service
E-SMLC	Enhanced Serving Mobile Location Centre
E-UTRAN	Evolved Universal Terrestrial Radio Access Network
EOP	Earth Orientation Parameters
EPDU	External Protocol Data Unit
FDMA	Frequency Division Multiple Access
FEC	Forward Error Correction
FKP	(German) Flächen-Korrektur-Parameter (area correction parameter)
FTA	Fine Time Assistance
GAGAN	GPS Aided Geo Augmented Navigation
GLONASS	GLObal'naya NAvigatsionnaya Sputnikovaya Sistema (Engl.: Global Navigation Satellite System)
GNSS	Global Navigation Satellite System
GPS	Global Positioning System
HA GNSS	High-Accuracy GNSS (RTK, PPP)
ICD	Interface Control Document
IGS	International GNSS Service
IOD	Issue of Data
IS	Interface Specification
LLA	Latitude Longitude Altitude
LPP	LTE Positioning Protocol
LPPa	LTE Positioning Protocol Annex
LSB	Least Significant Bit
MAC	Master Auxiliary Concept
MBS	Metropolitan Beacon System
MO-LR	Mobile Originated Location Request
MSAS	Multi-functional Satellite Augmentation System
MSB	Most Significant Bit
msd	mean solar day
MT-LR	Mobile Terminated Location Request
NAV	Navigation
NB-IoT	NarrowBand Internet of Things
NCGI	NR Cell Global Identifier 
NICT	National Institute of Information and Communications Technology
NI-LR	Network Induced Location Request
NPRS	Narrowband Positioning Reference Signals
NR	NR Radio Access
NRSRP	Narrowband Reference Signal Received Power
NRSRQ	Narrowband Reference Signal Received Quality
NTSC	National Time Service Center of Chinese Academy of Sciences
OSR	Observation Space Representation
OTDOA	Observed Time Difference Of Arrival
PDU	Protocol Data Unit
PPP	Precise Point Positioning
PRB	Physical Resource Block
PRC	Pseudo‑Range Correction
PRS	Positioning Reference Signals
posSIB	Positioning System Information Block
PZ-90	Parametry Zemli 1990 Goda – Parameters of the Earth Year 1990
QZS	Quasi Zenith Satellite
QZSS	Quasi-Zenith Satellite System
QZST	Quasi-Zenith System Time
RF	Radio Frequency
RRC	Range‑Rate Correction
Radio Resource Control
RSRP	Reference Signal Received Power
RSRQ	Reference Signal Received Quality
RSTD	Reference Signal Time Difference
RTK	Real-Time Kinematic
RTT	Round Trip Time
RU	Russia
SBAS	Space Based Augmentation System
SET	SUPL Enabled Terminal
SFN	System Frame Number
SLP	SUPL Location Platform
SSID	Service Set Identifier
SSR	State Space Representation
SUPL	Secure User Plane Location
SV	Space Vehicle
TB	Terrestrial Beacon
TBS	Terrestrial Beacon System
TLM	Telemetry
TOD	Time Of Day
TOW	Time Of Week
TP	Transmission Point
UDRE	User Differential Range Error
ULP	User Plane Location Protocol
USNO	US Naval Observatory
UT1	Universal Time No.1
UTC	Coordinated Universal Time
WAAS	Wide Area Augmentation System
WGS‑84	World Geodetic System 1984
WLAN	Wireless Local Area Network

4	Functionality of Protocol
4.1	General
4.1.1	LPP Configuration
LPP is used point-to-point between a location server (E-SMLC or SLP) and a target device (UE or SET) in order to position the target device using position-related measurements obtained by one or more reference sources. Figure 4.1.1-1 shows the configuration as applied to the control- and user-plane location solutions for E-UTRAN (as defined in TS 36.305 [2] and TS 23.271 [3]).
NB-IoT is a non-backward compatible variant of E-UTRAN supporting a reduced set of functionalities. In this specification, procedures and messages specified for the UE equally apply to the UE in NB-IoT.

Figure 4.1.1-1: LPP Configuration for Control- and User-Plane Positioning in E-UTRAN
4.1.2	LPP Sessions and Transactions
An LPP session is used between a Location Server and the target device in order to obtain location related measurements or a location estimate or to transfer assistance data. A single LPP session is used to support a single location request (e.g., for a single MT-LR, MO-LR or NI-LR). Multiple LPP sessions can be used between the same endpoints to support multiple different location requests (as required by TS 23.271 [3]). Each LPP session comprises one or more LPP transactions, with each LPP transaction performing a single operation (capability exchange, assistance data transfer, or location information transfer). In E-UTRAN the LPP transactions are realized as LPP procedures. The instigator of an LPP session will always instigate the first LPP transaction, but subsequent transactions may be instigated by either end. LPP transactions within a session may occur serially or in parallel. LPP transactions are indicated at the LPP protocol level with a transaction ID in order to associate messages with one another (e.g., request and response).
Messages within a transaction are linked by a common transaction identifier.
4.1.3	LPP Position Methods
Internal LPP positioning methods and associated signalling content are defined in this specification.
This version of the specification defines OTDOA, A-GNSS, E-CID, Sensor, TBS, WLAN, and Bluetooth positioning methods.
4.1.4	LPP Messages
Each LPP transaction involves the exchange of one or more LPP messages between the location server and the target device. The general format of an LPP message consists of a set of common fields followed by a body. The body (which may be empty) contains information specific to a particular message type. Each message type contains information specific to one or more positioning methods and/or information common to all positioning methods.
The common fields are as follows:
Field
Role
Transaction ID
Identify messages belonging to the same transaction
Transaction End Flag
Indicate when a transaction (e.g. one with periodic responses) has ended
Sequence Number
Enable detection of a duplicate LPP message at a receiver
Acknowledgement
Enable an acknowledgement to be requested and/or returned for any LPP message

NOTE:	Use of the Transaction ID and Transaction End fields conform to the procedures in clause 5 and are independent of the means used to transport LPP messages (e.g., whether using a NAS MO-LR Request, NAS Generic Transport or user-plane solution).
The following message types are defined:
-	Request Capabilities;
-	Provide Capabilities;
-	Request Assistance Data;
-	Provide Assistance Data;
-	Request Location Information;
-	Provide Location Information;
-	Abort;
-	Error.
4.2	Common LPP Session Procedure
The purpose of this procedure is to support an LPP session comprising a sequence of LPP transactions. The procedure is described in Figure 4.2-1.

Figure 4.2-1 LPP Session Procedure
1.	Endpoint A, which may be either the target or the server, initiates an LPP session by sending an LPP message for an initial LPP transaction j to the other endpoint B (which has an opposite role to A).
2.	Endpoints A and B may exchange further messages to continue the transaction started in step 1.
3.	Either endpoint may instigate further transactions by sending additional LPP messages.
4.	A session is terminated by a final transaction N in which LPP messages will be exchanged between the two endpoints.
Within each transaction, all constituent messages shall contain the same transaction identifier. The last message sent in each transaction shall have the IE endTransaction set to TRUE. Transactions that occur in parallel shall use different transaction IDs; transaction IDs for completed transactions may be reused at any time after the final message of the previous transaction with the same ID is known to have been received.
4.3	LPP Transport
4.3.1	Transport Layer Requirements
LPP requires reliable, in-sequence delivery of LPP messages from the underlying transport layers. This clause describes the transport capabilities that are available within LPP. A UE implementing LPP for the control-plane solution shall support LPP reliable transport (including all three of duplicate detection, acknowledgement, and retransmission).
LPP reliable transport functionality is not used in the user-plane solution.
The following requirements in clauses 4.3.2, 4.3.3, and 4.3.4 for LPP reliable transport apply only when the capability is supported.
4.3.2	LPP Duplicate Detection
A sender shall include a sequence number in all LPP messages sent for a particular location session. The sequence number shall be distinct for different LPP messages sent in the same direction in the same location session (e.g., may start at zero in the first LPP message and increase monotonically in each succeeding LPP message). Sequence numbers used in the uplink and downlink are independent (e.g., can be the same).
A receiver shall record the most recent received sequence number for each location session. If a message is received carrying the same sequence number as that last received for the associated location session, it shall be discarded. Otherwise (i.e., if the sequence number is different or if no sequence number was previously received or if no sequence number is included), the message shall be processed.
Sending and receiving sequence numbers shall be deleted in a server when the associated location session is terminated and shall be deleted in a target device when there has been no activity for a particular location session for 10 minutes.
NOTE:	For LPP control-plane use, a target device can be aware of a location session from information provided at the NAS level for downlink transport of an LPP message.
4.3.3	LPP Acknowledgement
4.3.3.1	General
Each LPP message may carry an acknowledgement request and/or an acknowledgement indicator. A LPP message including an acknowledgement request (i.e., that include the IE ackRequested set to TRUE) shall also include a sequence number. Upon reception of an LPP message which includes the IE ackRequested set to TRUE, a receiver returns an LPP message with an acknowledgement response (i.e., that includes the ackIndicator IE set to the same sequence number of the message being acknowledged). An acknowledgement response may contain no LPP message body (in which case only the sequence number being acknowledged is significant); alternatively, the acknowledgement may be sent in an LPP message along with an LPP message body. An acknowledgement is returned for each received LPP message that requested an acknowledgement including any duplicate(s). Once a sender receives an acknowledgement for an LPP message, and provided any included sequence number is matching, it is permitted to send the next LPP message. No message reordering is needed at the receiver since this stop-and-wait method of sending ensures that messages normally arrive in the correct order.
When an LPP message is transported via a NAS MO-LR request, the message does not request an acknowledgement.
4.3.3.2	Procedure related to Acknowledgement
Figure 4.3.3.2-1 shows the procedure related to acknowledgement.

Figure 4.3.3.2-1: LPP Acknowledgement procedure
1.	Endpoint A sends an LPP message N to Endpoint B which includes the IE ackRequested set to TRUE and a sequence number.
2.	If LPP message N is received and Endpoint B is able to decode the ackRequested value and sequence number, Endpoint B shall return an acknowledgement for message N. The acknowledgement shall contain the IE ackIndicator set to the same sequence number as that in message N.
3.	When the acknowledgement for LPP message N is received and provided the included ackIndicator IE matches the sequence number sent in message N, Endpoint A sends the next LPP message N+1 to Endpoint B when this message is available.
4.3.4	LPP Retransmission
4.3.4.1	General
This capability builds on the acknowledgement and duplicate detection capabilities. When an LPP message which requires acknowledgement is sent and not acknowledged, it is resent by the sender following a timeout period up to three times. If still unacknowledged after that, the sender aborts all LPP activity for the associated session. The timeout period is determined by the sender implementation but shall not be less than a minimum value of 250ms.
In addition, for NB-IoT the timeout period may be determined by the sender implementation based on e.g., the coverage level of the UE.
4.3.4.2	Procedure related to Retransmission
Figure 4.3.4.2-1 shows the procedure related to retransmission when combined with acknowledgement and duplicate detection.

Figure 4.3.4.2-1: LPP Retransmission procedure
1.	Endpoint A sends an LPP message N to Endpoint B for a particular location session and includes a request for acknowledgement along with a sequence number.
2.	If LPP message N is received and Endpoint B is able to decode the ackRequested value and sequence number (regardless of whether the message body can be correctly decoded), Endpoint B shall return an acknowledgement for message N. If the acknowledgement is received by Endpoint A (such that the acknowledged message can be identified and sequence numbers are matching), Endpoint A skips steps 3 and 4.
3.	If the acknowledgement in step 2 is not received after a timeout period, Endpoint A shall retransmit LPP message N and shall include the same sequence number as in step 1.
4.	If LPP message N in step 3 is received and Endpoint B is able to decode the ackRequested value and sequence number (regardless of whether the message body can be correctly decoded and whether or not the message is considered a duplicate), Endpoint B shall return an acknowledgement. Steps 3 may be repeated one or more times if the acknowledgement in step 4 is not received after a timeout period by Endpoint A. If the acknowledgement in step 4 is still not received after sending three retransmissions, Endpoint A shall abort all procedures and activity associated with LPP support for the particular location session.
5.	Once an acknowledgement in step 2 or step 4 is received, Endpoint A sends the next LPP message N+1 for the location session to Endpoint B when this message is available.
4.3.5	LPP Message Segmentation
An LPP message body may be sent in several shorter LPP messages instead of one long LPP message to deliver a large amount of information (e.g., in case the LPP message size exceeds the maximum message size supported by lower layers). When a sender employs LPP message segmentation, the sender shall include the IE SegmentationInfo in each LPP message segment. The sender shall indicate in all but the final message segment that more messages are on the way.
When a receiver receives an LPP message indicating that more messages are on the way, the receiver may store the LPP message. If the receiver receives a subsequent LPP message for the same session and transaction ID, the receiver shall assume that the new LPP message continues the segmentation of the earlier message and may store the new message if the new message indicates that more messages are on the way. If the new message indicates that no more messages are on the way, the receiver shall assume that message segmentation is complete and shall process the new message and any stored message segments for the same session and transaction ID.
The reliable transport rules specified in clause 4.3.2, 4.3.3, and 4.3.4 apply to each individual LPP message segment, independently of the value of the IE SegmentationInfo.
The rules for setting the common fields of the LPP message specified in clause 4.1.4 (Transaction ID, Transaction End Flag, Sequence Number, Acknowledgment) apply to each individual LPP message segment, independently of the value of the IE SegmentationInfo.

Figure 4.3.5-1: LPP Message Segmentation procedure
1.	Endpoint A sends an LPP message to Endpoint B for a particular location session and includes the IE SegmentationInfo set to moreMessagesOnTheWay to indicate that this is one of many LPP message segments used to deliver the entire LPP message body.
2	Endpoint A may send one or more additional LPP messages to Endpoint B with the IE SegmentationInfo set to moreMessagesOnTheWay to continue delivering the segmented LPP message.
3.	Endpoint A sends the final LPP message segment to Endpoint B and includes the IE SegmentationInfo set to noMoreMessages to indicate that this is the final LPP message segment. Endpoint B assumes that the complete LPP message body has been received.
5	LPP Procedures
5.1	Procedures related to capability transfer
The purpose of the procedures that are grouped together in this clause is to enable the transfer of capabilities from the target device to the server. Capabilities in this context refer to positioning and protocol capabilities related to LPP and the positioning methods supported by LPP.
These procedures instantiate the Capability Transfer transaction from TS 36.305 [2].
5.1.1	Capability Transfer procedure
The Capability Transfer procedure is shown in Figure 5.1.1-1.

Figure 5.1.1-1: LPP Capability Transfer procedure
1.	The server sends a RequestCapabilities message to the target. The server may indicate the types of capability needed.
2.	The target responds with a ProvideCapabilities message to the server. The capabilities shall correspond to any capability types specified in step 1. This message shall include the endTransaction IE set to TRUE.
5.1.2	Capability Indication procedure
The Capability Indication procedure allows the target to provide unsolicited capabilities to the server and is shown in Figure 5.1.2-1.

Figure 5.1.2-1: LPP Capability Indication procedure
1.	The target sends a ProvideCapabilities message to the server. This message shall include the endTransaction IE set to TRUE.
5.1.3	Reception of LPP Request Capabilities
Upon receiving a RequestCapabilities message, the target device shall generate a ProvideCapabilities message as a response.
The target device shall:
1>	for each positioning method for which a request for capabilities is included in the message:
2>	if the target device supports this positioning method:
3>	include the capabilities of the device for that supported positioning method in the response message;
1>	set the IE LPP-TransactionID in the response message to the same value as the IE LPP-TransactionID in the received message;
1>	deliver the response message to lower layers for transmission.
5.1.4	Transmission of LPP Provide Capabilities
When triggered to transmit a ProvideCapabilities message, the target device shall:
1>	for each positioning method whose capabilities are to be indicated:
2>	set the corresponding IE to include the device's capabilities;
2>	if OTDOA capabilities are to be indicated:
3>	include the IE supportedBandListEUTRA;
1>	deliver the response to lower layers for transmission.
5.2	Procedures related to Assistance Data Transfer
The purpose of the procedures in this clause is to enable the target to request assistance data from the server to assist in positioning, and to enable the server to transfer assistance data to the target in the absence of a request.
These procedures instantiate the Assistance Data Transfer transaction from TS 36.305 [2].
5.2.1	Assistance Data Transfer procedure
The Assistance Data Transfer procedure is shown in Figure 5.2.1-1.

Figure 5.2.1-1: LPP Assistance data transfer procedure
1.	The target sends a RequestAssistanceData message to the server.
2.	The server responds with a ProvideAssistanceData message to the target containing assistance data. The transferred assistance data should match or be a subset of the assistance data requested in step 1. The server may also provide any not requested information that it considers useful to the target. If step 3 does not occur, this message shall set the endTransaction IE to TRUE.
3.	The server may transmit one or more additional ProvideAssistanceData messages to the target containing further assistance data. The transferred assistance data should match or be a subset of the assistance data requested in step 1. The server may also provide any not requested information that it considers useful to the target. The last message shall include the endTransaction IE set to TRUE.
5.2.1a	Periodic Assistance Data Transfer procedure
The Periodic Assistance Data Transfer procedure is shown in Figure 5.2.1a-1. This procedure enables a target to request a server to send assistance data periodically.
NOTE 1:	In this version of the specification, periodic assistance data transfer is supported for HA GNSS (e.g., RTK) positioning only.

Figure 5.2.1a-1: LPP Periodic Assistance data transfer procedure
1.	The target sends a RequestAssistanceData message to the server using some available transactionID T1. The message contains a periodicSessionID S (different to any other periodicSessionID currently in use between the target and server) in the IE CommonIEsRequestAssistanceData. The message also includes a positioning method specific assistance data request element (e.g., IE A-GNSS-RequestAssistanceData) identifying the type of assistance data being requested together with desired periodicity conditions for sending it and a duration for ending the assistance data transfer (e.g., in IE GNSS-PeriodicAssistDataReq).
2.	The server responds with a ProvideAssistanceData message to the target. The message uses the transactionID T1 in step 1 and indicates the end of this transaction. The message contains the periodicSessionID S in IE CommonIEsProvideAssistanceData. If the request can be supported, the message contains the control parameters in the positioning method specific assistance data (e.g., IE A-GNSS-ProvideAssistanceData) which may confirm or redefine the type of assistance data or periodicity parameters requested at step 1 (e.g., in IE GNSS‑PeriodicAssistData). If the target requested non-periodic assistance data in addition to the periodic assistance data in step 1, the ProvideAssistanceData message may also include the non-periodic assistance data in this step 2 (but not any periodic assistance data).
If the request cannot be supported (fully or partly), an error reason is provided in the positioning method specific IE (e.g., IE A‑GNSS‑Error). If the request cannot even partly be supported remaining steps are then not performed.
NOTE 2:	The target device infers from an absence of the periodicSessionID that the location server does not support periodic assistance data delivery. In that case, the target device does not expect the Data Transaction (Steps 3-7).
3.	When the first periodic message is available, the server sends an unsolicited ProvideAssistanceData message to the target containing the periodicSessionID S and the periodic assistance data confirmed in step 2. The message uses some available transactionID T2 that may be different to T1.
NOTE 3:	The positioning method specific control parameters (e.g., IE GNSS-PeriodicAssistData) are not included in the data transaction.
4.	The server may continue to send further ProvideAssistanceData messages to the target containing the periodic assistance data confirmed or redefined in step 2 when each additional periodicity condition occurs.
NOTE 4:	The target device expects a ProvideAssistanceData messages at the in Step 2 confirmed interval(s). If some or all of the assistance data is not available at each periodic interval, an error indication is provided in the positioning method specific IE (e.g., IE A‑GNSS‑Error).
5.	If the target requires the session to end, the target sends an Abort message to the server for transaction T2 that may optionally include an abortCause. Remaining steps are then omitted.
6.	If the server requires the session to end, the server sends an Abort message to the target for transaction T2 that may optionally include an abortCause. Remaining steps are then omitted.
7.	When the duration or other conditions for ending the periodic assistance data transfer occur, the last ProvideAssistanceData message transferred indicates the end of transaction T2.
5.2.1b	Periodic Assistance Data Transfer with Update procedure

Figure 5.2.1b-1: LPP Periodic Assistance data transfer with update procedure
1.	Steps 1-2 and optionally steps 3-4 are performed for the Periodic Assistance Data Transfer procedure in clause 5.2.1a with the following exceptions:
-	The RequestAssistanceData message in step 1 indicates the update capabilities of the target device.
-	The ProvideAssistanceData message in step 2 indicates the update capabilities of the target device which are supported by the server.
2.	If the target device changes its primary cell and if the update capabilities of the target device supported by the server in step 1 include update of a primary cell ID, the target device sends a RequestAssistanceData message to the server using some available transactionID T3, which is different from T2 (previously used in step 2). The message contains the periodicSessionID S (previously used in step 1) and the new primary cell ID in the IE CommonIEsRequestAssistanceData.
3.	The server responds with a ProvideAssistanceData message to the target. The message uses the transactionID T3 in step 2 and indicates the end of this transaction. The message contains the periodicSessionID S in IE CommonIEsProvideAssistanceData. Steps 2-3 are repeated each time the target device changes its primary cell.
4.	Steps 4-7 are performed for the Periodic Assistance Data Transfer procedure in clause 5.2.1a. 
5.2.2	Assistance Data Delivery procedure
The Assistance Data Delivery procedure allows the server to provide unsolicited assistance data to the target and is shown in Figure 5.2.2-1.

Figure 5.2.2-1: LPP Assistance data transfer procedure
1.	The server sends a ProvideAssistanceData message to the target containing assistance data. If step 2 does not occur, this message shall set the endTransaction IE to TRUE.
2.	The server may transmit one or more additional ProvideAssistanceData messages to the target containing additional assistance data. The last message shall include the endTransaction IE set to TRUE.
5.2.2a	Periodic Assistance Data Delivery procedure
The Periodic Assistance Data Delivery procedure allows the server to provide unsolicited periodic assistance data to the target and is shown in Figure 5.2.2a-1.
NOTE 1:	In this version of the specification, periodic assistance data delivery is supported for HA GNSS (e.g., RTK) positioning only.

Figure 5.2.2a-1: LPP Periodic Assistance data delivery procedure
1.	The server sends a ProvideAssistanceData message to the target using some available transactionID T1 and indicates the end of this transaction. The message contains a periodicSessionID S (different to any other periodicSessionID currently in use between the server and target) in the IE CommonIEsProvideAssistanceData. The message includes positioning method specific assistance data control parameters (e.g., in IE A‑GNSS‑ProvideAssistanceData) identifying the type of periodic assistance data being delivered together with periodicity conditions for sending it and a duration for ending the assistance data delivery (e.g., in IE GNSS‑PeriodicAssistData). The ProvideAssistanceData message may also include non-periodic assistance data (but not any periodic assistance data).
2.	When the first periodic message is available, the server sends an unsolicited ProvideAssistanceData message to the target containing the periodicSessionID S and the periodic assistance data announced in step 1. The message uses some available transactionID T2 that may be different to T1.
NOTE 2:	The positioning method specific control parameters (e.g., IE GNSS-PeriodicAssistData) are not included in the data transaction.
3.	The server may continue to send further ProvideAssistanceData messages to the target containing the periodic assistance data announced in step 2 when each additional periodicity condition occurs.
NOTE3:	The target device expects a ProvideAssistanceData messages at the in Step 2 announced interval(s). If some or all of the assistance data is not available at each periodic interval, an error indication is provided in the positioning method specific IE (e.g., IE A‑GNSS‑Error).
4.	If the target requires the session to end, the target sends an Abort message to the server for transaction T2 that may optionally include an abortCause. Remaining steps are then omitted.
5.	If the server requires the session to end, the server sends an Abort message to the target for transaction T2 that may optionally include an abortCause. Remaining steps are then omitted.
6.	When the duration or other conditions for ending the periodic assistance data transfer occur, the last ProvideAssistanceData message transferred indicates the end of transaction T2.
5.2.3	Transmission of LPP Request Assistance Data
When triggered to transmit a RequestAssistanceData message, the target device shall:
1>	set the IEs for the positioning-method-specific request for assistance data to request the data indicated by upper layers.
5.2.4	Reception of LPP Provide Assistance Data
Upon receiving a ProvideAssistanceData message, the target device shall:
1>	for each positioning method contained in the message:
2>	deliver the related assistance data to upper layers.
5.3	Procedures related to Location Information Transfer
The purpose of the procedures in this clause is to enable the server to request location measurement data and/or a location estimate from the target, and to enable the target to transfer location measurement data and/or a location estimate to a server in the absence of a request.
These procedures instantiate the Location Information Transfer transaction in TS 36.305 [2].
NOTE:	The service layer (e.g. NAS or OMA SUPL ULP) would be used to transfer information associated with a location request from a target to a server (MO-LR).
5.3.1	Location Information Transfer procedure
The Location Information Transfer procedure is shown in Figure 5.3.1-1.


Figure 5.3.1-1: LPP Location Information transfer procedure
1.	The server sends a RequestLocationInformation message to the target to request location information, indicating the type of location information needed and potentially the associated QoS.
2.	The target sends a ProvideLocationInformation message to the server to transfer location information. The location information transferred should match or be a subset of the location information requested in step 1 unless the server explicitly allows additional location information. If step 3 does not occur, this message shall set the endTransaction IE to TRUE.
3.	If requested in step 1, the target sends additional ProvideLocationInformation messages to the server to transfer location information. The location information transferred should match or be a subset of the location information requested in step 1 unless the server explicitly allows additional location information. The last message shall include the endTransaction IE set to TRUE.
5.3.2	Location Information Delivery procedure
The Location Information Delivery allows the target to provide unsolicited location information to the server. The procedure is shown in Figure 5.3.2-1.


Figure 5.3.2-1: LPP Location Information Delivery procedure
1.	The target sends a ProvideLocationInformation message to the server to transfer location information. If step 2 does not occur, this message shall set the endTransaction IE to TRUE.
2.	The target may send one or more additional ProvideLocationInformation messages to the server containing additional location information data. The last message shall include the endTransaction IE set to TRUE.
5.3.3	Reception of Request Location Information
Upon receiving a RequestLocationInformation message, the target device shall:
1>	if the requested information is compatible with the target device capabilities and configuration:
2>	include the requested information in a ProvideLocationInformation message;
2>	set the IE LPP-TransactionID in the response to the same value as the IE LPP-TransactionID in the received message;
2>	deliver the ProvideLocationInformation message to lower layers for transmission.
1>	otherwise:
2>	if one or more positioning methods are included that the target device does not support:
3>	continue to process the message as if it contained only information for the supported positioning methods;
3>	handle the signaling content of the unsupported positioning methods by LPP error detection as in 5.4.3.
5.3.4	Transmission of Provide Location Information
When triggered to transmit ProvideLocationInformation message, the target device shall:
1>	for each positioning method contained in the message:
2>	set the corresponding IE to include the available location information;
1>	deliver the response to lower layers for transmission.
5.4	Error Handling Procedures
5.4.1	General
This clause describes how a receiving entity (target device or location server) behaves in cases when it receives erroneous or unexpected data or detects that certain data are missing.
5.4.2	Procedures related to Error Indication
Figure 5.4.2-1 shows the Error indication procedure.

Figure 5.4.2-1: LPP Error Indication procedure
1.	Endpoint A sends an LPP message to Endpoint B.
2.	Endpoint B determines that the LPP message in step 1 contains an error. Endpoint B returns an Error message to Endpoint A indicating the error or errors and discards the message in step 1. If Endpoint B is able to determine that the erroneous LPP message in step 1 is an LPP Error or Abort Message, Endpoint B discards the message in step 1 without returning an Error message to Endpoint A.
5.4.3	LPP Error Detection
Upon receiving any LPP message, the receiving entity shall attempt to decode the message and verify the presence of any errors and:
1>	if decoding errors are encountered:
2>	if the receiver can not determine that the received message is an LPP Error or Abort message:
3>	return an LPP Error message to the sender and include the received LPP-TransactionID, if this was decoded, and type of error;
3>	if the receiver can determine the session and the LPP-TransactionID and the received message includes the IE SegmentationInfo and the receiver has previously stored message segments for this session and LPP-TransactionID:
4>	discard all stored LPP message segments for this session and LPP-TransactionID;
3>	discard the received message and stop the error detection procedure;
1>	if the message is a duplicate of a previously received message:
2>	discard the message and stop the error detection procedure;
1>	if the LPP-TransactionID matches the LPP-TransactionID for a procedure that is still ongoing for the same session and the message type is invalid for the current state of the procedure:
2>	abort the ongoing procedure;
2>	return an LPP Error message to the sender and include the received transaction ID and type of error;
2>	if the message includes the IE SegmentationInfo and the receiver has previously stored message segments for this session and LPP-TransactionID:
3>	discard all stored LPP message segments for this session and LPP-TransactionID;
2>	discard the message and stop the error detection procedure;
1>	if the message includes the IE SegmentationInfo:
2>	if the receiver has previously stored LPP message segments for this session and LPP-TransactionID:
3>	if the received message type is different to the stored message type:
4>	return an LPP Error message to the sender and include the received transaction ID and type of error;
4>	discard the message and all stored LPP message segments for this session and LPP-TransactionID and stop the error detection procedure;
2>	if the IE SegmentationInfo has the value moreMessagesOnTheWay:
3>	store the received message;
NOTE:	As an implementation option, the receiver of an LPP Provide Assistance Data or LPP Provide Location Information message may process the received message segment instead of storing the message.
2>	if the IE SegmentationInfo has the value noMoreMessages:
3>	continue error detection for the received message and any stored LPP message segments for this session and LPP-TransactionID;
1> if the message type is an LPP RequestCapabilities and some of the requested information is not supported:
2>	return any information that can be provided in a normal response.
1>	if the message type is an LPP RequestAssistanceData or RequestLocationInformation and some or all of the requested information is not supported:
2>	return any information that can be provided in a normal response, which includes indications on other information that is not supported.
5.4.4	Reception of an LPP Error Message
Upon receiving an Error message, a device shall:
1>	abort any ongoing procedure associated with the LPP-TransactionID if included in the received message.
The device may:
1>	restart the aborted procedure taking into consideration the returned error information.
5.5	Abort Procedure
5.5.1	General
The purpose of the abort procedure is to allow the target device or location server to abort an ongoing procedure due to some unexpected event (e.g., cancellation of a location request by an LCS client). It can also be used to stop an ongoing procedure (e.g., periodic location reporting from the target device).
5.5.2	Procedures related to Abort
Figure 5.5.2-1 shows the Abort procedure.

Figure 5.5.2-1: LPP Abort procedure
1.	A procedure P is ongoing between endpoints A and B.
2.	Endpoint A determines that the procedure must be aborted and sends an Abort message to Endpoint B carrying the transaction ID for procedure P. Endpoint B aborts procedure P.
5.5.3	Reception of an LPP Abort Message
Upon receiving an Abort message, a device shall:
1>	abort any ongoing procedure associated with the transaction ID indicated in the message.
6	Information Element Abstract Syntax Definition
6.1	General
The contents of each LPP message is specified in clause 6.2 using ASN.1 to specify the message syntax and using tables when needed to provide further detailed information about the fields specified in the message syntax.
The ASN.1 in this clause uses the same format and coding conventions as described in Annex A of TS 36.331 [12].
Transfer syntax for LPP messages is derived from their ASN.1 definitions by use of Basic Packed Encoding Rules (BASIC-PER), Unaligned Variant, as specified in ITU-T Rec. X.691 [22]. The encoded LPP message always contains a multiple of 8 bits.
Transfer syntax for LPP IEs is derived from their ASN.1 definitions by use of Basic Packed Encoding Rules (BASIC-PER), Unaligned Variant, as specified in ITU-T Rec. X.691 [22]. The encoded LPP IE always contains a multiple of 8 bits. This applies when a single LPP IE is encoded as the basic production, i.e. for other purposes than encoding the LPP IE within an LPP message.
The need for fields to be present in a message or an abstract type, i.e., the ASN.1 fields that are specified as OPTIONAL in the abstract notation (ASN.1), is specified by means of comment text tags attached to the OPTIONAL statement in the abstract syntax. The meaning of each tag is specified in table 6.1-1. These tags are used in the downlink (server to target) direction only.
Table 6.1-1: Meaning of abbreviations used to specify the need for fields to be present
Abbreviation
Meaning
Cond conditionTag

Conditionally present
A field for which the need is specified by means of conditions. For each conditionTag, the need is specified in a tabular form following the ASN.1 segment. In case, according to the conditions, a field is not present, the target takes no action and where applicable shall continue to use the existing value (and/or the associated functionality) unless explicitly stated otherwise in the description of the field itself.
Need OP

Optionally present
A field that is optional to signal. For downlink messages, the target is not required to take any special action on absence of the field beyond what is specified in the procedural text or the field description table following the ASN.1 segment. The target behaviour on absence should be captured either in the procedural text or in the field description.
Need ON

Optionally present, No action
A field that is optional to signal. If the message is received by the target, and in case the field is absent, the target takes no action and where applicable shall continue to use the existing value (and/or the associated functionality).
Need OR

Optionally present, Release
A field that is optional to signal. If the message is received by the target, and in case the field is absent, the target shall discontinue/ stop using/ delete any existing value (and/ or the associated functionality).

When specifying information elements which are to be represented by BIT STRINGs, if not otherwise specifically stated in the field description of the concerned IE or elsewhere, the following principle applies with regards to the ordering of bits:
-	The first bit (leftmost bit) contains the most significant bit (MSB);
-	the last bit (rightmost bit) contains the least significant bit (LSB).
6.2	LPP PDU Structure
–	LPP-PDU-Definitions
This ASN.1 segment is the start of the LPP PDU definitions.
-- ASN1START

LPP-PDU-Definitions {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) lpp (7) version1 (1) lpp-PDU-Definitions (1) }

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

-- ASN1STOP

–	LPP-Message
The LPP-Message provides the complete set of information for an invocation or response pertaining to an LPP transaction.
-- ASN1START

LPP-Message ::= SEQUENCE {
	transactionID			LPP-TransactionID	OPTIONAL,	-- Need ON
	endTransaction			BOOLEAN,
	sequenceNumber			SequenceNumber		OPTIONAL,	-- Need ON
	acknowledgement			Acknowledgement		OPTIONAL,	-- Need ON
	lpp-MessageBody			LPP-MessageBody		OPTIONAL	-- Need ON
}

SequenceNumber ::= INTEGER (0..255)

Acknowledgement ::= SEQUENCE {
	ackRequested	BOOLEAN,
	ackIndicator	SequenceNumber		OPTIONAL
}

-- ASN1STOP

LPP-Message field descriptions
transactionID
This field is omitted if an lpp-MessageBody is not present (i.e. in an LPP message sent only to acknowledge a previously received message) or if it is not available to the transmitting entity (e.g., in an LPP-Error message triggered by a message that could not be parsed). If present, this field shall be ignored at a receiver in an LPP message for which the lpp-MessageBody is not present.
endTransaction
This field indicates whether an LPP message is the last message carrying an lpp-MessageBody in a transaction (TRUE) or not last (FALSE). When LPP message segmentation is used, only the final LPP message segment may indicate the end of the transaction.
sequenceNumber
This field may be included when LPP operates over the control plane and an lpp-MessageBody is included but shall be omitted otherwise.
acknowledgement
This field is included in an LPP acknowledgement and in any LPP message requesting an acknowledgement when LPP operates over the control plane and is omitted otherwise.
ackRequested
This field indicates whether an LPP acknowledgement is requested (TRUE) or not (FALSE). A value of TRUE may only be included when an lpp-MessageBody is included.
ackIndicator
This field indicates the sequence number of the message being acknowledged.
lpp-MessageBody
This field may be omitted in case the message is sent only to acknowledge a previously received message.

–	LPP-MessageBody
The LPP-MessageBody identifies the type of an LPP message and contains all LPP information specifically associated with that type.
-- ASN1START

LPP-MessageBody ::= CHOICE {
	c1						CHOICE {
		requestCapabilities			RequestCapabilities,
		provideCapabilities			ProvideCapabilities,
		requestAssistanceData		RequestAssistanceData,
		provideAssistanceData		ProvideAssistanceData,
		requestLocationInformation	RequestLocationInformation,
		provideLocationInformation	ProvideLocationInformation,
		abort						Abort,
		error						Error,
		spare7 NULL, spare6 NULL, spare5 NULL, spare4 NULL,
		spare3 NULL, spare2 NULL, spare1 NULL, spare0 NULL
	},
	messageClassExtension	SEQUENCE {}
}

-- ASN1STOP

–	LPP-TransactionID
The LPP-TransactionID identifies a particular LPP transaction and the initiator of the transaction.
-- ASN1START

LPP-TransactionID ::= SEQUENCE {
	initiator				Initiator,
	transactionNumber		TransactionNumber,
	...
}

Initiator ::= ENUMERATED {
	locationServer,
	targetDevice,
	...
}

TransactionNumber ::= INTEGER (0..255)

-- ASN1STOP

6.3	Message Body IEs
–	RequestCapabilities
The RequestCapabilities message body in a LPP message is used by the location server to request the target device capability information for LPP and the supported individual positioning methods.
-- ASN1START

RequestCapabilities ::= SEQUENCE {
	criticalExtensions		CHOICE {
		c1						CHOICE {
			requestCapabilities-r9		RequestCapabilities-r9-IEs,
			spare3 NULL, spare2 NULL, spare1 NULL
		},
		criticalExtensionsFuture	SEQUENCE {}
	}
}

RequestCapabilities-r9-IEs ::= SEQUENCE {
	commonIEsRequestCapabilities		CommonIEsRequestCapabilities		OPTIONAL,	-- Need ON
	a-gnss-RequestCapabilities			A-GNSS-RequestCapabilities			OPTIONAL,	-- Need ON
	otdoa-RequestCapabilities			OTDOA-RequestCapabilities			OPTIONAL,	-- Need ON
	ecid-RequestCapabilities			ECID-RequestCapabilities			OPTIONAL,	-- Need ON
	epdu-RequestCapabilities			EPDU-Sequence						OPTIONAL,	-- Need ON
	...,
	[[	sensor-RequestCapabilities-r13	Sensor-RequestCapabilities-r13		OPTIONAL,	-- Need ON
		tbs-RequestCapabilities-r13		TBS-RequestCapabilities-r13			OPTIONAL,	-- Need ON
		wlan-RequestCapabilities-r13	WLAN-RequestCapabilities-r13		OPTIONAL,	-- Need ON
		bt-RequestCapabilities-r13		BT-RequestCapabilities-r13			OPTIONAL	-- Need ON
	]]
}

-- ASN1STOP

–	ProvideCapabilities
The ProvideCapabilities message body in a LPP message indicates the LPP capabilities of the target device to the location server.
-- ASN1START

ProvideCapabilities ::= SEQUENCE {
	criticalExtensions		CHOICE {
		c1						CHOICE {
			provideCapabilities-r9		ProvideCapabilities-r9-IEs,
			spare3 NULL, spare2 NULL, spare1 NULL
		},
		criticalExtensionsFuture	SEQUENCE {}
	}
}

ProvideCapabilities-r9-IEs ::= SEQUENCE {
	commonIEsProvideCapabilities		CommonIEsProvideCapabilities		OPTIONAL,
	a-gnss-ProvideCapabilities			A-GNSS-ProvideCapabilities			OPTIONAL,
	otdoa-ProvideCapabilities			OTDOA-ProvideCapabilities			OPTIONAL,
	ecid-ProvideCapabilities			ECID-ProvideCapabilities			OPTIONAL,
	epdu-ProvideCapabilities			EPDU-Sequence						OPTIONAL,
	...,
	[[	sensor-ProvideCapabilities-r13	Sensor-ProvideCapabilities-r13		OPTIONAL,
		tbs-ProvideCapabilities-r13		TBS-ProvideCapabilities-r13			OPTIONAL,
		wlan-ProvideCapabilities-r13	WLAN-ProvideCapabilities-r13		OPTIONAL,
		bt-ProvideCapabilities-r13		BT-ProvideCapabilities-r13			OPTIONAL
	]]
}

-- ASN1STOP

–	RequestAssistanceData
The RequestAssistanceData message body in a LPP message is used by the target device to request assistance data from the location server.
-- ASN1START

RequestAssistanceData ::= SEQUENCE {
	criticalExtensions		CHOICE {
		c1						CHOICE {
			requestAssistanceData-r9	RequestAssistanceData-r9-IEs,
			spare3 NULL, spare2 NULL, spare1 NULL
		},
		criticalExtensionsFuture	SEQUENCE {}
	}
}

RequestAssistanceData-r9-IEs ::= SEQUENCE {
	commonIEsRequestAssistanceData		CommonIEsRequestAssistanceData		OPTIONAL,
	a-gnss-RequestAssistanceData		A-GNSS-RequestAssistanceData		OPTIONAL,
	otdoa-RequestAssistanceData			OTDOA-RequestAssistanceData			OPTIONAL,
	epdu-RequestAssistanceData			EPDU-Sequence						OPTIONAL,
	...,
	[[	sensor-RequestAssistanceData-r14
										Sensor-RequestAssistanceData-r14	OPTIONAL,
		tbs-RequestAssistanceData-r14	TBS-RequestAssistanceData-r14		OPTIONAL,
		wlan-RequestAssistanceData-r14	WLAN-RequestAssistanceData-r14		OPTIONAL
	]]
}

-- ASN1STOP

–	ProvideAssistanceData
The ProvideAssistanceData message body in a LPP message is used by the location server to provide assistance data to the target device either in response to a request from the target device or in an unsolicited manner.
-- ASN1START

ProvideAssistanceData ::= SEQUENCE {
	criticalExtensions		CHOICE {
		c1						CHOICE {
			provideAssistanceData-r9	ProvideAssistanceData-r9-IEs,
			spare3 NULL, spare2 NULL, spare1 NULL
		},
		criticalExtensionsFuture	SEQUENCE {}
	}
}

ProvideAssistanceData-r9-IEs ::= SEQUENCE {
	commonIEsProvideAssistanceData		CommonIEsProvideAssistanceData		OPTIONAL,	-- Need ON
	a-gnss-ProvideAssistanceData		A-GNSS-ProvideAssistanceData		OPTIONAL,	-- Need ON
	otdoa-ProvideAssistanceData			OTDOA-ProvideAssistanceData			OPTIONAL,	-- Need ON
	epdu-Provide-Assistance-Data		EPDU-Sequence						OPTIONAL,	-- Need ON
	...,
	[[
	sensor-ProvideAssistanceData-r14	Sensor-ProvideAssistanceData-r14	OPTIONAL,	-- Need ON
	tbs-ProvideAssistanceData-r14		TBS-ProvideAssistanceData-r14		OPTIONAL,	-- Need ON
	wlan-ProvideAssistanceData-r14		WLAN-ProvideAssistanceData-r14		OPTIONAL	-- Need ON
	]]
}

-- ASN1STOP

ProvideAssistanceData field descriptions
commonIEsProvideAssistanceData
This IE is provided for future extensibility and should not be included in this version of the protocol.

–	RequestLocationInformation
The RequestLocationInformation message body in a LPP message is used by the location server to request positioning measurements or a position estimate from the target device.
-- ASN1START

RequestLocationInformation ::= SEQUENCE {
	criticalExtensions		CHOICE {
		c1						CHOICE {
			requestLocationInformation-r9	RequestLocationInformation-r9-IEs,
			spare3 NULL, spare2 NULL, spare1 NULL
		},
		criticalExtensionsFuture	SEQUENCE {}
	}
}

RequestLocationInformation-r9-IEs ::= SEQUENCE {
	commonIEsRequestLocationInformation
										CommonIEsRequestLocationInformation	OPTIONAL,	-- Need ON
	a-gnss-RequestLocationInformation	A-GNSS-RequestLocationInformation	OPTIONAL,	-- Need ON
	otdoa-RequestLocationInformation	OTDOA-RequestLocationInformation	OPTIONAL,	-- Need ON
	ecid-RequestLocationInformation		ECID-RequestLocationInformation		OPTIONAL,	-- Need ON
	epdu-RequestLocationInformation		EPDU-Sequence						OPTIONAL,	-- Need ON
	...,
	[[
	sensor-RequestLocationInformation-r13
										Sensor-RequestLocationInformation-r13
																			OPTIONAL,	-- Need ON
	tbs-RequestLocationInformation-r13	TBS-RequestLocationInformation-r13	OPTIONAL,	-- Need ON
	wlan-RequestLocationInformation-r13	WLAN-RequestLocationInformation-r13	OPTIONAL,	-- Need ON
	bt-RequestLocationInformation-r13	BT-RequestLocationInformation-r13	OPTIONAL	-- Need ON
	]]
}

-- ASN1STOP

RequestLocationInformation field descriptions
commonIEsRequestLocationInformation
This field specifies the location information type requested by the location server and optionally other configuration information associated with the requested location information. This field should always be included in this version of the protocol.

–	ProvideLocationInformation
The ProvideLocationInformation message body in a LPP message is used by the target device to provide positioning measurements or position estimates to the location server.
-- ASN1START

ProvideLocationInformation ::= SEQUENCE {
	criticalExtensions		CHOICE {
		c1						CHOICE {
			provideLocationInformation-r9	ProvideLocationInformation-r9-IEs,
			spare3 NULL, spare2 NULL, spare1 NULL
		},
		criticalExtensionsFuture	SEQUENCE {}
	}
}

ProvideLocationInformation-r9-IEs ::= SEQUENCE {
	commonIEsProvideLocationInformation
										CommonIEsProvideLocationInformation	OPTIONAL,
	a-gnss-ProvideLocationInformation	A-GNSS-ProvideLocationInformation	OPTIONAL,
	otdoa-ProvideLocationInformation	OTDOA-ProvideLocationInformation	OPTIONAL,
	ecid-ProvideLocationInformation		ECID-ProvideLocationInformation		OPTIONAL,
	epdu-ProvideLocationInformation		EPDU-Sequence						OPTIONAL,
	...,
	[[
	sensor-ProvideLocationInformation-r13
										Sensor-ProvideLocationInformation-r13
																			OPTIONAL,
	tbs-ProvideLocationInformation-r13	TBS-ProvideLocationInformation-r13	OPTIONAL,
	wlan-ProvideLocationInformation-r13	WLAN-ProvideLocationInformation-r13	OPTIONAL,
	bt-ProvideLocationInformation-r13	BT-ProvideLocationInformation-r13	OPTIONAL
	]]
}

-- ASN1STOP

–	Abort
The Abort message body in a LPP message carries a request to abort an ongoing LPP procedure.
-- ASN1START

Abort ::= SEQUENCE {
	criticalExtensions		CHOICE {
		c1						CHOICE {
			abort-r9		Abort-r9-IEs,
			spare3 NULL, spare2 NULL, spare1 NULL
		},
		criticalExtensionsFuture	SEQUENCE {}
	}
}

Abort-r9-IEs ::= SEQUENCE {
	commonIEsAbort		CommonIEsAbort			OPTIONAL,	-- Need ON
	...,
	epdu-Abort			EPDU-Sequence			OPTIONAL	-- Need ON
}

-- ASN1STOP

–	Error
The Error message body in a LPP message carries information concerning a LPP message that was received with errors.
-- ASN1START

Error ::= CHOICE {
	error-r9					Error-r9-IEs,
	criticalExtensionsFuture	SEQUENCE {}
}

Error-r9-IEs ::= SEQUENCE {
	commonIEsError		CommonIEsError			OPTIONAL,	-- Need ON
	...,
	epdu-Error			EPDU-Sequence			OPTIONAL	-- Need ON
}

-- ASN1STOP

6.4	Common IEs
Common IEs comprise IEs that are applicable to more than one LPP positioning method.
6.4.1	Common Lower-Level IEs
–	AccessTypes
The IE AccessTypes is used to indicate several cellular access types using a bit map.
-- ASN1START

AccessTypes ::= SEQUENCE {
	accessTypes		BIT STRING {	eutra		(0),
									utra		(1),
									gsm			(2),
									nb-iot		(3),
									nr-v1510	(4) } (SIZE (1..8)),
	...
}

-- ASN1STOP

AccessTypes field descriptions
accessTypes
This field specifies the cellular access type(s). This is represented by a bit string, with a one‑value at the bit position means the particular access type is addressed; a zero‑value means not addressed.

–	ARFCN-ValueEUTRA
The IEs ARFCN-ValueEUTRA and ARFCN-ValueEUTRA-v9a0 are used to indicate the ARFCN of the E-UTRA carrier frequency, as defined in TS 36.331 [12].
-- ASN1START

ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN)

ARFCN-ValueEUTRA-v9a0 ::=	INTEGER (maxEARFCN-Plus1..maxEARFCN2)

ARFCN-ValueEUTRA-r14 ::=	INTEGER (0..maxEARFCN2)

maxEARFCN					INTEGER ::= 65535	-- Maximum value of EUTRA carrier frequency

maxEARFCN-Plus1				INTEGER ::= 65536	-- Lowest value extended EARFCN range

maxEARFCN2					INTEGER ::= 262143	-- Highest value extended EARFCN range

-- ASN1STOP

NOTE:	For fields using the original value range, as defined by IE ARFCN-ValueEUTRA i.e. without suffix, value maxEARFCN indicates that the E-UTRA carrier frequency is indicated by means of an extension.
–	ARFCN-ValueNR
The IE ARFCN-ValueNR is used to indicate the ARFCN applicable for a downlink, uplink or bi-directional (TDD) NR global frequency raster, as defined in TS 38.101-2 [34] and TS 38.101-1 [37].
-- ASN1START

ARFCN-ValueNR-r15 ::= INTEGER (0..3279165)

-- ASN1STOP

–	ARFCN-ValueUTRA
The IE ARFCN-ValueUTRA is used to indicate the ARFCN of the UTRA carrier frequency, as defined in TS 25.331 [13].
-- ASN1START

ARFCN-ValueUTRA ::=	INTEGER (0..16383)

-- ASN1STOP

–	CarrierFreq-NB
The IE CarrierFreq-NB is used to provide the NB-IoT carrier frequency, as defined in TS 36.101 [21].
-- ASN1START

CarrierFreq-NB-r14 ::=		SEQUENCE {
	carrierFreq-r14				ARFCN-ValueEUTRA-r14,
	carrierFreqOffset-r14		CarrierFreqOffsetNB-r14				OPTIONAL,
	...
}

-- ASN1STOP

CarrierFreq-NB field descriptions
carrierFreq
This field specifies the ARFCN applicable for the NB-IoT carrier frequency as defined in TS 36.101 [21, Table 5.7.3-1].
carrierFreqOffset
This field specifies the offset of the NB-IoT channel number to EARFCN as defined in TS 36.101 [21]. 

–	CarrierFreqOffsetNB
The IE CarrierFreqOffsetNB is used to provide the offset of the NB-IoT channel number to EARFCN of a NB-IoT carrier.
-- ASN1START

CarrierFreqOffsetNB-r14 ::=		ENUMERATED {
									v-10, v-9, v-8,	v-7, v-6, v-5, v-4, v-3, v-2, v-1, v-0dot5,
									v0, v1, v2, v3, v4, v5, v6, v7, v8, v9
									}

-- ASN1STOP


CarrierFreqOffsetNB field descriptions
CarrierFreqOffsetNB
This field specifies the offset of the NB-IoT channel number to EARFCN as defined in TS 36.101 [21]. Value v-10 means -10, v-9 means -9, and so on.

–	CellGlobalIdEUTRA-AndUTRA
The IE CellGlobalIdEUTRA-AndUTRA specifies the global Cell Identifier for E‑UTRA or UTRA, the globally unique identity of a cell in E‑UTRA or UTRA.
-- ASN1START

CellGlobalIdEUTRA-AndUTRA ::= SEQUENCE {
	plmn-Identity		SEQUENCE {
							mcc		SEQUENCE (SIZE (3))	OF INTEGER (0..9),
							mnc		SEQUENCE (SIZE (2..3))	OF INTEGER (0..9)
						},
	cellIdentity		CHOICE {
		eutra	BIT STRING (SIZE (28)),
		utra	BIT STRING (SIZE (32))
	},
	...
}

-- ASN1STOP

CellGlobalIdEUTRA-AndUTRA field descriptions
plmn-Identity
This field identifies the PLMN of the cell as defined in TS 36.331 [12].
cellIdentity
This field defines the identity of the cell within the context of the PLMN as defined in TS 36.331 [12] and TS 25.331 [13]. The size of the bit string allows for the 32-bit extended UTRAN cell ID; in case the cell ID is shorter, the first bits of the string are set to 0.

–	CellGlobalIdGERAN
The IE CellGlobalIdGERAN specifies the global Cell Identifier for GERAN, the globally unique identity of a cell in GERAN.
-- ASN1START

CellGlobalIdGERAN ::= SEQUENCE {
	plmn-Identity		SEQUENCE {
							mcc		SEQUENCE (SIZE (3))	OF INTEGER (0..9),
							mnc		SEQUENCE (SIZE (2..3))	OF INTEGER (0..9)
							},
	locationAreaCode		BIT STRING (SIZE (16)),
	cellIdentity			BIT STRING (SIZE (16)),
	...
}

-- ASN1STOP

CellGlobalIdGERAN field descriptions
plmn-Identity
This field identifies the PLMN of the cell.
locationAreaCode
This field is a fixed length code identifying the location area within a PLMN.
cellIdentity
This field specifies the cell Identifier which is unique within the context of the GERAN location area.

–	ECGI
The IE ECGI specifies the Evolved Cell Global Identifier (ECGI), the globally unique identity of a cell in E-UTRA (TS 36.331 [12]).
NOTE:	The IE ECGI is also used for NB-IoT access.
-- ASN1START

ECGI ::= SEQUENCE {
	mcc				SEQUENCE (SIZE (3))	OF INTEGER (0..9),
	mnc				SEQUENCE (SIZE (2..3))	OF INTEGER (0..9),
	cellidentity	BIT STRING (SIZE (28))
}

-- ASN1STOP

–	Ellipsoid-Point
The IE Ellipsoid-Point is used to describe a geographic shape as defined in TS 23.032 [15].
-- ASN1START

Ellipsoid-Point ::= SEQUENCE {
	latitudeSign				ENUMERATED {north, south},
	degreesLatitude				INTEGER (0..8388607),			-- 23 bit field
	degreesLongitude			INTEGER (-8388608..8388607)		-- 24 bit field
}

-- ASN1STOP

–	Ellipsoid-PointWithUncertaintyCircle
The IE Ellipsoid-PointWithUncertaintyCircle is used to describe a geographic shape as defined in TS 23.032 [15].
-- ASN1START

Ellipsoid-PointWithUncertaintyCircle ::= SEQUENCE {
	latitudeSign				ENUMERATED {north, south},
	degreesLatitude				INTEGER (0..8388607),			-- 23 bit field
	degreesLongitude			INTEGER (-8388608..8388607),	-- 24 bit field
	uncertainty					INTEGER (0..127)
}

-- ASN1STOP

–	EllipsoidPointWithUncertaintyEllipse
The IE EllipsoidPointWithUncertaintyEllipse is used to describe a geographic shape as defined in TS 23.032 [15].
-- ASN1START

EllipsoidPointWithUncertaintyEllipse ::= SEQUENCE {
	latitudeSign				ENUMERATED {north, south},
	degreesLatitude				INTEGER (0..8388607),			-- 23 bit field
	degreesLongitude			INTEGER (-8388608..8388607),	-- 24 bit field
	uncertaintySemiMajor		INTEGER (0..127),
	uncertaintySemiMinor		INTEGER (0..127),
	orientationMajorAxis		INTEGER (0..179),
	confidence					INTEGER (0..100)
}

-- ASN1STOP

–	EllipsoidPointWithAltitude
The IE EllipsoidPointWithAltitude is used to describe a geographic shape as defined in TS 23.032 [15].
-- ASN1START

EllipsoidPointWithAltitude ::= SEQUENCE {
	latitudeSign				ENUMERATED {north, south},
	degreesLatitude				INTEGER (0..8388607),			-- 23 bit field
	degreesLongitude			INTEGER (-8388608..8388607),	-- 24 bit field
	altitudeDirection			ENUMERATED {height, depth},
	altitude					INTEGER (0..32767)				-- 15 bit field
}

-- ASN1STOP

–	EllipsoidPointWithAltitudeAndUncertaintyEllipsoid
The IE EllipsoidPointWithAltitudeAndUncertaintyEllipsoid is used to describe a geographic shape as defined in TS 23.032 [15].
-- ASN1START

EllipsoidPointWithAltitudeAndUncertaintyEllipsoid ::= SEQUENCE {
	latitudeSign				ENUMERATED {north, south},
	degreesLatitude				INTEGER (0..8388607),			-- 23 bit field
	degreesLongitude			INTEGER (-8388608..8388607),	-- 24 bit field
	altitudeDirection			ENUMERATED {height, depth},
	altitude					INTEGER (0..32767),				-- 15 bit field
	uncertaintySemiMajor		INTEGER (0..127),
	uncertaintySemiMinor		INTEGER (0..127),
	orientationMajorAxis		INTEGER (0..179),
	uncertaintyAltitude			INTEGER (0..127),
	confidence					INTEGER (0..100)
}

-- ASN1STOP

–	EllipsoidArc
The IE EllipsoidArc is used to describe a geographic shape as defined in TS 23.032 [15].
-- ASN1START

EllipsoidArc ::= SEQUENCE {
	latitudeSign				ENUMERATED {north, south},
	degreesLatitude				INTEGER (0..8388607),			-- 23 bit field
	degreesLongitude			INTEGER (-8388608..8388607),	-- 24 bit field
	innerRadius					INTEGER (0..65535),				-- 16 bit field,
	uncertaintyRadius			INTEGER (0..127),
	offsetAngle					INTEGER (0..179),
	includedAngle				INTEGER (0..179),
	confidence					INTEGER (0..100)
}

-- ASN1STOP

–	EPDU-Sequence
The EPDU-Sequence contains IEs that are defined externally to LPP by other organizations.
-- ASN1START

EPDU-Sequence ::= SEQUENCE (SIZE (1..maxEPDU)) OF EPDU

maxEPDU INTEGER ::= 16

EPDU ::= SEQUENCE {
	ePDU-Identifier			EPDU-Identifier,
	ePDU-Body				EPDU-Body
}

EPDU-Identifier ::= SEQUENCE {
	ePDU-ID					EPDU-ID,
	ePDU-Name				EPDU-Name		OPTIONAL,
	...
}

EPDU-ID ::= INTEGER (1..256)

EPDU-Name ::= VisibleString (SIZE (1..32))

EPDU-Body ::= OCTET STRING

-- ASN1STOP

EPDU-Sequence field descriptions
EPDU-ID
This field provides a unique integer ID for the externally defined positioning method. Its value is assigned to the external entity that defines the EPDU. See table External PDU Identifier Definition for a list of external PDU identifiers defined in this version of the specification.
EPDU-Name
This field provides an optional character encoding which can be used to provide a quasi-unique name for an external PDU – e.g., by containing the name of the defining organization and/or the name of the associated public or proprietary standard for the EPDU.
EPDU-Body
The content and encoding of this field are defined externally to LPP.

External PDU Identifier Definition
EPDU-ID
EPDU Defining entity
Method name
Reference
1
OMA LOC
OMA LPP extensions (LPPe)
OMA-TS-LPPe-V1_0 [20]

–	HighAccuracyEllipsoidPointWithUncertaintyEllipse
The IE HighAccuracyEllipsoidPointWithUncertaintyEllipse is used to describe a geographic shape as defined in TS 23.032 [15].
-- ASN1START

HighAccuracyEllipsoidPointWithUncertaintyEllipse-r15 ::= SEQUENCE {
	degreesLatitude-r15				INTEGER(-2147483648..2147483647),
	degreesLongitude-r15			INTEGER(-2147483648..2147483647),
	uncertaintySemiMajor-r15		INTEGER (0..255),
	uncertaintySemiMinor-r15		INTEGER (0..255),
	orientationMajorAxis-r15		INTEGER (0..179),
	confidence-r15					INTEGER (0..100)
}

-- ASN1STOP

–	HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid
The IE HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid is used to describe a geographic shape as defined in TS 23.032 [15].
-- ASN1START

HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-r15 ::= SEQUENCE {
	degreesLatitude-r15				INTEGER(-2147483648..2147483647),
	degreesLongitude-r15			INTEGER(-2147483648..2147483647),
	altitude-r15					INTEGER(-64000..1280000),
	uncertaintySemiMajor-r15		INTEGER (0..255),
	uncertaintySemiMinor-r15		INTEGER (0..255),
	orientationMajorAxis-r15		INTEGER (0..179),
	horizontalConfidence-r15		INTEGER (0..100),
	uncertaintyAltitude-r15			INTEGER (0..255),
	verticalConfidence-r15			INTEGER (0..100)
}

-- ASN1STOP

–	HorizontalVelocity
The IE HorizontalVelocity is used to describe a velocity shape as defined in TS 23.032 [15].
-- ASN1START

HorizontalVelocity ::= SEQUENCE {
	bearing						INTEGER(0..359),
	horizontalSpeed				INTEGER(0..2047)
}

-- ASN1STOP

–	HorizontalWithVerticalVelocity
The IE HorizontalWithVerticalVelocity is used to describe a velocity shape as defined in TS 23.032 [15].
-- ASN1START

HorizontalWithVerticalVelocity ::= SEQUENCE {
	bearing						INTEGER(0..359),
	horizontalSpeed				INTEGER(0..2047),
	verticalDirection			ENUMERATED{upward, downward},
	verticalSpeed				INTEGER(0..255)
}

-- ASN1STOP

–	HorizontalVelocityWithUncertainty
The IE HorizontalVelocityWithUncertainty is used to describe a velocity shape as defined in TS 23.032 [15].
-- ASN1START

HorizontalVelocityWithUncertainty ::= SEQUENCE {
	bearing						INTEGER(0..359),
	horizontalSpeed				INTEGER(0..2047),
	uncertaintySpeed			INTEGER(0..255)
}

-- ASN1STOP

–	HorizontalWithVerticalVelocityAndUncertainty
The IE HorizontalWithVerticalVelocityAndUncertainty is used to describe a velocity shape as defined in TS 23.032 [15].
-- ASN1START

HorizontalWithVerticalVelocityAndUncertainty ::= SEQUENCE {
	bearing						INTEGER(0..359),
	horizontalSpeed				INTEGER(0..2047),
	verticalDirection			ENUMERATED{upward, downward},
	verticalSpeed				INTEGER(0..255),
	horizontalUncertaintySpeed	INTEGER(0..255),
	verticalUncertaintySpeed	INTEGER(0..255)
}

-- ASN1STOP

–	LocationCoordinateTypes
The IE LocationCoordinateTypes defines a list of possible geographic shapes as defined in TS 23.032 [15].
-- ASN1START

LocationCoordinateTypes ::= SEQUENCE {
	ellipsoidPoint											BOOLEAN,
	ellipsoidPointWithUncertaintyCircle						BOOLEAN,
	ellipsoidPointWithUncertaintyEllipse					BOOLEAN,
	polygon													BOOLEAN,
	ellipsoidPointWithAltitude								BOOLEAN,
	ellipsoidPointWithAltitudeAndUncertaintyEllipsoid		BOOLEAN,
	ellipsoidArc											BOOLEAN,
	...,
	[[
		highAccuracyEllipsoidPointWithUncertaintyEllipse-r15				BOOLEAN		OPTIONAL,
		highAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-r15	BOOLEAN		OPTIONAL
	]]
}

-- ASN1STOP

–	NCGI
The IE NCGI specifies the NR Cell Global Identifier (NCGI) which is used to identify NR cells globally (TS 38.331 [35]).
-- ASN1START

NCGI-r15 ::= SEQUENCE {
	mcc-r15					SEQUENCE (SIZE (3)) 	OF INTEGER (0..9),
	mnc-r15					SEQUENCE (SIZE (2..3)) 	OF INTEGER (0..9),
	nr-cellidentity-r15		BIT STRING (SIZE (36))
}

-- ASN1STOP

–	PeriodicAssistanceDataControlParameters
The IE PeriodicAssistanceDataControlParameters is used in a periodic assistance data delivery procedure as described in clauses 5.2.1a and 5.2.2a.
-- ASN1START

PeriodicAssistanceDataControlParameters-r15 ::= SEQUENCE {
	periodicSessionID-r15			PeriodicSessionID-r15,
	...,
	[[
		updateCapabilities-r15		UpdateCapabilities-r15		OPTIONAL
	]]
}

PeriodicSessionID-r15 ::= SEQUENCE {
	periodicSessionInitiator-r15	ENUMERATED { locationServer, targetDevice, ... },
	periodicSessionNumber-r15		INTEGER (0..255),
	...
}

UpdateCapabilities-r15 ::= BIT STRING {primaryCellID-r15	(0)} (SIZE(1..8))

-- ASN1STOP

PeriodicAssistanceDataControlParameters field descriptions
periodicSessionID
This field identifies a particular periodic assistance data delivery session and the initiator of the session.
updateCapabilities
This field identifies the capabilities of the sending entity to support an update of periodic assistance data. A bit value set to one indicates a capability is supported and a bit value set to zero indicates a capability is not supported.

–	Polygon
The IE Polygon is used to describe a geographic shape as defined in TS 23.032 [15].
-- ASN1START

Polygon ::= SEQUENCE (SIZE (3..15)) OF PolygonPoints

PolygonPoints ::= SEQUENCE {
	latitudeSign				ENUMERATED {north, south},
	degreesLatitude				INTEGER (0..8388607),			-- 23 bit field
	degreesLongitude			INTEGER (-8388608..8388607)		-- 24 bit field
}

-- ASN1STOP

–	PositioningModes
The IE PositioningModes is used to indicate several positioning modes using a bit map.
-- ASN1START

PositioningModes ::= SEQUENCE {
	posModes		BIT STRING {	standalone	(0),
									ue-based	(1),
									ue-assisted	(2)
	} (SIZE (1..8)),
	...
}

-- ASN1STOP

PositioningModes field descriptions
posModes
This field specifies the positioning mode(s). This is represented by a bit string, with a one‑value at the bit position means the particular positioning mode is addressed; a zero‑value means not addressed.

–	SegmentationInfo
The IE SegmentationInfo is used by a sender to indicate that LPP message segmentation is used, as specified in clause 4.3.5.
-- ASN1START

SegmentationInfo-r14 ::= ENUMERATED { noMoreMessages, moreMessagesOnTheWay }

-- ASN1STOP

SegmentationInfo field descriptions
SegmentationInfo
noMoreMessages indicates that this is the only or last LPP message segment used to deliver the entire message body.
moreMessagesOnTheWay indicates that this is one of multiple LPP message segments used to deliver the entire message body.

–	VelocityTypes
The IE VelocityTypes defines a list of possible velocity shapes as defined in TS 23.032 [15].
-- ASN1START

VelocityTypes ::= SEQUENCE {
	horizontalVelocity										BOOLEAN,
	horizontalWithVerticalVelocity							BOOLEAN,
	horizontalVelocityWithUncertainty						BOOLEAN,
	horizontalWithVerticalVelocityAndUncertainty			BOOLEAN,
	...
}

-- ASN1STOP

6.4.2	Common Positioning
–	CommonIEsRequestCapabilities
The CommonIEsRequestCapabilities carries common IEs for a Request Capabilities LPP message Type.
-- ASN1START

CommonIEsRequestCapabilities ::= SEQUENCE {
	...,
	[[
	lpp-message-segmentation-req-r14	BIT STRING {	serverToTarget	(0),
														targetToServer	(1) }	OPTIONAL -- Need ON
	]]
}

-- ASN1STOP

CommonIEsRequestCapabilities field descriptions
lpp-message-segmentation-req
This field, if present, indicates that the target device is requested to provide its LPP message segmentation capabilities. 
If bit 0 is set to value 1, it indicates that the server is able to send segmented LPP messages to the target device; if bit 0 is set to value 0 it indicates that the server is not able to send segmented LPP messages to the target device.
If bit 1 is set to value 1, it indicates that the server is able to receive segmented LPP messages from the target device; if bit 1 is set to value 0 it indicates that the server is not able to receive segmented LPP messages from the target device.

–	CommonIEsProvideCapabilities
The CommonIEsProvideCapabilities carries common IEs for a Provide Capabilities LPP message Type.
-- ASN1START

CommonIEsProvideCapabilities ::= SEQUENCE {
	...,
	[[
	segmentationInfo-r14			SegmentationInfo-r14			OPTIONAL,	-- Cond Segmentation
	lpp-message-segmentation-r14	BIT STRING { serverToTarget	(0),
												targetToServer	(1) }	OPTIONAL
	]]
}

-- ASN1STOP

Conditional presence
Explanation
Segmentation
This field is optionally present, need OP, if lpp-message-segmentation-req has been received from the location server with bit 1 (targetToServer) set to value 1. The field shall be omitted if lpp‑message‑segmentation-req has not been received in this location session, or has been received with bit 1 (targetToServer) set to value 0.

CommonIEsProvideCapabilities field descriptions
segmentationInfo
This field indicates whether this ProvideCapabilities message is one of many segments, as specified in clause 4.3.5.
lpp-message-segmentation
This field, if present, indicates the target device's LPP message segmentation capabilities. 
If bit 0 is set to value 1, it indicates that the target device supports receiving segmented LPP messages; if bit 0 is set to value 0 it indicates that the target device does not support receiving segmented LPP messages.
If bit 1 is set to value 1, it indicates that the target device supports sending segmented LPP messages; if bit 1 is set to value 0 it indicates that the target device does not support sending segmented LPP messages.

–	CommonIEsRequestAssistanceData
The CommonIEsRequestAssistanceData carries common IEs for a Request Assistance Data LPP message Type.
-- ASN1START

CommonIEsRequestAssistanceData ::= SEQUENCE {
	primaryCellID		ECGI		OPTIONAL,	-- Cond EUTRA
	...,
	[[
		segmentationInfo-r14		SegmentationInfo-r14		OPTIONAL	-- Cond Segmentation
	]],
	[[
		periodicAssistanceDataReq-r15
									PeriodicAssistanceDataControlParameters-r15
																OPTIONAL,	-- Cond PerADreq
		primaryCellID-r15			NCGI-r15					OPTIONAL	-- Cond NR
	]]
}

-- ASN1STOP

Conditional presence
Explanation
EUTRA
The field is mandatory present for E-UTRA or NB-IoT access. The field shall be omitted for non-EUTRA and non-NB-IoT user plane support.
Segmentation
This field is optionally present, need OP, if lpp-message-segmentation-req has been received from the location server with bit 1 (targetToServer) set to value 1. The field shall be omitted if lpp‑message‑segmentation-req has not been received in this location session, or has been received with bit 1 (targetToServer) set to value 0.
PerADreq
The field is mandatory present if the target device requests periodic assistance data delivery. Otherwise it is not present.
NR
The field is mandatory present for NR access. The field shall be omitted for non-NR user plane support.

CommonIEsRequestAssistanceData field descriptions
primaryCellID
This parameter identifies the current primary cell for the target device. 
segmentationInfo
This field indicates whether this RequestAssistanceData message is one of many segments, as specified in clause 4.3.5.
periodicAssistanceDataReq
This field indicates a request for periodic assistance data delivery, as specified in clause 5.2.1a.

–	CommonIEsProvideAssistanceData
The CommonIEsProvideAssistanceData carries common IEs for a Provide Assistance Data LPP message Type.
-- ASN1START

CommonIEsProvideAssistanceData ::= SEQUENCE {
	...,
	[[
		segmentationInfo-r14		SegmentationInfo-r14		OPTIONAL	-- Need ON
	]],
	[[
		periodicAssistanceData-r15	PeriodicAssistanceDataControlParameters-r15
																OPTIONAL	-- Cond PerAD
	]]
}

-- ASN1STOP

Conditional presence
Explanation
PerAD
The field is mandatory present in a periodic assistance data delivery session. Otherwise it is not present.

CommonIEsRequestAssistanceData field descriptions
segmentationInfo
This field indicates whether this ProvideAssistanceData message is one of many segments, as specified in clause 4.3.5.
periodicAssistanceData
This field indicates a periodic assistance data delivery, as specified in clauses 5.2.1a and 5.2.2a.

–	CommonIEsRequestLocationInformation
The CommonIEsRequestLocationInformation carries common IEs for a Request Location Information LPP message Type.
-- ASN1START

CommonIEsRequestLocationInformation ::= SEQUENCE {
	locationInformationType		LocationInformationType,
	triggeredReporting			TriggeredReportingCriteria	OPTIONAL,	-- Cond ECID
	periodicalReporting			PeriodicalReportingCriteria OPTIONAL,	-- Need ON
	additionalInformation		AdditionalInformation		OPTIONAL,	-- Need ON
	qos							QoS							OPTIONAL,	-- Need ON
	environment					Environment					OPTIONAL,	-- Need ON
	locationCoordinateTypes		LocationCoordinateTypes		OPTIONAL,	-- Need ON
	velocityTypes				VelocityTypes				OPTIONAL,	-- Need ON
	...,
	[[
		messageSizeLimitNB-r14	MessageSizeLimitNB-r14		OPTIONAL	-- Need ON
	]],
	[[
		segmentationInfo-r14	SegmentationInfo-r14		OPTIONAL	-- Need ON
	]]
}

LocationInformationType ::= ENUMERATED {
	locationEstimateRequired,
	locationMeasurementsRequired,
	locationEstimatePreferred,
	locationMeasurementsPreferred,
	...
}

PeriodicalReportingCriteria ::=		SEQUENCE {
	reportingAmount						ENUMERATED {
											ra1, ra2, ra4, ra8, ra16, ra32,
											ra64, ra-Infinity
										} DEFAULT ra-Infinity,
	reportingInterval					ENUMERATED {
											noPeriodicalReporting, ri0-25,
											ri0-5, ri1, ri2, ri4, ri8, ri16, ri32, ri64
										}
}

TriggeredReportingCriteria ::=		SEQUENCE {
	cellChange							BOOLEAN,
	reportingDuration					ReportingDuration,
	...
}

ReportingDuration ::=				INTEGER (0..255)

AdditionalInformation ::= ENUMERATED {
	onlyReturnInformationRequested,
	mayReturnAditionalInformation,
	...
}

QoS ::= SEQUENCE {
	horizontalAccuracy			HorizontalAccuracy		OPTIONAL,	-- Need ON
	verticalCoordinateRequest	BOOLEAN,
	verticalAccuracy			VerticalAccuracy		OPTIONAL,	-- Need ON
	responseTime				ResponseTime			OPTIONAL,	-- Need ON
	velocityRequest				BOOLEAN,				
	...,
	[[	responseTimeNB-r14		ResponseTimeNB-r14		OPTIONAL	-- Need ON
	]],
	[[	horizontalAccuracyExt-r15	HorizontalAccuracyExt-r15		OPTIONAL,	-- Need ON
		verticalAccuracyExt-r15		VerticalAccuracyExt-r15			OPTIONAL	-- Need ON
	]]
}

HorizontalAccuracy ::= SEQUENCE {
	accuracy		INTEGER(0..127),
	confidence		INTEGER(0..100),
	...
}

VerticalAccuracy ::= SEQUENCE {
	accuracy		INTEGER(0..127),
	confidence		INTEGER(0..100),
	...
}

HorizontalAccuracyExt-r15 ::= SEQUENCE {
	accuracyExt-r15		INTEGER(0..255),
	confidence-r15		INTEGER(0..100),
	...
}

VerticalAccuracyExt-r15 ::= SEQUENCE {
	accuracyExt-r15		INTEGER(0..255),
	confidence-r15		INTEGER(0..100),
	...
}

ResponseTime ::= SEQUENCE {
	time								INTEGER (1..128),
	...,	
	[[	responseTimeEarlyFix-r12		INTEGER (1..128)		OPTIONAL		-- Need ON
	]],
	[[	unit-r15				ENUMERATED { ten-seconds, ... }	OPTIONAL		-- Need ON
	]]
}

ResponseTimeNB-r14 ::= SEQUENCE {
	timeNB-r14							INTEGER (1..512),
	responseTimeEarlyFixNB-r14			INTEGER (1..512)		OPTIONAL,		-- Need ON
	...,
	[[	unitNB-r15				ENUMERATED { ten-seconds, ... }	OPTIONAL		-- Need ON
	]]
}

Environment ::= ENUMERATED {
	badArea,
	notBadArea,
	mixedArea,
	...
}

MessageSizeLimitNB-r14 ::= SEQUENCE {
	measurementLimit-r14				INTEGER (1..512)		OPTIONAL,		-- Need ON
	...
}

-- ASN1STOP

Conditional presence
Explanation
ECID
The field is optionally present, need ON, if ECID is requested. Otherwise it is not present.

CommonIEsRequestLocationInformation field descriptions
locationInformationType
This IE indicates whether the server requires a location estimate or measurements. For 'locationEstimateRequired', the target device shall return a location estimate if possible, or indicate a location error if not possible. For 'locationMeasurementsRequired', the target device shall return measurements if possible, or indicate a location error if not possible. For 'locationEstimatePreferred', the target device shall return a location estimate if possible, but may also or instead return measurements for any requested position methods for which a location estimate is not possible. For 'locationMeasurementsPreferred', the target device shall return location measurements if possible, but may also or instead return a location estimate for any requested position methods for which return of location measurements is not possible.
triggeredReporting
This IE indicates that triggered reporting is requested and comprises the following subfields:
-	cellChange: If this field is set to TRUE, the target device provides requested location information each time the primary cell has changed.
-	reportingDuration: Maximum duration of triggered reporting in seconds. A value of zero is interpreted to mean an unlimited (i.e. "infinite") duration. The target device should continue triggered reporting for the reportingDuration or until an LPP Abort or LPP Error message is received.
The triggeredReporting field should not be included by the location server and shall be ignored by the target device if the periodicalReporting IE or responseTime IE or responseTimeNB IE is included in CommonIEsRequestLocationInformation.
periodicalReporting
This IE indicates that periodic reporting is requested and comprises the following subfields:
-	reportingAmount indicates the number of periodic location information reports requested. Enumerated values correspond to 1, 2, 4, 8, 16, 32, 64, or infinite/indefinite number of reports. If the reportingAmount is 'infinite/indefinite', the target device shou-ld continue periodic reporting until an LPP Abort message is received. The value 'ra1' shall not be used by a sender.
-	reportingInterval indicates the interval between location information reports and the response time requirement for the first location information report. Enumerated values ri0-25, ri0-5, ri1, ri2, ri4, ri8, ri16, ri32, ri64 correspond to reporting intervals of 1, 2, 4, 8, 10, 16, 20, 32, and 64 seconds, respectively. Measurement reports containing no measurements or no location estimate are required when a reportingInterval expires before a target device is able to obtain new measurements or obtain a new location estimate. The value 'noPeriodicalReporting' shall not be used by a sender.
additionalInformation
This IE indicates whether a target device is allowed to return additional information to that requested. If this IE indicates 'onlyReturnInformationRequested' then the target device shall not return any additional information to that requested by the server. If this IE indicates 'mayReturnAdditionalInformation' then the target device may return additional information to that requested by the server. If a location estimate is returned, any additional information is restricted to that associated with a location estimate (e.g. might include velocity if velocity was not requested but cannot include measurements). If measurements are returned, any additional information is restricted to additional measurements (e.g. might include E-CID measurements if A-GNSS measurements were requested but not E-CID measurements).
qos
This IE indicates the quality of service and comprises a number of sub-fields. In the case of measurements, some of the sub-fields apply to the location estimate that could be obtained by the server from the measurements provided by the target device assuming that the measurements are the only sources of error. Fields are as follows:
-	horizontalAccuracy indicates the maximum horizontal error in the location estimate at an indicated confidence level. The 'accuracy' corresponds to the encoded uncertainty as defined in TS 23.032 [15] and 'confidence' corresponds to confidence as defined in TS 23.032 [15].
-	verticalCoordinateRequest indicates whether a vertical coordinate is required (TRUE) or not (FALSE)
-	verticalAccuracy indicates the maximum vertical error in the location estimate at an indicated confidence level and is only applicable when a vertical coordinate is requested. The 'accuracy' corresponds to the encoded uncertainty altitude as defined in TS 23.032 [15] and 'confidence' corresponds to confidence as defined in TS 23.032 [15].
-	responseTime
-	time indicates the maximum response time as measured between receipt of the RequestLocationInformation and transmission of a ProvideLocationInformation. If the unit field is absent, this is given as an integer number of seconds between 1 and 128. If the unit field is present, the maximum response time is given in units of 10-seconds, between 10 and 1280 seconds. If the periodicalReporting IE is included in CommonIEsRequestLocationInformation, this field should not be included by the location server and shall be ignored by the target device (if included).
-	responseTimeEarlyFix indicates the maximum response time as measured between receipt of the RequestLocationInformation and transmission of a ProvideLocationInformation containing early location measurements or an early location estimate. If the unit field is absent, this is given as an integer number of seconds between 1 and 128. If the unit field is present, the maximum response time is given in units of 10-seconds, between 10 and 1280 seconds. When this IE is included, a target should send a ProvideLocationInformation (or more than one ProvideLocationInformation if location information will not fit into a single message) containing early location information according to the responseTimeEarlyFix IE and a subsequent ProvideLocationInformation (or more than one ProvideLocationInformation if location information will not fit into a single message) containing final location information according to the time IE. A target shall omit sending a ProvideLocationInformation if the early location information is not available at the expiration of the time value in the responseTimeEarlyFix IE. A server should set the responseTimeEarlyFix IE to a value less than that for the time IE. A target shall ignore the responseTimeEarlyFix IE if its value is not less than that for the time IE.
-	unit indicates the unit of the time and responseTimeEarlyFix fields. Enumerated value 'ten-seconds' corresponds to a resolution of 10 seconds. If this field is absent, the unit/resolution is 1 second.
-	velocityRequest indicates whether velocity (or measurements related to velocity) is requested (TRUE) or not (FALSE).
-	responseTimeNB
If the periodicalReporting IE or responseTime IE is included in CommonIEsRequestLocationInformation, this field should not be included by the location server and shall be ignored by the target device (if included).
-	timeNB indicates the maximum response time as measured between receipt of the RequestLocationInformation and transmission of a ProvideLocationInformation. If the unit field is absent, this is given as an integer number of seconds between 1 and 512. If the unit field is present, the maximum response time is given in units of 10-seconds, between 10 and 5120 seconds.
-	responseTimeEarlyFixNB indicates the maximum response time as measured between receipt of the RequestLocationInformation and transmission of a ProvideLocationInformation containing early location measurements or an early location estimate. If the unit field is absent, this is given as an integer number of seconds between 1 and 512. If the unit field is present, the maximum response time is given in units of 10-seconds, between 10 and 5120 seconds. When this IE is included, a target should send a ProvideLocationInformation (or more than one ProvideLocationInformation if location information will not fit into a single message) containing early location information according to the responseTimeEarlyFixNB IE and a subsequent ProvideLocationInformation (or more than one ProvideLocationInformation if location information will not fit into a single message) containing final location information according to the timeNB IE. A target shall omit sending a ProvideLocationInformation if the early location information is not available at the expiration of the time value in the responseTimeEarlyFixNB IE. A server should set the responseTimeEarlyFixNB IE to a value less than that for the timeNB IE. A target shall ignore the responseTimeEarlyFixNB IE if its value is not less than that for the timeNB IE.
-	unitNB indicates the unit of the timeNB and responseTimeEarlyFixNB fields. Enumerated value 'ten-second' corresponds to a resolution of 10 seconds. If this field is absent, the unit/resolution is 1 second.
- 	horizontalAccuracyExt indicates the maximum horizontal error in the location estimate at an indicated confidence level. The 'accuracyExt' corresponds to the encoded high accuracy uncertainty as defined in TS 23.032 [15] and 'confidence' corresponds to confidence as defined in TS 23.032 [15]. This field should not be included by the location server and shall be ignored by the target device if the horizontalAccuracy field is included in QoS.
- 	verticalAccuracyExt indicates the maximum vertical error in the location estimate at an indicated confidence level and is only applicable when a vertical coordinate is requested. The 'accuracyExt' corresponds to the encoded high accuracy uncertainty as defined in TS 23.032 [15] and 'confidence' corresponds to confidence as defined in TS 23.032 [15]. This field should not be included by the location server and shall be ignored by the target device if the verticalAccuracy field is included in QoS.
All QoS requirements shall be obtained by the target device to the degree possible but it is permitted to return a response that does not fulfill all QoS requirements if some were not attainable. The single exception is time and timeNB which shall always be fulfilled – even if that means not fulfilling other QoS requirements.
A target device supporting NB-IoT access shall support the responseTimeNB IE.
A target device supporting HA GNSS shall support the HorizontalAccuracyExt, VerticalAccuracyEx, and unit fields.
A target device supporting NB-IoT access and HA GNSS shall support the unitNB field.
environment
This field provides the target device with information about expected multipath and non line of sight (NLOS) in the current area. The following values are defined:
-	badArea:	possibly heavy multipath and NLOS conditions (e.g. bad urban or urban).
-	notBadArea:	no or light multipath and usually LOS conditions (e.g. suburban or rural).
-	mixedArea:	environment that is mixed or not defined.
If this field is absent, a default value of 'mixedArea' applies.
locationCoordinateTypes
This field provides a list of the types of location estimate that the target device may return when a location estimate is obtained by the target.
velocityTypes
This fields provides a list of the types of velocity estimate that the target device may return when a velocity estimate is obtained by the target.
messageSizeLimitNB
This field provides an octet limit on the amount of location information a target device can return.
-	measurementLimit indicates the maximum amount of location information the target device should return in response to the RequestLocationInformation message received from the location server.
The limit applies to the overall size of the LPP message at LPP level (LPP Provide Location Information), and is specified in steps of 100 octets. The message size limit is then given by the value provided in measurementLimit times 100 octets.
segmentationInfo
This field indicates whether this RequestLocationInformation message is one of many segments, as specified in clause 4.3.5

–	CommonIEsProvideLocationInformation
The CommonIEsProvideLocationInformation carries common IEs for a Provide Location Information LPP message Type.
-- ASN1START

CommonIEsProvideLocationInformation ::= SEQUENCE {
	locationEstimate			LocationCoordinates		OPTIONAL,
	velocityEstimate			Velocity				OPTIONAL,
	locationError				LocationError			OPTIONAL,
	...,
	[[	earlyFixReport-r12		EarlyFixReport-r12		OPTIONAL
	]],
	[[	locationSource-r13		LocationSource-r13		OPTIONAL,
		locationTimestamp-r13	UTCTime					OPTIONAL
	]],
	[[
		segmentationInfo-r14	SegmentationInfo-r14	OPTIONAL		-- Cond Segmentation
	]]
}

LocationCoordinates ::= CHOICE {
	ellipsoidPoint								Ellipsoid-Point,
	ellipsoidPointWithUncertaintyCircle			Ellipsoid-PointWithUncertaintyCircle,
	ellipsoidPointWithUncertaintyEllipse		EllipsoidPointWithUncertaintyEllipse,
	polygon										Polygon,
	ellipsoidPointWithAltitude					EllipsoidPointWithAltitude,
	ellipsoidPointWithAltitudeAndUncertaintyEllipsoid
												EllipsoidPointWithAltitudeAndUncertaintyEllipsoid,
	ellipsoidArc								EllipsoidArc,
	...,
	highAccuracyEllipsoidPointWithUncertaintyEllipse-v1510
								HighAccuracyEllipsoidPointWithUncertaintyEllipse-r15,
	highAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-v1510
								HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-r15
}

Velocity ::= CHOICE {
	horizontalVelocity							HorizontalVelocity,
	horizontalWithVerticalVelocity				HorizontalWithVerticalVelocity,
	horizontalVelocityWithUncertainty			HorizontalVelocityWithUncertainty,
	horizontalWithVerticalVelocityAndUncertainty
												HorizontalWithVerticalVelocityAndUncertainty,
	...
}

LocationError ::= SEQUENCE {
	locationfailurecause			LocationFailureCause,
	...
}

LocationFailureCause ::= ENUMERATED {
	undefined,
	requestedMethodNotSupported,
	positionMethodFailure,
	periodicLocationMeasurementsNotAvailable,
	...
}

EarlyFixReport-r12 ::= ENUMERATED {
	noMoreMessages,
	moreMessagesOnTheWay
}

LocationSource-r13 ::= BIT STRING {	a-gnss				(0),
									wlan				(1),
									bt					(2),
									tbs					(3),
									sensor				(4),
									ha-gnss-v1510		(5),
									motion-sensor-v1550 (6) } (SIZE(1..16))

-- ASN1STOP

Conditional presence
Explanation
Segmentation
This field is optionally present, need OP, if lpp-message-segmentation-req has been received from the location server with bit 1 (targetToServer) set to value 1. The field shall be omitted if lpp‑message‑segmentation-req has not been received in this location session, or has been received with bit 1 (targetToServer) set to value 0.

CommonIEsProvideLocationInformation field descriptions
locationEstimate
This field provides a location estimate using one of the geographic shapes defined in TS 23.032 [15]. Coding of the values of the various fields internal to each geographic shape follow the rules in TS 23.032 [15]. The conditions for including this field are defined for the locationInformationType field in a Request Location Information message.
velocityEstimate
This field provides a velocity estimate using one of the velocity shapes defined in TS 23.032 [15]. Coding of the values of the various fields internal to each velocity shape follow the rules in TS 23.032 [15].
locationError
This field shall be included if and only if a location estimate and measurements are not included in the LPP PDU. The field includes information concerning the reason for the lack of location information. The LocationFailureCause 'periodicLocationMeasurementsNotAvailable' shall be used by the target device if periodic location reporting was requested, but no measurements or location estimate are available when the reportingInterval expired.
earlyFixReport
This field shall be included if and only if the ProvideLocationInformation message contains early location measurements or an early location estimate. The target device shall set the values of this field as follows:
-	noMoreMessages: This is the only or last ProvideLocationInformation message used to deliver the entire set of early location information.
-	moreMessagesOnTheWay: This is one of multiple ProvideLocationInformation messages used to deliver the entire set of early location information (if early location information will not fit into a single message).
If this field is included, the IE SegmentationInfo shall not be included.
locationSource
This field provides the source positioning technology for the location estimate.
NOTE 1:	In this version of the specification, the entry 'tbs' is used only for TBS positioning based on MBS signals.
NOTE 2:	The entry 'sensor' is used only for positioning technology that uses barometric pressure sensor. The entry 'motion-sensor' is used for positioning technology that uses sensor(s) to detect displacement and movement, e.g. accelerometers, gyros, magnetometers.
locationTimestamp
This field provides the UTC time when the location estimate is valid and should take the form of YYMMDDhhmmssZ.
segmentationInfo
This field indicates whether this ProvideLocationInformation message is one of many segments, as specified in clause 4.3.5

–	CommonIEsAbort
The CommonIEsAbort carries common IEs for an Abort LPP message Type.
-- ASN1START

CommonIEsAbort ::= SEQUENCE {
	abortCause			ENUMERATED {
		undefined,
		stopPeriodicReporting,
		targetDeviceAbort,
		networkAbort,
		...,
		stopPeriodicAssistanceDataDelivery-v1510
	}
}

-- ASN1STOP

CommonIEsAbort field descriptions
abortCause
This IE defines the request to abort an ongoing procedure. The abort cause 'stopPeriodicReporting' should be used by the location server to stop any ongoing location reporting configured as periodicalReporting or triggeredReporting in the CommonIEsRequestLocationInformation.
The abort cause 'stopPeriodicAssistanceDataDelivery' should be used by the location server or target device to stop any ongoing periodic assistance data delivery, as specified in clauses 5.2.1a and 5.2.2a.

–	CommonIEsError
The CommonIEsError carries common IEs for an Error LPP message Type.
-- ASN1START

CommonIEsError ::= SEQUENCE {
	errorCause		ENUMERATED {
		undefined,
		lppMessageHeaderError,
		lppMessageBodyError,
		epduError,
		incorrectDataValue,
		...,
		lppSegmentationError-v1450
	}
}

-- ASN1STOP

CommonIEsError field descriptions
errorCause
This IE defines the cause for an error. 'lppMessageHeaderError', 'lppMessageBodyError' and 'epduError' is used if a receiver is able to detect a coding error in the LPP header (i.e., in the common fields), LPP message body or in an EPDU, respectively. 'lppSegmentationError' is used if a receiver detects an error in LPP message segmentation.

6.5	Positioning Method IEs
6.5.1	OTDOA Positioning
This clause defines the information elements for downlink OTDOA positioning, which includes TBS positioning based on PRS signals (TS 36.305 [2]).
6.5.1.1	OTDOA Assistance Data
–	OTDOA-ProvideAssistanceData
The IE OTDOA-ProvideAssistanceData is used by the location server to provide assistance data to enable UE‑assisted downlink OTDOA. It may also be used to provide OTDOA positioning specific error reason.
Throughout clause 6.5.1, "assistance data reference cell" refers to the cell defined by the IE OTDOA-ReferenceCellInfo and "NB-IoT assistance data reference cell" refers to the cell defined by the IE OTDOA-ReferenceCellInfoNB (see clause 6.5.1.2). "RSTD reference cell" applies only in clause 6.5.1.5.
If both IEs, OTDOA-ReferenceCellInfo and OTDOA-ReferenceCellInfoNB are included in OTDOA‑ProvideAssistanceData, the assistance data reference cell and NB-IoT assistance data reference cell correspond to the same cell, and the target device may assume that PRS and NPRS antenna ports are quasi co-located, as defined in TS 36.211 [16].
Throughout clause 6.5.1, the term "cell" refers to "transmission point (TP)", unless distinguished in the field description.
NOTE 1:	The location server should include at least one cell for which the SFN can be obtained by the target device, e.g. the serving cell, in the assistance data, either as the assistance data reference cell or in the neighbour cell list. Otherwise the target device will be unable to perform the OTDOA measurement and the positioning operation will fail.
NOTE 2:	Due to support of cells containing multiple TPs and PRS-only TPs not associated with cells, the term "cell" as used in clause 6.5.1 may not always correspond to a cell for the E-UTRAN.
NOTE 3:	For NB-IoT access, due to support of NPRS on multiple carriers, the term "cell" as used in clause 6.5.1 refers to the anchor carrier, unless otherwise stated.
-- ASN1START

OTDOA-ProvideAssistanceData ::= SEQUENCE {
	otdoa-ReferenceCellInfo			OTDOA-ReferenceCellInfo				OPTIONAL,	-- Need ON
	otdoa-NeighbourCellInfo			OTDOA-NeighbourCellInfoList			OPTIONAL,	-- Need ON
	otdoa-Error						OTDOA-Error							OPTIONAL,	-- Need ON
	...,
	[[
	 otdoa-ReferenceCellInfoNB-r14	OTDOA-ReferenceCellInfoNB-r14		OPTIONAL,	-- Need ON
	 otdoa-NeighbourCellInfoNB-r14	OTDOA-NeighbourCellInfoListNB-r14	OPTIONAL	-- Need ON
	]]
}

-- ASN1STOP

6.5.1.2	OTDOA Assistance Data Elements
–	OTDOA-ReferenceCellInfo
The IE OTDOA-ReferenceCellInfo is used by the location server to provide assistance data reference cell information for OTDOA assistance data. The slot number offsets and expected RSTDs in OTDOA-NeighbourCellInfoList are provided relative to the cell defined by this IE. If earfcnRef of this assistance data reference cell is different from that of the serving cell, the LPP layer shall inform lower layers to start performing inter-frequency RSTD measurements with this cell and provide to lower layers the information about this assistance data reference cell, e.g. EARFCN and PRS positioning occasion information.
NOTE:	The location server should always include the PRS configuration of the assistance data reference and neighbour cells. Otherwise the UE may not meet the accuracy requirements as defined in TS 36.133 [18].
-- ASN1START

OTDOA-ReferenceCellInfo ::= SEQUENCE {
	physCellId					INTEGER (0..503),
	cellGlobalId				ECGI						OPTIONAL,		-- Need ON
	earfcnRef					ARFCN-ValueEUTRA			OPTIONAL,		-- Cond NotSameAsServ0
	antennaPortConfig			ENUMERATED {ports1-or-2, ports4, ... }
															OPTIONAL,		-- Cond NotSameAsServ1
	cpLength					ENUMERATED { normal, extended, ... },
	prsInfo						PRS-Info					OPTIONAL,		-- Cond PRS
	...,
	[[ earfcnRef-v9a0			ARFCN-ValueEUTRA-v9a0		OPTIONAL		-- Cond NotSameAsServ2
	]],
	[[	tpId-r14				INTEGER (0..4095)			OPTIONAL,		-- Need ON
		cpLengthCRS-r14			ENUMERATED { normal, extended, ... }	
															OPTIONAL,		-- Cond CRS
		sameMBSFNconfigRef-r14	BOOLEAN						OPTIONAL,		-- Need ON
		dlBandwidth-r14			ENUMERATED {n6, n15, n25, n50, n75, n100}
															OPTIONAL,		-- Cond NotSameAsServ3
		addPRSconfigRef-r14		SEQUENCE (SIZE (1..maxAddPRSconfig-r14)) OF PRS-Info
															OPTIONAL		-- Need ON	
	]],
	[[
		nr-LTE-SFN-Offset-r15	INTEGER (0..1023)			OPTIONAL		-- Cond NR
	]],
	[[
		tdd-config-v1520					TDD-Config-v1520	OPTIONAL,		-- Need ON
		nr-LTE-fineTiming-Offset-r15		INTEGER (0..19)		OPTIONAL		-- Cond FineOffset
	]]
}

maxAddPRSconfig-r14			INTEGER ::= 2

-- ASN1STOP

Conditional presence
Explanation
NotSameAsServ0
This field is absent if earfcnRef-v9a0 is present. Otherwise, the field is mandatory present if the EARFCN of the OTDOA assistance data reference cell is not the same as the EARFCN of the target devices' current primary cell.
NotSameAsServ1
The field is mandatory present if the antenna port configuration of the OTDOA assistance data reference cell is not the same as the antenna port configuration of the target devices' current primary cell.
NotSameAsServ2
The field is absent if earfcnRef is present. Otherwise, the field is mandatory present if the EARFCN of the OTDOA assistance data reference cell is not the same as the EARFCN of the target devices' current primary cell.
PRS
The field is mandatory present if positioning reference signals are available in the assistance data reference cell (TS 36.211 [16]); otherwise it is not present. 
CRS
The field is optionally present, need ON, if prsInfo is present. Otherwise it is not present.
NotSameAsServ3
The field is mandatory present if the downlink bandwidth configuration of the assistance data reference cell is not the same as the downlink bandwidth configuration of the target devices' current primary cell and if PRS frequency hopping is used in the assistance data reference cell (TS 36.211 [16]); otherwise it is not present.
NR
The field is optionally present, need ON, if the target device is served by an NR cell; otherwise it is not present.
FineOffset
The field is optionally present, need ON, if nr-LTE-SFN-Offset is present. Otherwise it is not present.

OTDOA-ReferenceCellInfo field descriptions
physCellId
This field specifies the physical cell identity of the assistance data reference cell, as defined in TS 36.331 [12].
cellGlobalId
This field specifies the ECGI, the globally unique identity of a cell in E-UTRA, of the assistance data reference cell, as defined in TS 36.331 [12]. The server should include this field if it considers that it is needed to resolve ambiguity in the cell indicated by physCellId.
earfcnRef
This field specifies the EARFCN of the assistance data reference cell.
antennaPortConfig
This field specifies whether 1 (or 2) antenna port(s) or 4 antenna ports for cell specific reference signals (CRS) are used in the assistance data reference cell.
cpLength
This field specifies the cyclic prefix length of the assistance data reference cell PRS if the prsInfo field is present, otherwise this field specifies the cyclic prefix length of the assistance data reference cell CRS.
prsInfo
This field specifies the first PRS configuration of the assistance data reference cell.
tpId
This field specifies an identity of the transmission point. This field together with the physCellId and/or prsID may be used to identify the transmission point in case the same physical cell ID is shared by multiple transmission points.
cpLengthCRS
This field specifies the cyclic prefix length of the assistance data reference cell CRS. If this field is present, the target device may assume the CRS and PRS antenna ports of the assistance data reference cell are quasi co-located (as defined in TS 36.211 [16]).
sameMBSFNconfigRef
This field indicates whether the MBSFN subframe configuration of the assistance data reference cell is the same as the current primary cell of the target device. TRUE means the same, and FALSE means not the same.
dlBandwidth
This field specifies the downlink bandwidth configuration of the assistance data reference cell, NRB in downlink, see TS 36.101 [21, table 5.6-1]. Enumerated value n6 corresponds to 6 resource blocks, n15 to 15 resource blocks and so on. 
addPRSconfigRef
This field specifies the additional (second and possibly third) PRS configuration(s) of the assistance data reference cell.
nr-LTE-SFN-Offset
This field specifies the SFN offset between the serving NR cell and the LTE assistance data reference cell.
The offset corresponds to the number of full radio frames counted from the beginning of a radio frame #0 of the NR serving cell to the beginning of the closest subsequent radio frame #0 of the assistance data reference cell.
tdd-config
This field specifies the TDD specific physical channel configuration of the assistance data reference cell. The field should be present if the assistance data reference cell is a TDD cell and if the TDD UL/DL configuration of the assistance data reference cell is not the same as the target devices' current primary cell or if the target devices' current primary cell is a FDD cell.
nr-LTE-fineTiming-Offset
This field specifies the frame boundary offset between the NR serving cell and the LTE assistance data reference cell in units of 0.5 ms. The offset is counted from the beginning of a subframe #0 of the NR serving cell to the beginning of the closest subsequent subframe #0 of the LTE assistance data reference cell, rounded down to multiples of 0.5 ms. Value 0 corresponds to 0ms, value 1 corresponds to 0.5ms, 2 to 1ms and so on.

–	PRS-Info
The IE PRS-Info provides the information related to the configuration of PRS in a cell.
-- ASN1START

PRS-Info ::= SEQUENCE {
	prs-Bandwidth			ENUMERATED { n6, n15, n25, n50, n75, n100, ... },
	prs-ConfigurationIndex	INTEGER (0..4095),
	numDL-Frames			ENUMERATED {sf-1, sf-2, sf-4, sf-6, ..., sf-add-v1420},
	...,
	prs-MutingInfo-r9		CHOICE {
		po2-r9					BIT STRING (SIZE(2)),
		po4-r9					BIT STRING (SIZE(4)),
		po8-r9					BIT STRING (SIZE(8)),
		po16-r9					BIT STRING (SIZE(16)),
		...,
		po32-v1420				BIT STRING (SIZE(32)),
		po64-v1420				BIT STRING (SIZE(64)),
		po128-v1420				BIT STRING (SIZE(128)),
		po256-v1420				BIT STRING (SIZE(256)),
		po512-v1420				BIT STRING (SIZE(512)),
		po1024-v1420			BIT STRING (SIZE(1024))
	}														OPTIONAL,				-- Need OP
	[[	prsID-r14				INTEGER (0..4095)			OPTIONAL,				-- Need ON
		add-numDL-Frames-r14	INTEGER (1..160)			OPTIONAL,				-- Cond sf-add
		prsOccGroupLen-r14		ENUMERATED {g2, g4, g8, g16, g32, g64, g128,... }
															OPTIONAL,				-- Cond Occ-Grp
		prsHoppingInfo-r14	CHOICE {
			nb2-r14				INTEGER (0.. maxAvailNarrowBands-Minus1-r14),
			nb4-r14				SEQUENCE (SIZE (3))
										OF INTEGER (0.. maxAvailNarrowBands-Minus1-r14)
	}														OPTIONAL				-- Cond PRS-FH
	]]
}

maxAvailNarrowBands-Minus1-r14		INTEGER ::= 15	-- Maximum number of narrowbands minus 1

-- ASN1STOP

Conditional presence
Explanation
sf-add
The field is mandatory present if the numDL-Frames field has the value 'sf-add'; otherwise it is not present. 
Occ-Grp
The field is mandatory present if a PRS occasion group is configured; otherwise it is not present.
PRS-FH
The field is mandatory present if frequency hopping is used for PRS; otherwise it is not present.

PRS-Info field descriptions
prs-Bandwidth
This field specifies the bandwidth that is used to configure the positioning reference signals on. Enumerated values are specified in number of resource blocks (n6 corresponds to 6 resource blocks, n15 to 15 resource blocks and so on) and define 1.4, 3, 5, 10, 15 and 20 MHz bandwidth.
prs-ConfigurationIndex
This field specfies the positioning reference signals configuration index IPRS as defined in TS 36.211 [16].
numDL-Frames
This field specifies the number of consecutive downlink subframes NPRS with positioning reference signals, as defined in TS 36.211 [16]. Enumerated values define 1, 2, 4, or 6 consecutive downlink subframes. The value sf-add indicates that NPRS is provided in the field add-numDL-Frames.
prs-MutingInfo
This field specifies the PRS muting configuration of the cell. The PRS muting configuration is defined by a periodic PRS muting sequence with periodicity TREP where TREP, counted in the number of PRS occasion groups (TS 36.133 [18]), can be 2, 4, 8, 16, 32, 64, 128, 256, 512, or 1024 which is also the length of the selected bit string that represents this PRS muting sequence. If a bit in the PRS muting sequence is set to "0", then the PRS is muted in all the PRS occasions in the corresponding PRS occasion group. A PRS occasion group comprises one or more PRS occasions as indicated by prsOccGroupLen. Each PRS occasion comprises NPRS downlink positioning subframes as defined in TS 36.211 [16]. The first bit of the PRS muting sequence corresponds to the first PRS occasion group that starts after the beginning of the assistance data reference cell SFN=0. The sequence is valid for all subframes after the target device has received the prs-MutingInfo. If this field is not present the target device may assume that the PRS muting is not in use for the cell.

When the SFN of the assistance data reference cell is not known to the UE and prs-MutingInfo is provided for a cell in the OTDOA-NeighbourCellInfoList IE, the UE may assume no PRS is transmitted by that cell.

When the UE receives a TREP-bit muting pattern together with a PRS periodicity TPRS for the same cell which exceeds 10240 subframes (i.e., TREP × TPRS > 10240 subframes), the UE shall assume an n-bit muting pattern based on the first n‑bits, where n = 10240/TPRS.
prsID
This field specifies the PRS-ID as defined in TS 36.211 [16].
add-numDL-Frames
This field specifies the number of consecutive downlink subframes NPRS with positioning reference signals, as defined in TS 36.211 [16]. Integer values define 1, 2, 3, …, 160 consecutive downlink subframes.
prsOccGroupLen
This field specifies the PRS occasion group length, defined as the number of consecutive PRS occasions comprising a PRS occasion group. Each PRS occasion of the PRS occasion group consists of numDL-Frames or add-numDL-Frames consecutive downlink subframes with positioning reference signals. Enumerated values define 2, 4, 8, 16, 32, 64 or 128 consecutive PRS occasions. If omitted, the PRS occasion group length is 1. The product of the PRS periodicity T_PRS from the prs-ConfigurationIndex and the PRS occasion group length cannot exceed 1280.
prsHoppingInfo
This field specifies the PRS frequency hopping configuration (TS 36.211 [16]). The choice nb2 indicates hopping between 2 narrowbands; the choice nb4 indicates hopping between 4 narrowbands. The first PRS positioning occasion of the first PRS occasion group that starts after the beginning of SFN=0 of the assistance data reference cell is located at the centre of the system bandwidth. The frequency band of each subsequent PRS occasion is indicated by nb2 or nb4, respectively, which defines the narrowband index as specified in TS 36.211 [16]. If this field is absent, no PRS frequency hopping is used.

–	TDD-Config
The IE TDD-Config is used to specify the TDD specific physical channel configuration.
-- ASN1START

TDD-Config-v1520 ::= SEQUENCE {
	subframeAssignment-v1520			ENUMERATED { sa0, sa1, sa2, sa3, sa4, sa5, sa6 },
	...
}

-- ASN1STOP

TDD-Config field descriptions
subframeAssignment
This field specifies the TDD UL/DL subframe configuration where sa0 points to Configuration 0, sa1 to Configuration 1 etc. as specified in TS 36.211 [16], table 4.2-2. The target device assumes the same value for all assistance data cells residing on same frequency band.

–	OTDOA-NeighbourCellInfoList
The IE OTDOA-NeighbourCellInfoList is used by the location server to provide neighbour cell information for OTDOA assistance data. If the target device is not capable of supporting additional neighbour cells (as indicated by the absence of the IE additionalNeighbourCellInfoList in OTDOA-ProvideCapabilities), the set of cells in the OTDOA-NeighbourCellInfoList is grouped per frequency layer and in the decreasing order of priority for measurement to be performed by the target device, with the first cell in the list being the highest priority for measurement and with the same earfcn not appearing in more than one instance of OTDOA‑NeighbourFreqInfo.
If the target device is capable of supporting additional neighbour cells (as indicated by the presence of the IE additionalNeighbourCellInfoList in OTDOA-ProvideCapabilities), the list may contain all cells (up to 3x24 cells) belonging to the same frequency layer or cells from different frequency layers with the first cell in the list still being the highest priority for measurement.
The prioritization of the cells in the list is left to server implementation. The target device should provide the available measurements in the same order as provided by the server.
If inter-frequency neighbour cells are included in OTDOA-NeighbourCellInfoList, where an inter-frequency is a E-UTRA frequency which is different from the E-UTRA serving cell frequency, the LPP layer shall inform lower layers to start performing inter-frequency RSTD measurements for these neighbour cells and also provide to lower layers the information about these neighbour cells, e.g. EARFCN and PRS positioning occasion information.
-- ASN1START

OTDOA-NeighbourCellInfoList ::= SEQUENCE (SIZE (1..maxFreqLayers)) OF OTDOA-NeighbourFreqInfo
OTDOA-NeighbourFreqInfo ::= SEQUENCE (SIZE (1..24)) OF OTDOA-NeighbourCellInfoElement

OTDOA-NeighbourCellInfoElement ::= SEQUENCE {
	physCellId							INTEGER (0..503),
	cellGlobalId						ECGI				OPTIONAL,		-- Need ON
	earfcn								ARFCN-ValueEUTRA	OPTIONAL,		-- Cond NotSameAsRef0
	cpLength							ENUMERATED {normal, extended, ...}
															OPTIONAL,		-- Cond NotSameAsRef1
	prsInfo								PRS-Info			OPTIONAL,		-- Cond NotSameAsRef2
	antennaPortConfig					ENUMERATED {ports-1-or-2, ports-4, ...}
															OPTIONAL, 		-- Cond NotsameAsRef3
	slotNumberOffset					INTEGER (0..19)		OPTIONAL,		-- Cond NotSameAsRef4
	prs-SubframeOffset					INTEGER (0..1279)	OPTIONAL,		-- Cond InterFreq
	expectedRSTD						INTEGER (0..16383),
	expectedRSTD-Uncertainty			INTEGER (0..1023),
	...,
	[[ earfcn-v9a0					ARFCN-ValueEUTRA-v9a0	OPTIONAL		-- Cond NotSameAsRef5
	]],
	[[	tpId-r14					INTEGER (0..4095)		OPTIONAL,		-- Need ON
		prs-only-tp-r14				ENUMERATED { true }		OPTIONAL,		-- Cond TBS
		cpLengthCRS-r14				ENUMERATED { normal, extended, ... }	
															OPTIONAL,		-- Cond CRS
		sameMBSFNconfigNeighbour-r14	BOOLEAN				OPTIONAL,		-- Need ON
		dlBandwidth-r14				ENUMERATED {n6, n15, n25, n50, n75, n100}
															OPTIONAL,		-- Cond NotSameAsRef6
		addPRSconfigNeighbour-r14	SEQUENCE (SIZE (1..maxAddPRSconfig-r14)) OF
										Add-PRSconfigNeighbourElement-r14
															OPTIONAL		-- Need ON
	]],
	[[
		tdd-config-v1520			TDD-Config-v1520		OPTIONAL		-- Need ON
	]]
}

Add-PRSconfigNeighbourElement-r14 ::= SEQUENCE {
	add-prsInfo-r14					PRS-Info				OPTIONAL,		-- Cond NotSameAsRef7
	...
}

maxFreqLayers	INTEGER ::= 3

-- ASN1STOP

Conditional presence
Explanation
NotsameAsRef0
The field is absent if earfcn-v9a0 is present. If earfcn-v9a0 is not present, the field is mandatory present if the EARFCN is not the same as for the assistance data reference cell; otherwise it is not present.
NotsameAsRef1
The field is mandatory present if the cyclic prefix length is not the same as for the assistance data reference cell; otherwise it is not present.
NotsameAsRef2
The field is mandatory present if the first PRS configuration is not the same as for the assistance data reference cell; otherwise it is not present.
NotsameAsRef3
The field is mandatory present if the antenna port configuration is not the same as for the assistance data reference cell; otherwise it is not present.
NotsameAsRef4
The field is mandatory present if the slot timing is not the same as for the assistance data reference cell; otherwise it is not present.
NotSameAsRef5
The field is absent if earfcn is present. If earfcn is not present, the field is mandatory present if the EARFCN is not the same as for the assistance data reference cell; otherwise it is not present.
InterFreq
The field is optionally present, need OP, if the EARFCN is not the same as for the assistance data reference cell; otherwise it is not present.
TBS
The field is mandatory present if the OTDOA-NeighbourCellInfoElement is provided for a PRS-only TP; otherwise it is not present. 
CRS
The field is optionally present, need ON, if prsInfo is present. Otherwise it is not present.
NotSameAsRef6
The field is mandatory present if PRS frequency hopping is used on this neighbour cell (TS 36.211 [16]) and if the downlink bandwidth configuration is not the same as for the assistance data reference cell; otherwise it is not present.
NotSameAsRef7
The field is mandatory present if any instance of the additional PRS configurations of addPRSconfigNeighbour is not the same as the corresponding instance of the additional PRS configuration of the addPRSconfigRef for the assistance data reference cell; otherwise it is not present.

OTDOA-NeighbourCellInfoList field descriptions
physCellId
This field specifies the physical cell identity of the neighbour cell, as defined in TS 36.331 [12].
cellGlobalId
This field specifies the ECGI, the globally unique identity of a cell in E-UTRA, of the neighbour cell, as defined in TS 36.331 [12]. The server should provide this field if it considers that it is needed to resolve any ambiguity in the cell identified by physCellId.
earfcn
This field specifies the EARFCN of the neighbour cell.
cpLength
This field specifies the cyclic prefix length of the neigbour cell PRS if PRS are present in this neighbour cell, otherwise this field specifies the cyclic prefix length of CRS in this neighbour cell.
prsInfo
This field specifies the first PRS configuration of the neighbour cell.
When the EARFCN of the neighbour cell is the same as for the assistance data reference cell, the target device may assume that each PRS positioning occasion in the neighbour cell at least partially overlaps with a PRS positioning occasion in the assistance data reference cell where the maximum offset between the transmitted PRS positioning occasions may be assumed to not exceed half a subframe.
When the EARFCN of the neighbour cell is the same as for the assistance data reference cell, the target may assume that this cell has the same PRS periodicity (TPRS) as the assistance data reference cell.
antennaPortConfig
This field specifies whether 1 (or 2) antenna port(s) or 4 antenna ports for cell specific reference signals are used.
slotNumberOffset
This field specifies the slot number offset at the transmitter between this cell and the assistance data reference cell.
The slotNumberOffset together with the current slot number of the assistance data reference cell may be used to calculate the current slot number of this cell which may further be used to generate the CRS sequence by the target device. The offset corresponds to the number of full slots counted from the beginning of a radio frame of the assistance data reference cell to the beginning of the closest subsequent radio frame of this cell. If this field is absent, the slot timing is the same as for the assistance data reference cell.
prs-SubframeOffset
This field specifies the offset between the first PRS subframe of the first PRS occasion group of the first PRS configuration in the assistance data reference cell on the reference carrier frequency layer and the first PRS subframe in the closest subsequent PRS occasion group of the PRS configuration with the longest PRS occasion group periodicity (NOTE 1) of this cell on the other carrier frequency layer. The value is given in number of full sub-frames. If the EARFCN is not the same as for the assistance data reference cell and the field is not present but PRS are available on this cell, the receiver shall consider the PRS subframe offset for this cell to be 0.
expectedRSTD
If PRS is transmitted:

This field indicates the RSTD value that the target device is expected to measure between this cell and the assistance data reference cell. The expectedRSTD field takes into account the expected propagation time difference as well as transmit time difference of PRS positioning occasions between the two cells. The RSTD value can be negative and is calculated as (expectedRSTD-8192). The resolution is 3Ts, with Ts=1/(15000*2048) seconds.

If PRS is not transmitted:

This field indicates the RSTD value that the target device is expected to measure between this cell and the assistance data reference cell. The expectedRSTD field takes into account the expected propagation time difference as well as transmit time difference between the two cells. The RSTD value can be negative and is calculated as (expectedRSTD-8192). The resolution is 3´Ts, with Ts=1/(15000*2048) seconds.
expectedRSTD-Uncertainty
If PRS is transmitted:

This field indicates the uncertainty in expectedRSTD value. The uncertainty is related to the location server′s a‑priori estimation of the target device location. The expectedRSTD and expectedRSTD-Uncertainty together define the search window for the target device.
The scale factor of the expectedRSTD-Uncertainty field is 3Ts, with Ts=1/(15000*2048) seconds.

The target device may assume that the beginning of the PRS occasion group of the PRS configuration with the longest PRS occasion group periodicity (NOTE) of the neighbour cell is received within the search window of size
[ expectedRSTD-Uncertainty3Ts, expectedRSTD-Uncertainty3Ts] centered at
TREF + 1 millisecondN + (expectedRSTD8192) 3Ts, where TREF is the reception time of the beginning of the first PRS occasion group of the first PRS configuration of the assistance data reference cell at the target device antenna connector, N = 0 when the EARFCN of the neighbour cell is equal to that of the assistance data reference cell, and N = prs-SubframeOffset otherwise.

If PRS is not transmitted:

This field indicates the uncertainty in expectedRSTD value. The uncertainty is related to the location server′s a‑priori estimation of the target device location. The expectedRSTD and expectedRSTD-Uncertainty together define the search window for the target device. The scale factor of the expectedRSTD-Uncertainty field is 3Ts, with Ts=1/(15000*2048) seconds.

If Tx is the reception time of the beginning of the subframe X of the assistance data reference cell at the target device antenna connector, the target device may assume that the beginning of the closest subframe of this neighbour cell to subframe X is received within the search window of size [ expectedRSTD-Uncertainty3Ts, expectedRSTD-Uncertainty3Ts] centered at Tx + (expectedRSTD8192) 3Ts,
tpId
This field specifies an identity of the transmission point. This field together with the physCellId and/or prsID may be used to identify the transmission point in case the same physical cell ID is shared by multiple transmission points.
prs-only-tp
This field, if present, indicates that the OTDOA-NeighbourCellInfoElement is provided for a PRS-only TP.

For the purpose of RSTD measurements from a PRS-only TP, the target device shall not assume any other signals or physical channels are present other than PRS (TS 36.213 [28]).

For the purpose of RSTD measurements from a PRS-only TP, the target device shall use the physCellId only for PRS generation, and only if no PRS-ID is provided for this TP.
cpLengthCRS
This field specifies the cyclic prefix length of this assistance data neighbour cell CRS. If this field is present, the target device may assume the CRS and PRS antenna ports of this assistance data neighbour cell are quasi co-located (as defined in TS 36.211 [16]).
sameMBSFNconfigNeighbour
This field indicates whether the MBSFN subframe configuration of the neighbour cell is the same as the current primary cell of the target device. TRUE means the same, and FALSE means not the same.
dlBandwidth
This field specifies the downlink bandwidth configuration of the neighbour cell, NRB in downlink, see TS 36.101 [21, table 5.6-1]. Enumerated value n6 corresponds to 6 resource blocks, n15 to 15 resource blocks and so on.
addPRSconfigNeighbour
This field specifies the additional (second and possibly third) PRS configuration(s) of the neighbour cell. When the EARFCN of the neighbour cell is the same as for the assistance data reference cell, the target device may assume that each PRS positioning occasion in each instance of addPRSconfigNeighbour in the neighbour cell at least partially overlaps with a PRS positioning occasion of the same instance of addPRSconfigRef in the assistance data reference cell where the maximum offset between the transmitted PRS positioning occasions may be assumed to not exceed half a subframe.
When the EARFCN of the neighbour cell is the same as for the assistance data reference cell, the target may assume that each instance of addPRSconfigNeighbour of this cell has the same PRS periodicity (TPRS) as the corresponding instance of addPRSconfigRef of the assistance data reference cell.
tdd-config
This field specifies the TDD specific physical channel configuration of the neighbour cell earfcn. The field should be present if this neighbour cell is a TDD cell and if the TDD UL/DL configuration for assistance data cells on this earfcn has not been provided in any other instance of OTDOA-NeighbourCellInfoElement or in IE OTDOA-ReferenceCellInfo, and is not the same as the target device′s current primary cell when this is a TDD cell. NOTE 2.

NOTE 1:	If this cell has more than one PRS configuration with equal longest PRS occasion group periodicity (i.e., PRS occasion group length times TPRS), the first such configuration is referenced. In order to avoid ambiguity for frequency hopping, a PRS occasion group should contain at least 2 PRS occasions with hopping between 2 narrowbands and at least 4 PRS occasions with hopping between 4 narrowbands.
NOTE 2:	The target device assumes the same TDD UL/DL configuration for all TDD cells residing on same frequency band specified by earfcn. Therefore, the location server should include the field tdd-config only once for assistance data cells with the same earfcn in IE OTDOA-ProvideAssistanceData. The location server does not need to include the field tdd-config for any assistance data cell in IE OTDOA-ProvideAssistanceData with the same earfcn or the same TDD UL/DL configuration as the target devices′ current primary cell if this is a TDD cell.
–	OTDOA-ReferenceCellInfoNB
The IE OTDOA-ReferenceCellInfoNB is used by the location server to provide NB-IoT assistance data reference cell information for OTDOA assistance data.
-- ASN1START

OTDOA-ReferenceCellInfoNB-r14 ::= SEQUENCE {
	physCellIdNB-r14				INTEGER (0..503)			OPTIONAL,	-- Cond NoPRS-AD1
	cellGlobalIdNB-r14				ECGI						OPTIONAL,	-- Cond NoPRS-AD2
	carrierFreqRef-r14				CarrierFreq-NB-r14			OPTIONAL,	-- Cond NotSameAsServ1
	earfcn-r14						ARFCN-ValueEUTRA-r14		OPTIONAL,	-- Cond Inband
	eutra-NumCRS-Ports-r14			ENUMERATED {ports1-or-2, ports4}
																OPTIONAL,	-- Cond NoPRS-AD3
	otdoa-SIB1-NB-repetitions-r14	ENUMERATED { r4, r8, r16 }	OPTIONAL,	-- Cond NotSameAsServ2
	nprsInfo-r14					PRS-Info-NB-r14				OPTIONAL,	-- Cond NPRS-Type1
	...,
	[[
	nprsInfo-Type2-v1470			PRS-Info-NB-r14				OPTIONAL	-- Cond NPRS-Type2
	]],
	[[	tdd-config-r15				TDD-Config-v1520			OPTIONAL	-- Need ON
	]]
}

-- ASN1STOP

Conditional presence
Explanation
NoPRS-AD1
This field is mandatory present if the OTDOA-ReferenceCellInfo IE is not included in OTDOA‑ProvideAssistanceData, or if the OTDOA-ReferenceCellInfo IE is included in OTDOA‑ProvideAssistanceData and the narrowband physical layer cell identity is not the same as the physical cell identity provided in OTDOA-ReferenceCellInfo IE. Otherwise it is not present.
NoPRS-AD2
This field is optionally present, need ON, if the OTDOA-ReferenceCellInfo IE is not included in OTDOA‑ProvideAssistanceData, or if the OTDOA-ReferenceCellInfo IE is included in OTDOA‑ProvideAssistanceData and the global cell identity is not the same as provided in OTDOA-ReferenceCellInfo IE. 
NotSameAsServ1
This field is mandatory present if the carrier frequency of the NB-IoT assistance data reference cell is not the same as the carrier frequency of the target devices' current serving NB-IoT cell. Otherwise it is not present.
Inband
This field is mandatory present, if the NPRS is configured within the LTE spectrum allocation (inband deployment). Otherwise it is not present.
NoPRS-AD3
This field is mandatory present if the OTDOA-ReferenceCellInfo IE is not included in OTDOA‑ProvideAssistanceData and if the NB-IoT assistance data reference cell is deployed within the LTE spectrum allocation (inband deployment). Otherwise it is not present.
NotSameAsServ2
This field is mandatory present, if NPRS configuration Part B only is configured on the NB-IoT assistance data reference cell, and if the repetition number of SIB1-NB of the NB‑IoT assistance data reference cell is not the same as the repetition number of SIB1‑NB of the target devices′ current serving NB-IoT cell. Otherwise it is not present. 
NPRS-Type1
The field is mandatory present if Type 1 narrowband positioning reference signals are available in the assistance data reference cell (TS 36.211 [16]); otherwise it is not present.
NPRS-Type2
The field is mandatory present if Type 2 narrowband positioning reference signals are available in the assistance data reference cell (TS 36.211 [16]); otherwise it is not present.

OTDOA-ReferenceCellInfoNB field descriptions
physCellIdNB
This field specifies the narrowband physical layer cell identity of the NB-IoT assistance data reference cell, as defined in TS 36.331 [12]. If this field is absent and if the OTDOA-ReferenceCellInfo IE is included in OTDOA‑ProvideAssistanceData the narrowband physical layer cell identity is the same as the physCellId provided in OTDOA‑ReferenceCellInfo IE. 
cellGlobalIdNB
This field specifies the global cell identity of the NB-IoT assistance data reference cell, as defined in TS 36.331 [12]. If this field is absent and if the OTDOA-ReferenceCellInfo IE with cellGlobalId is included in OTDOA‑ProvideAssistanceData, the global cell identity is the same as provided in OTDOA‑ReferenceCellInfo IE.
carrierFreqRef
This field specifies the carrier frequency of the NB-IoT assistance data reference cell.
earfcn
This field specifies the EARFCN of the E-UTRAN frequency, in which the NB-IoT cell is deployed.
eutra-NumCRS-Ports
This field specifies whether 1 (or 2) antenna port(s) or 4 antenna ports for cell specific reference signals (CRS) are used in the NB-IoT assistance data reference cell. If this field is absent and if the OTDOA-ReferenceCellInfo IE is included in OTDOA‑ProvideAssistanceData, the number of CRS antenna ports is the same as provided in OTDOA‑ReferenceCellInfo IE.
otdoa-SIB1-NB-repetitions
This field specifies the repetition number of SIB1-NB of the NB-IoT assistance data reference cell. Enumerated values r4 correspond to 4 repetions, r8 to 8 repetitions, and r16 to 16 repetions.
Note, when NPRS configuration Part B only is configured on the NB-IoT assistance data reference cell (i.e., anchor carrier), nprs-NumSF does also count/include subframes containing NPSS, NSSS, NPBCH, or SIB1-NB, but the UE can assume that no NPRS are transmitted in these subframes (TS 36.211 [16]).
nprsInfo
This field specifies the Type 1 NPRS (TS 36.211 [16]) configuration of the NB-IoT assistance data reference cell.

When the target device receives this field with operationModeInfoNPRS set to value ′standalone′, the target device shall assume no NPRS are transmitted on that NB-IoT carrier.
nprsInfo-Type2
This field specifies the Type 2 NPRS (TS 36.211 [16]) configuration of the NB-IoT assistance data reference cell.
tdd-config
Indicates the TDD specific physical channel configuration of the NB-IoT assistance data reference cell operating in TDD mode. This field should be present if the DL/UL subframe configuration of the NB-IoT assistance data reference cell is not the same as the DL/UL subframe configuration of the current serving NB-IoT cell of the target device, or if the current serving NB-IoT cell of the target device operates in FDD mode.

– 	PRS-Info-NB
The IE PRS-Info-NB provides the information related to the configuration of NPRS in a cell. If PRS-Info-NB includes configurations for multiple NPRS carrier frequencies, the target device may assume the antenna ports for the NPRS carrier are quasi co-located, as defined in TS 36.211 [16].
-- ASN1START

PRS-Info-NB-r14 ::= SEQUENCE (SIZE (1..maxCarrier-r14)) OF NPRS-Info-r14

NPRS-Info-r14 ::= SEQUENCE {
	operationModeInfoNPRS-r14	ENUMERATED { inband, standalone },
	nprs-carrier-r14			CarrierFreq-NB-r14	OPTIONAL,	-- Cond Standalone/Guardband
	nprsSequenceInfo-r14		INTEGER (0..174)	OPTIONAL,	-- Cond Inband
	nprsID-r14					INTEGER (0..4095)	OPTIONAL,	-- Cond NPRS-ID
	partA-r14					SEQUENCE {
		nprsBitmap-r14			CHOICE {
			subframePattern10-r14	BIT STRING (SIZE (10)),
			subframePattern40-r14 	BIT STRING (SIZE (40))	
		},
		nprs-MutingInfoA-r14	CHOICE {
			po2-r14					BIT STRING (SIZE(2)),
			po4-r14					BIT STRING (SIZE(4)),
			po8-r14					BIT STRING (SIZE(8)),
			po16-r14				BIT STRING (SIZE(16)),
			...
		}															OPTIONAL,		-- Cond MutingA
		...
	}																OPTIONAL,		-- Cond PartA
	partB-r14					SEQUENCE {
		nprs-Period-r14			ENUMERATED { ms160, ms320, ms640, ms1280, ... , ms2560-v1510},
		nprs-startSF-r14		ENUMERATED { zero, one-eighth, two-eighths, three-eighths,
											four-eighths, five-eighths, six-eighths,
											seven-eighths, ...},
		nprs-NumSF-r14			ENUMERATED { sf10, sf20, sf40, sf80, sf160, sf320,
											sf640, sf1280, ... , sf2560-v1510},
		nprs-MutingInfoB-r14	CHOICE {
			po2-r14					BIT STRING (SIZE(2)),
			po4-r14					BIT STRING (SIZE(4)),
			po8-r14					BIT STRING (SIZE(8)),
			po16-r14				BIT STRING (SIZE(16)),
			...
		}															OPTIONAL,		-- Cond MutingB
		...,
	[[	sib1-SF-TDD-r15			ENUMERATED {sf0, sf4, sf0and5}		OPTIONAL		-- Cond SIB1-TDD
	]]
	}																OPTIONAL,		-- Cond PartB
	...,
	[[
	partA-TDD-r15					SEQUENCE {
		nprsBitmap-r15			CHOICE {
			subframePattern10-TDD-r15	BIT STRING (SIZE (8)),
			subframePattern40-TDD-r15 	BIT STRING (SIZE (32)),
			...	
		},
		nprs-MutingInfoA-r15	CHOICE {
			po2-r15					BIT STRING (SIZE(2)),
			po4-r15					BIT STRING (SIZE(4)),
			po8-r15					BIT STRING (SIZE(8)),
			po16-r15				BIT STRING (SIZE(16)),
			...
		}															OPTIONAL,	-- Cond MutingA
		...
	}																OPTIONAL	-- Cond PartA-TDD
	]]
}

maxCarrier-r14	INTEGER ::= 5

-- ASN1STOP

Conditional presence
Explanation
Standalone/Guardband
This field is mandatory present, if the NPRS is configured in standalone or guardband operation mode. Otherwise it is not present.
Inband
This field is mandatory present, if the NPRS is configured within the LTE spectrum allocation (inband deployment) and the LTE carrier frequency is not provided in the assistance data. Otherwise it is not present.
NPRS-ID
The field is mandatory present, if the NPRS is generated based on the NPRS-ID (TS 36.211 [16]), different from the PCI. Otherwise the field is not present.
MutingA
The field is mandatory present, if muting is used for the NPRS Part A or Part A TDD configuration. Otherwise the field is not present.
PartA
The field is mandatory present, if NPRS is configured based on a bitmap of subframes which are not NB-IoT DL subframes (i.e., invalid DL subframes) (Part A configuration). Otherwise the field is not present. This field is not applicable for NB-IoT operating in TDD mode.
MutingB
The field is mandatory present, if muting is used for the NPRS Part B configuration. Otherwise the field is not present.
PartB
The field is mandatory present, if NPRS is configured based on a NPRS period, a NPRS subframe offset, and a number of consecutive NPRS downlink subframes per positioning occasion (Part B configuration). Otherwise the field is not present.
If NPRS configuration Part A and Part B are both configured, then a subframe contains NPRS if both configurations indicate that it contains NPRS.
PartA-TDD
The field is mandatory present, if NPRS is configured for NB-IoT operating in TDD mode and if NPRS is configured based on a bitmap of subframes which are not NB-IoT DL subframes (i.e., invalid DL subframes) (Part A TDD configuration). Otherwise the field is not present.
SIB1-TDD
The field is mandatory present, if NPRS is configured for NB-IoT operating in TDD mode and if SIB1-NB is transmitted on this carrier frequency. Otherwise the field is not present.

PRS-Info-NB field descriptions
operationModeInfoNPRS
This field specifies the operation mode of the NPRS carrier. The value ′standalone′ indicates standalone or guardband operation mode. 
nprs-carrier
This field specifies the NB-IoT carrier frequency for the NPRS. 
nprsSequenceInfo
This field specifies the index of the PRB containing the NPRS as defined in the table nprsSequenceInfo to E‑UTRA PRB index relation below.
nprsID
This field specifies the NPRS-ID as defined in TS 36.211 [16]. 
sib1-SF-TDD
This field indicates the subframe(s) used to transmit SIB1-NB. Values sf0 and sf4 correspond with subframe #0 and #4 respectively. Value sf0and5 corresponds with subframes #0 and #5.
subframePattern10, subframePattern40
This field specifies the NPRS subframe Part A configuration over 10ms or 40ms. Subframes not containing NPRS are indicated with value ′0′ in the bitmap; subframes containing NPRS are indicated with value ′1′ in the bitmap. The first/leftmost bit corresponds to the subframe #0 of the radio frame satisfying SFN mod x = 0, where x is the size of the bit string divided by 10. 
nprs-MutingInfoA
This field specifies the NPRS muting configuration of the NB-IoT carrier Part A configuration. The NPRS muting configuration is defined by a periodic NPRS muting sequence with periodicity TREP where TREP, counted in the number of NPRS positioning occasions, can be 2, 4, 8, or 16 which is also the length of the selected bit string that represents this NPRS muting sequence. If a bit in the NPRS muting sequence is set to ′0′, then the NPRS is muted in the corresponding NPRS positioning occasion. A NPRS positioning occasion for Part A comprises one radio frame (i.e., 10 subframes). The first/leftmost bit of the NPRS muting sequence corresponds to the first NPRS positioning occasion that starts after the beginning of the NB-IoT assistance data reference cell SFN=0. The sequence is valid for all subframes after the target device has received the nprs-MutingInfoA.
When the SFN of the NB-IoT assistance data reference cell is not known to the target device and nprs-MutingInfoA is provided for a cell in the OTDOA-NeighbourCellInfoListNB IE, the target device may assume no NPRS is transmitted by that cell.
nprs-Period
This field specifies the NPRS occasion period TNPRS (TS 36.211 [16]). Enumerated values correspond to 160ms, 320ms, 640ms, 1280ms, and 2560ms. The value ms2560 is only applicable to TDD mode.
nprs-startSF
This field specifies the subframe offset (TS 36.211 [16]). Enumerated values correspond to  of 0, 1/8, 2/8, 3/8, 4/8, 5/8, 6/8, or 7/8.
nprs-NumSF
This field specifies the number of consecutive downlink subframes NNPRS in one NPRS positioning occasion (TS 36.211 [16]). Enumerated values correspond to 10, 20, 40, 80, 160, 320, 640, 1280, and 2560 subframes. The values sf10 and sf20 are only applicable to FDD mode. The value sf2560 is only applicable to TDD mode.
When the target device receives a nprs-NumSF which exceeds the nprs-Period (i.e., NNPRS > TNPRS), the target device may assume no NPRS is transmitted by that cell.
nprs-MutingInfoB
This field specifies the NPRS muting configuration of the NB-IoT carrier Part B configuration. The NPRS muting configuration is defined by a periodic NPRS muting sequence with periodicity TREP where TREP, counted in the number of NPRS positioning occasions, can be 2, 4, 8, or 16 which is also the length of the selected bit string that represents this NPRS muting sequence. If a bit in the NPRS muting sequence is set to ′0′, then the NPRS is muted in the corresponding NPRS positioning occasion. A NPRS positioning occasion for Part B comprises NNPRS consecutive downlink positioning subframes, where NNPRS is given by the nprs-NumSF field. The first/leftmost bit of the NPRS muting sequence corresponds to the first NPRS positioning occasion that starts after the beginning of the NB-IoT assistance data reference cell SFN=0. The sequence is valid for all subframes after the target device has received the nprs‑MutingInfoB.
When the SFN of the NB-IoT assistance data reference cell is not known to the UE and nprs-MutingInfoB is provided for a cell in the OTDOA-NeighbourCellInfoListNB IE, the target device may assume no NPRS is transmitted by that cell.
When the UE receives a TREP-bit muting pattern together with a NPRS periodicity TNPRS for the same carrier which exceeds 10240 subframes (i.e., TREP × TNPRS > 10240 subframes), the target device shall assume an n-bit muting pattern based on the first n bits, where n = 10240/TNPRS.
subframePattern10-TDD, subframePattern40-TDD
This field specifies the NPRS subframe Part A configuration for TDD over 10ms or 40ms. The UE shall assume that subframe number 1 and 2 are not used for NPRS. The MSB of the NPRS bitmap corresponds to subframe 0, the second MSB corresponds to subframe 3, the third MSB corresponds to subframe 4 and so on, as also shown in Figure NPRS bitmap to subframe number mapping below.

nprsSequenceInfo to E‑UTRA PRB index relation

nprsSequenceInfo
E-UTRA PRB index for odd number of [16]
nprsSequenceInfo
E-UTRA PRB index for even number of [16]
0 - 74
-37, -36, …, 37
75 – 174
-50, -49, …, 49

NOTE:	Based on the above relation, in inband deployment, the carrier frequency of the NPRS carrier (fNB-IoT) can be calculated as follows:

where fEUTRA is derived from earfcn according to TS 36.101 [21, 5.7.3].


Figure 6.5.1.2-1: NPRS bitmap to subframe number mapping
–	OTDOA-NeighbourCellInfoListNB
The IE OTDOA-NeighbourCellInfoListNB is used by the location server to provide NB-IoT neighbour cell information for OTDOA assistance data.
-- ASN1START

OTDOA-NeighbourCellInfoListNB-r14 ::= SEQUENCE (SIZE (1..maxCells-r14)) OF
														OTDOA-NeighbourCellInfoNB-r14

OTDOA-NeighbourCellInfoNB-r14 ::= SEQUENCE {
	physCellIdNB-r14				INTEGER (0..503)		OPTIONAL,		-- Cond NoPRS-AD1
	cellGlobalIdNB-r14				ECGI					OPTIONAL,		-- Cond NoPRS-AD2
	carrierFreq-r14					CarrierFreq-NB-r14		OPTIONAL,		-- Cond NotSameAsRef1
	earfcn-r14						ARFCN-ValueEUTRA-r14	OPTIONAL,		-- Cond Inband
	eutra-NumCRS-Ports-r14			ENUMERATED {ports-1-or-2, ports-4, ...}
															OPTIONAL, 		-- Cond NotsameAsRef2
	otdoa-SIB1-NB-repetitions-r14	ENUMERATED { r4, r8, r16 }	
															OPTIONAL,		-- Cond	NotSameAsRef3
	nprsInfo-r14					PRS-Info-NB-r14			OPTIONAL,		-- Cond NotsameAsRef4
	nprs-slotNumberOffset-r14		INTEGER (0..19)			OPTIONAL,		-- Cond NotsameAsRef5
	nprs-SFN-Offset-r14				INTEGER (0..63)			OPTIONAL,		-- Cond NotsameAsRef6
	nprs-SubframeOffset-r14			INTEGER (0..1279)		OPTIONAL,		-- Need OP
	expectedRSTD-r14				INTEGER (0..16383)		OPTIONAL,		-- Cond NoPRS-AD3
	expectedRSTD-Uncertainty-r14	INTEGER (0..1023)		OPTIONAL,		-- Cond NoPRS-AD3
	prsNeighbourCellIndex-r14		INTEGER (1..72)			OPTIONAL,		-- Cond PRS-AD
	...,
	[[
	nprsInfo-Type2-v1470			PRS-Info-NB-r14			OPTIONAL		-- Cond NotSameAsRef4
	]],
	[[	tdd-config-r15				TDD-Config-v1520		OPTIONAL		-- Need ON
	]]
}

maxCells-r14	INTEGER ::= 72

-- ASN1STOP

Conditional presence
Explanation
NoPRS-AD1
This field is mandatory present if the OTDOA-NeighbourCellInfoList IE is not included in OTDOA‑ProvideAssistanceData, or if the OTDOA-NeighbourCellInfoList IE is included in OTDOA‑ProvideAssistanceData and the narrowband physical layer cell identity of this cell is not the same as the physical cell identity of the corresponding cell (as indicated by prsNeighbourCellIndex) in OTDOA‑NeighbourCellInfoList IE.
NoPRS-AD2
This field is optionally present, need ON, if the OTDOA-NeighbourCellInfoList IE is not included in OTDOA‑ProvideAssistanceData, or if the OTDOA-NeighbourCellInfoList IE is included in OTDOA‑ProvideAssistanceData and the global cell identity of this cell is not the same as for the corresponding cell (as indicated by prsNeighbourCellIndex) in OTDOA‑NeighbourCellInfoList IE. 
Inband
This field is mandatory present, if the NPRS is configured within the LTE spectrum allocation (inband deployment). Otherwise it is not present.
NotSameAsRef1
The field is mandatory present if the carrier frequency is not the same as for the NB-IoT assistance data reference cell; otherwise it is not present.
NotSameAsRef2
The field is mandatory present if this cell is deployed within the LTE spectrum allocation (inband deployment) and if the number of E-UTRA CRS antenna ports is not the same as for the NB-IoT assistance data reference cell; otherwise it is not present.
NotSameAsRef3
This field is mandatory present if NPRS configuration Part B only is configured on this neighbour cell, and if the repetition number of SIB1-NB of this neighbor cell is not the same as the repetition number of SIB1‑NB of the NB-IoT assistance data reference cell. Otherwise it is not present.
NotSameAsRef4
The field is mandatory present, if the NPRS configuration is not the same as for the NB‑IoT assistance data reference cell; otherwise it is not present.
NotSameAsRef5
The field is mandatory present if the slot timing is not the same as for the NB-IoT assistance data reference cell; otherwise it is not present.
NotSameAsRef6
The field is mandatory present if the frame timing is not the same as for the NB-IoT assistance data reference cell; otherwise it is not present.
NoPRS-AD3
This field is mandatory present if the OTDOA-NeighbourCellInfoList IE is not included in OTDOA‑ProvideAssistanceData, or if the OTDOA-NeighbourCellInfoList IE is included in OTDOA‑ProvideAssistanceData and prsNeighbourCellIndex is absent for this cell. 
PRS-AD
This field is optionally present, need OP, if the OTDOA-NeighbourCellInfoList IE is included in OTDOA‑ProvideAssistanceData; otherwise it is not present.

OTDOA-NeighbourCellInfoListNB field descriptions
physCellIdNB
This field specifies the narrowband physical cell identity of the NB-IoT neighbour cell, as defined in TS 36.331 [12]. If this field is absent and if the OTDOA-NeighbourCellInfoList IE is included in OTDOA‑ProvideAssistanceData the narrowband physical layer cell identity is the same as the physCellId provided for the corresponding cell (as indicated by prsNeighbourCellIndex) in OTDOA‑NeighbourCellInfoList IE.
cellGlobalIdNB
This field specifies the global cell ID of the NB-IoT neighbour cell, as defined in TS 36.331 [12]. If this field is absent and if the OTDOA‑NeighbourCellInfoList IE with cellGlobalId is included in OTDOA‑ProvideAssistanceData, the global cell identity of the NB-IoT neighbour cell is the same as provided for the corresponding cell (as indicated by prsNeighbourCellIndex) in OTDOA‑NeighbourCellInfoList IE.
carrierFreq
This field specifies the carrier frequency of the NB-IoT neighbour cell.
earfcn
This field specifies the EARFCN of the E-UTRAN frequency, in which the NB-IoT cell is deployed.
eutra-NumCRS-Ports
This field specifies whether 1 (or 2) antenna port(s) or 4 antenna ports for cell specific reference signals are used. 
otdoa-SIB1-NB-repetitions
This field specifies the repetition number of SIB1-NB of the neighbour cell. Enumerated values r4 correspond to 4 repetions, r8 to 8 repetitions, and r16 to 16 repetions.
Note, when NPRS configuration Part B only is configured on this NB-IoT neighbour cell (i.e., anchor carrier), nprs-NumSF does also count/include subframes containing NPSS, NSSS, NPBCH, or SIB1-NB, but the UE can assume that no NPRS are transmitted in these subframes (TS 36.211 [16]).
nprsInfo
This field specifies the Type 1 NPRS (TS 36.211 [16]) configuration of the NB-IoT neighbour cell.

When the carrier frequency of the NB-IoT neighbour cell is the same as for the NB-IoT assistance data reference cell, the target device may assume that each NPRS positioning occasion for each NPRS carrier frequency in the neighbour cell at least partially overlaps with a NPRS positioning occasion for each NPRS carrier frequency in the NB-IoT assistance data reference cell where the maximum offset between the transmitted NPRS positioning occasions may be assumed to not exceed half a subframe.
When the carrier frequency of the neighbour cell is the same as for the NB-IoT assistance data reference cell, and NPRS configuration Part B is configured, the target may assume that this cell has the same NPRS periodicity (TNPRS) as the assistance data reference cell for each NPRS carrier frequency.

When the target device receives this field with operationModeInfoNPRS set to value ′standalone′, the target device shall assume no NPRS are transmitted on that NB-IoT carrier.
nprs-slotNumberOffset
This field specifies the slot number offset at the transmitter between this cell and the NB-IoT assistance data reference cell. The offset corresponds to the number of full slots counted from the beginning of a radio frame of the NB-IoT assistance data reference cell to the beginning of the closest subsequent radio frame of this cell. If this field is absent, the slot timing is the same as for the NB-IoT assistance data reference cell.
nprs-SFN-Offset
This field specifies the SFN offset (modulo 64) at the transmitter between this cell and the NB-IoT assistance data reference cell. The offset corresponds to the number of full radio frames counted from the beginning of a radio frame #0 of the NB‑IoT assistance data reference cell to the beginning of the closest subsequent radio frame #0 of this cell.
The UE may use this field together with the nprs-slotNumberOffset and otdoa-SIB1-NB-repetitions to determine the SIB1-NB subframes of this neighbour cell.
nprs-SubframeOffset
This field specifies the offset between the first NPRS subframe in the NB-IoT assistance data reference cell (NOTE 1) and the first NPRS subframe in the closest subsequent NPRS positioning occasion of the NPRS carrier with the longest NPRS periodicity of this cell (NOTE 2). The value is given in number of full sub-frames. If this field is not present, the receiver shall consider the NPRS subframe offset to be 0.
expectedRSTD
This field indicates the RSTD value that the target device is expected to measure between this cell and the NB-IoT assistance data reference cell. The expectedRSTD field takes into account the expected propagation time difference as well as transmit time difference of NPRS positioning occasions between the two cells. The RSTD value can be negative and is calculated as (expectedRSTD-8192). The resolution is 3Ts, with Ts=1/(15000*2048) seconds.
If this field is absent and if the OTDOA-NeighbourCellInfoList IE is included in OTDOA‑ProvideAssistanceData, the expected RSTD is the same as provided in OTDOA-NeighbourCellInfoList IE for the corresponding cell (as indicated by prsNeighbourCellIndex).
expectedRSTD-Uncertainty
This field indicates the uncertainty in expectedRSTD value. The uncertainty is related to the location server′s a‑priori estimation of the target device location. The expectedRSTD and expectedRSTD-Uncertainty together define the search window for the target device.
The scale factor of the expectedRSTD-Uncertainty field is 3Ts, with Ts=1/(15000*2048) seconds.
If this field is absent and if the OTDOA-NeighbourCellInfoList IE is included in OTDOA‑ProvideAssistanceData, the expected RSTD uncertainty is the same as provided in OTDOA-NeighbourCellInfoList IE for the corresponding cell (as indicated by prsNeighbourCellIndex).

The target device may assume that the beginning of the NPRS positioning occasion of the NPRS carrier with the longest NPRS periodicity of the neighbour cell (NOTE 2) is received within the search window of size [expectedRSTD-Uncertainty3Ts, expectedRSTD-Uncertainty3Ts] centered at
TREF + 1 millisecondN + (expectedRSTD8192) 3Ts, where TREF is the reception time of the beginning of the NPRS positioning occasion of the NB-IoT assistance data reference cell (NOTE 1) at the target device antenna connector, and N = nprs‑SubframeOffset. 
prsNeighbourCellIndex
This field contains an index of the entry in IE OTDOA-NeighbourCellInfoList. Value 1 corresponds to the first cell in OTDOA-NeighbourCellInfoList, value 2 to the second, and so on. If this field is absent, and if the OTDOA‑NeighbourCellInfoList IE is included in OTDOA‑ProvideAssistanceData, it means there is no corresponding cell in OTDOA-NeighbourCellInfoList IE for this cell.
The target device may assume the antenna ports of the PRS of the cell indicated by prsNeighbourCellIndex and the NPRS of this cell are quasi co-located, as defined in TS 36.211 [16].
nprsInfo-Type2
This field specifies the Type 2 NPRS (TS 36.211 [16]) configuration of the NB-IoT neighbour cell.
tdd-config
Indicates the TDD specific physical channel configuration of the NB-IoT assistance data neighbour cell operating in TDD mode. This field should be present if the DL/UL subframe configuration of the NB-IoT assistance data neighbour cell is not the same as for the NB-IoT assistance data reference cell, or if the current serving NB-IoT cell of the target device operates in FDD mode. 

NOTE 1:	If the NB-IoT assistance data reference cell (i.e., anchor carrier) has no NPRS configured, the first NPRS carrier in PRS-Info-NB is referenced.
NOTE 2:	"Cell" in this context may not necessarily be the anchor carrier. If this "cell" has more than one NPRS carrier with equal longest periodicity, the first such NPRS carrier in PRS-Info-NB is referenced. The length of a NPRS positioning occasion for Part A in this context is the length of the nprsBitmap bit string.
6.5.1.3	OTDOA Assistance Data Request
–	OTDOA-RequestAssistanceData
The IE OTDOA-RequestAssistanceData is used by the target device to request assistance data from a location server.
-- ASN1START

OTDOA-RequestAssistanceData ::= SEQUENCE {
	physCellId			INTEGER (0..503),
	...,
	[[
	 adType-r14			BIT STRING { prs (0), nprs (1) } (SIZE (1..8))		OPTIONAL
	]],
	[[
		nrPhysCellId-r15	INTEGER (0..1007)									OPTIONAL
	]]
}

-- ASN1STOP

OTDOA-RequestAssistanceData field descriptions
physCellId
This field specifies the E-UTRA physical cell identity of the current primary cell of the target device.
adType
This field specifies the assistance data requested. This is represented by a bit string, with a one-value at the bit position means the particular assistance data is requested; a zero-value means not requested.
Bit 0 indicates that PRS assistance data are requested, bit 1 indicates that NPRS assistance data are requested.
nrPhysCellId
This field specifies the NR physical cell identity of the current primary cell of the target device. If this field is present, the target device sets the physCellId to an arbitrary value which shall be ignored by the location server.

6.5.1.4	OTDOA Location Information
–	OTDOA-ProvideLocationInformation
The IE OTDOA-ProvideLocationInformation is used by the target device to provide OTDOA location measurements to the location server. It may also be used to provide OTDOA positioning specific error reason.
-- ASN1START

OTDOA-ProvideLocationInformation ::= SEQUENCE {
	otdoaSignalMeasurementInformation	OTDOA-SignalMeasurementInformation	OPTIONAL,
	otdoa-Error							OTDOA-Error							OPTIONAL,
	...,
	[[
		otdoaSignalMeasurementInformation-NB-r14	OTDOA-SignalMeasurementInformation-NB-r14
																			OPTIONAL
	]]
}

-- ASN1STOP

6.5.1.5	OTDOA Location Information Elements
–	OTDOA-SignalMeasurementInformation
The IE OTDOA-SignalMeasurementInformation is used by the target device to provide RSTD measurements to the location server. The RSTD measurements are provided for a neighbour cell and the RSTD reference cell, both of which are provided in the IE OTDOA-ProvideAssistanceData. The RSTD reference cell may or may not be the same as the assistance data reference cell provided in OTDOA-ReferenceCellInfo or OTDOA-ReferenceCellInfoNB. If the target device stops reporting inter-frequency RSTD measurements, where the inter-frequency RSTD measurement is an OTDOA RSTD measurement with at least one cell on a frequency different from the serving cell frequency, the LPP layer shall inform lower layers that inter-frequency RSTD measurements are stopped.
NOTE 1:	If there are more than 24 NeighbourMeasurementElement to be sent, the target device may send them in multiple ProvideLocationInformation messages, as described under clause 5.3.
NOTE 2:	If NPRS/PRS antenna ports are quasi co-located, the target device provides a single RSTD measurement for the quasi co-located antenna ports of NPRS/PRS.
-- ASN1START

OTDOA-SignalMeasurementInformation ::= SEQUENCE {
	systemFrameNumber		BIT STRING (SIZE (10)),
	physCellIdRef			INTEGER (0..503),
	cellGlobalIdRef			ECGI					OPTIONAL,
	earfcnRef				ARFCN-ValueEUTRA		OPTIONAL,		-- Cond NotSameAsRef0
	referenceQuality		OTDOA-MeasQuality		OPTIONAL,
	neighbourMeasurementList	NeighbourMeasurementList,
	...,
	[[ earfcnRef-v9a0		ARFCN-ValueEUTRA-v9a0	OPTIONAL		-- Cond NotSameAsRef1
	]],
	[[ tpIdRef-r14			INTEGER (0..4095)		OPTIONAL,		-- Cond ProvidedByServer0
		prsIdRef-r14		INTEGER (0..4095)		OPTIONAL,		-- Cond ProvidedByServer1
		additionalPathsRef-r14	
							AdditionalPathList-r14	OPTIONAL,
		nprsIdRef-r14		INTEGER (0..4095)		OPTIONAL,		-- Cond ProvidedByServer2
		carrierFreqOffsetNB-Ref-r14
							CarrierFreqOffsetNB-r14	OPTIONAL,		-- Cond NB-IoT
		hyperSFN-r14		BIT STRING (SIZE (10))	OPTIONAL		-- Cond H-SFN
	]],
	[[
		motionTimeSource-r15		MotionTimeSource-r15		OPTIONAL
	]]
}

NeighbourMeasurementList ::= SEQUENCE (SIZE(1..24)) OF NeighbourMeasurementElement

NeighbourMeasurementElement ::= SEQUENCE {
	physCellIdNeighbour		INTEGER (0..503),
	cellGlobalIdNeighbour	ECGI					OPTIONAL,
	earfcnNeighbour			ARFCN-ValueEUTRA		OPTIONAL,		-- Cond NotSameAsRef2
	rstd					INTEGER (0..12711),
	rstd-Quality			OTDOA-MeasQuality,
	...,
	[[ earfcnNeighbour-v9a0	ARFCN-ValueEUTRA-v9a0	OPTIONAL		-- Cond NotSameAsRef3
	]],
	[[ tpIdNeighbour-r14	INTEGER (0..4095)		OPTIONAL,		-- Cond ProvidedByServer0
		prsIdNeighbour-r14	INTEGER (0..4095)		OPTIONAL,		-- Cond ProvidedByServer1
		delta-rstd-r14		INTEGER (0..5)			OPTIONAL,
		additionalPathsNeighbour-r14	
							AdditionalPathList-r14	OPTIONAL,
		nprsIdNeighbour-r14	INTEGER (0..4095)		OPTIONAL,		-- Cond ProvidedByServer2
		carrierFreqOffsetNB-Neighbour-r14
							CarrierFreqOffsetNB-r14	OPTIONAL		-- Cond NB-IoT
	]],
	[[
		delta-SFN-r15			INTEGER (-8192..8191)	OPTIONAL
	]]
}

AdditionalPathList-r14 ::= SEQUENCE (SIZE(1..maxPaths-r14)) OF AdditionalPath-r14

maxPaths-r14	INTEGER ::= 2

MotionTimeSource-r15 ::= SEQUENCE {
	timeSource-r15				ENUMERATED {servingCell, referenceCell, gnss, mixed,
											other, none, ...}
}

-- ASN1STOP

Conditional presence
Explanation
NotSameAsRef0
The field is absent if the corresponding earfcnRef-v9a0 is present. Otherwise, the target device shall include this field if the EARFCN of the RSTD reference cell is not the same as the EARFCN of the assistance data reference cell provided in the OTDOA assistance data.
NotSameAsRef1
The field is absent if the corresponding earfcnRef is present. Otherwise, the target device shall include this field if the EARFCN of the RSTD reference cell is not the same as the EARFCN of the assistance data reference cell provided in the OTDOA assistance data.
NotSameAsRef2
The field is absent if the corresponding earfcnNeighbour-v9a0 is present. Otherwise, the target device shall include this field if the EARFCN of this neighbour cell is not the same as the earfcnRef for the RSTD reference cell.
NotSameAsRef3
The field is absent if the corresponding earfcnNeighbour is present. Otherwise, the target device shall include this field if the EARFCN of this neighbour cell is not the same as the earfcnRef for the RSTD reference cell.
ProvidedByServer0
The target device shall include this field if a tpId for this transmission point is included in the OTDOA-ProvideAssistanceData. Otherwise the field is absent.
ProvidedByServer1
The target device shall include this field if a prsID for this transmission point is included in the OTDOA-ProvideAssistanceData. Otherwise the field is absent.
ProvidedByServer2
The target device shall include this field if an nprsID for this cell is included in the OTDOA-ProvideAssistanceData and if this cell is a NB-IoT only cell (without associated LTE PRS cell). Otherwise the field is absent.
NB-IoT
The target device shall include this field if the cell is a NB-IoT only cell (without associated LTE PRS cell). Otherwise the field is absent.
H-SFN
The target device shall include this field if it was able to determine a hyper SFN of the RSTD reference cell. 

OTDOA-SignalMeasurementInformation field descriptions
systemFrameNumber
If the deltaSFN and motionTimeSource fields are not present, this field specifies the SFN of the RSTD reference cell containing the starting subframe of the PRS or NPRS positioning occasion if PRS or NPRS are available on the RSTD reference cell, or subframe of the CRS for RSTD measurements if PRS and NPRS are not available on the RSTD reference cell during which the most recent neighbour cell RSTD measurement was performed.
In case of more than a single PRS configuration on the RSTD reference cell, the first PRS configuration is referenced.
If the deltaSFN and motionTimeSource fields are present, this field specifies the SFN of the RSTD reference cell when the TOA measurement for the RSTD reference cell has been made.
physCellIdRef
This field specifies the physical cell identity of the RSTD reference cell.
cellGlobalIdRef
This field specifies the ECGI, the globally unique identity of a cell in E-UTRA, of the RSTD reference cell. The target shall provide this IE if it knows the ECGI of the RSTD reference cell.
earfcnRef
This field specifies the EARFCN of the RSTD reference cell.
referenceQuality
This field specifies the target device′s best estimate of the quality of the TOA measurement from the RSTD reference cell, TSubframeRxRef, where TSubframeRxRef is the time of arrival of the signal from the RSTD reference cell.
When deltaSFN and motionTimeSource are both included, the target device shall not include measurement errors caused by motion of the target device in referenceQuality (e.g. the target device may assume the target device was stationary during OTDOA measurements).
neighbourMeasurementList
This list contains the measured RSTD values for neighbour cells together with the RSTD reference cell, along with quality for each measurement.
tpIdRef
This field specifies the transmission point ID of the RSTD reference cell.
prsIdRef
This field specifies the PRS-ID of the first PRS configuration of the RSTD reference cell.
additionalPathsRef
This field specifies one or more additional detected path timing values for the RSTD reference cell, relative to the path timing used for determining the rstd value. If this field was requested but is not included, it means the UE did not detect any additional path timing values.
nprsIdRef
This field specifies the NPRS-ID of the RSTD reference cell.
carrierFreqOffsetNB-Ref
This field specifies the offset of the NB-IoT channel number to EARFCN given by earfcnRef as defined in TS 36.101 [21]. 
hyperSFN
This field specifies the hyper SFN as defined in TS 36.331 [12] of the RSTD reference cell for the systemFrameNumber. 
motionTimeSource
This field provides reference information concerning the movement of the target device and comprises the following subfields:
-	timeSource specifies the external time source to which UE time was locked during the OTDOA measurements. Enumerated value "mixed" indicates that UE time was locked to more than one external time source during OTDOA measurements (e.g. is applicable to a change in serving cell when the serving cell was used as a time source). The value "other" indicates some other external time source. The value "none" indicates that UE time was not locked to an external time source.
If this field is present, the target device shall also provide the IE Sensor-MotionInformation in IE Sensor‑ProvideLocationInformation.
physCellIdNeighbour
This field specifies the physical cell identity of the neighbour cell for which the RSTDs are provided.
cellGlobalIdNeighbour
This field specifies the ECGI, the globally unique identity of a cell in E-UTRA, of the neighbour cell for which the RSTDs are provided. The target device shall provide this IE if it was able to determine the ECGI of the neighbour cell at the time of measurement.
earfcnNeighbour
This field specifies the EARFCN of the neighbour cell used for the RSTD measurements.
rstd
This field specifies the relative timing difference between this neighbour cell and the RSTD reference cell, as defined in TS 36.214 [17]. Mapping of the measured quantity is defined as in TS 36.133 [18] clause 9.1.10.3.
rstd-Quality
This field specifies the target device′s best estimate of the quality of the measured rstd.
When deltaSFN and motionTimeSource both included, the target device shall not include measurement errors caused by motion of the target device in rstd-Quality (e.g. the target device may assume the target device was stationary during OTDOA measurements).
tpIdNeighbour
This field specifies the transmission point ID for the neighbour cell for which the RSTDs are provided.
prsIdNeighbour
This field specifies the PRS-ID of the first PRS configuration of the neighbour cell for which the RSTDs are provided.
delta-rstd
This field specifies the higher-resolution RSTD RSTD as defined in TS 36.133 [18] clause 9.1.10.4. Mapping of the measured quantity is defined as in TS 36.133 [18] clause 9.1.10.4.
additionalPathsNeighbour
This field specifies one or more additional detected path timing values for the neighbour cell, relative to the path timing used for determining the rstd value. If this field was requested but is not included, it means the UE did not detect any additional path timing values.
nprsIdNeighbour
This field specifies the NPRS-ID of the neighbour cell for which the RSTDs are provided.
carrierFreqOffsetNB-Neighbour
This field specifies the offset of the NB-IoT channel number to EARFCN given by earfcnNeighbour as defined in TS 36.101 [21].
delta-SFN
This field provides information concerning the movement of the target device:
Together with systemFrameNumber specifies the measurementSFN of the RSTD reference cell when the TOA measurement for this neighbour cell has been made for determining the rstd. The measurementSFN is given by systemFrameNumber + delta-SFN. (The actual SFN is the measurementSFN modulo 1024.). The measurementSFN is used in IE Sensor-MotionInformation to provide movement information corresponding to the TOA measurement time.
If this field is present, the target device shall also provide the IE Sensor-MotionInformation in IE Sensor‑ProvideLocationInformation.

–	OTDOA-SignalMeasurementInformation-NB
The IE OTDOA-SignalMeasurementInformation-NB is used by the target device to provide RSTD measurements to the location server. The RSTD measurements are provided for a neighbour cell and the RSTD reference cell, both of which are provided in the IE OTDOA-ProvideAssistanceData. The RSTD reference cell may or may not be the same as the assistance data reference cell provided in OTDOA-ReferenceCellInfo or OTDOA-ReferenceCellInfoNB. If the target device stops reporting inter-frequency RSTD measurements, where the inter-frequency RSTD measurement is an OTDOA RSTD measurement with at least one cell on a frequency different from the serving cell frequency, the LPP layer shall inform lower layers that inter-frequency RSTD measurements are stopped.
NOTE 1:	If there are more than 24 NeighbourMeasurementElement-NB to be sent, the target device may send them in multiple ProvideLocationInformation messages, as described under clause 5.3.
NOTE 2:	If NPRS/PRS antenna ports are quasi co-located, the target device provides a single RSTD measurement for the quasi co-located antenna ports of NPRS/PRS.
-- ASN1START

OTDOA-SignalMeasurementInformation-NB-r14 ::= SEQUENCE {
	systemFrameNumber-r14			BIT STRING (SIZE (10)),
	physCellIdRef-r14				INTEGER (0..503),
	cellGlobalIdRef-r14				ECGI					OPTIONAL,
	earfcnRef-r14					ARFCN-ValueEUTRA-r14	OPTIONAL,	-- Cond NotSameAsRef0
	referenceQuality-r14			OTDOA-MeasQuality		OPTIONAL,
	neighbourMeasurementList-r14	NeighbourMeasurementList-NB-r14,
	tpIdRef-r14						INTEGER (0..4095)		OPTIONAL,	-- Cond ProvidedByServer0
	prsIdRef-r14					INTEGER (0..4095)		OPTIONAL,	-- Cond ProvidedByServer1
	additionalPathsRef-r14			AdditionalPathList-r14	OPTIONAL,
	nprsIdRef-r14					INTEGER (0..4095)		OPTIONAL,	-- Cond ProvidedByServer2
	carrierFreqOffsetNB-Ref-r14		CarrierFreqOffsetNB-r14	OPTIONAL,	-- Cond NB-IoT
	hyperSFN-r14					BIT STRING (SIZE (10))	OPTIONAL,	-- Cond H-SFN
	...
}

NeighbourMeasurementList-NB-r14 ::= SEQUENCE (SIZE(1..24)) OF NeighbourMeasurementElement-NB-r14

NeighbourMeasurementElement-NB-r14 ::= SEQUENCE {
	physCellIdNeighbour-r14		INTEGER (0..503),
	cellGlobalIdNeighbour-r14	ECGI					OPTIONAL,
	earfcnNeighbour-r14			ARFCN-ValueEUTRA-r14	OPTIONAL,		-- Cond NotSameAsRef2
	rstd-r14					INTEGER (0..12711),
	rstd-Quality-r14			OTDOA-MeasQuality,
	tpIdNeighbour-r14			INTEGER (0..4095)		OPTIONAL,		-- Cond ProvidedByServer0
	prsIdNeighbour-r14			INTEGER (0..4095)		OPTIONAL,		-- Cond ProvidedByServer1
	delta-rstd-r14				INTEGER (0..5)			OPTIONAL,
	additionalPathsNeighbour-r14	
								AdditionalPathList-r14	OPTIONAL,
	nprsIdNeighbour-r14			INTEGER (0..4095)		OPTIONAL,		-- Cond ProvidedByServer2
	carrierFreqOffsetNB-Neighbour-r14
								CarrierFreqOffsetNB-r14	OPTIONAL,		-- Cond NB-IoT
	...
}

-- ASN1STOP

Conditional presence
Explanation
NotSameAsRef0
The target device shall include this field if the EARFCN of the RSTD reference cell is not the same as the EARFCN of the assistance data reference cell provided in the OTDOA assistance data.
NotSameAsRef2
The target device shall include this field if the EARFCN of this neighbour cell is not the same as the earfcnRef for the RSTD reference cell.
ProvidedByServer0
The target device shall include this field if a tpId for this transmission point is included in the OTDOA-ProvideAssistanceData. Otherwise the field is absent.
ProvidedByServer1
The target device shall include this field if a prsID for this transmission point is included in the OTDOA-ProvideAssistanceData. Otherwise the field is absent.
ProvidedByServer2
The target device shall include this field if an nprsID for this cell is included in the OTDOA-ProvideAssistanceData and if this cell is a NB-IoT only cell (without associated LTE PRS cell). Otherwise the field is absent.
NB-IoT
The target device shall include this field if the cell is a NB-IoT only cell (without associated LTE PRS cell). Otherwise the field is absent.
H-SFN
The target device shall include this field if it was able to determine a hyper SFN of the RSTD reference cell. 

OTDOA-SignalMeasurementInformation-NB field descriptions
systemFrameNumber
This field specifies the SFN of the RSTD reference cell containing the starting subframe of the PRS or NPRS positioning occasion if PRS or NPRS are available on the RSTD reference cell, or subframe of the CRS for RSTD measurements if PRS and NPRS are not available on the RSTD reference cell during which the most recent neighbour cell RSTD measurement was performed.
In case of more than a single PRS configuration on the RSTD reference cell, the first PRS configuration is referenced.
physCellIdRef
This field specifies the physical cell identity of the RSTD reference cell.
cellGlobalIdRef
This field specifies the ECGI, the globally unique identity of a cell in E-UTRA, of the RSTD reference cell. The target shall provide this IE if it knows the ECGI of the RSTD reference cell.
earfcnRef
This field specifies the EARFCN of the RSTD reference cell.
referenceQuality
This field specifies the target device′s best estimate of the quality of the TOA measurement from the RSTD reference cell, TSubframeRxRef, where TSubframeRxRef is the time of arrival of the signal from the RSTD reference cell.
neighbourMeasurementList
This list contains the measured RSTD values for neighbour cells together with the RSTD reference cell, along with quality for each measurement.
tpIdRef
This field specifies the transmission point ID of the RSTD reference cell.
prsIdRef
This field specifies the PRS-ID of the first PRS configuration of the RSTD reference cell.
additionalPathsRef
This field specifies one or more additional detected path timing values for the RSTD reference cell, relative to the path timing used for determining the rstd value. If this field was requested but is not included, it means the UE did not detect any additional path timing values.
nprsIdRef
This field specifies the NPRS-ID of the RSTD reference cell.
carrierFreqOffsetNB-Ref
This field specifies the offset of the NB-IoT channel number to EARFCN given by earfcnRef as defined in TS 36.101 [21]. 
hyperSFN
This field specifies the hyper SFN as defined in TS 36.331 [12] of the RSTD reference cell for the systemFrameNumber. 
physCellIdNeighbour
This field specifies the physical cell identity of the neighbour cell for which the RSTDs are provided.
cellGlobalIdNeighbour
This field specifies the ECGI, the globally unique identity of a cell in E-UTRA, of the neighbour cell for which the RSTDs are provided. The target device shall provide this IE if it was able to determine the ECGI of the neighbour cell at the time of measurement.
earfcnNeighbour
This field specifies the EARFCN of the neighbour cell used for the RSTD measurements.
rstd
This field specifies the relative timing difference between this neighbour cell and the RSTD reference cell, as defined in TS 36.214 [17]. Mapping of the measured quantity is defined as in TS 36.133 [18] clause 9.1.10.3.
rstd-Quality
This field specifies the target device′s best estimate of the quality of the measured rstd.
tpIdNeighbour
This field specifies the transmission point ID for the neighbour cell for which the RSTDs are provided.
prsIdNeighbour
This field specifies the PRS-ID of the first PRS configuration of the neighbour cell for which the RSTDs are provided.
delta-rstd
This field specifies the higher-resolution RSTD RSTD as defined in TS 36.133 [18] clause 9.1.10.4. Mapping of the measured quantity is defined as in TS 36.133 [18] clause 9.1.10.4.
additionalPathsNeighbour
This field specifies one or more additional detected path timing values for the neighbour cell, relative to the path timing used for determining the rstd value. If this field was requested but is not included, it means the UE did not detect any additional path timing values.
nprsIdNeighbour
This field specifies the NPRS-ID of the neighbour cell for which the RSTDs are provided.
carrierFreqOffsetNB-Neighbour
This field specifies the offset of the NB-IoT channel number to EARFCN given by earfcnNeighbour as defined in TS 36.101 [21].

–	OTDOA-MeasQuality
-- ASN1START

OTDOA-MeasQuality ::= SEQUENCE {
	error-Resolution		BIT STRING (SIZE (2)),
	error-Value				BIT STRING (SIZE (5)),
	error-NumSamples		BIT STRING (SIZE (3))				OPTIONAL,
	...
}

-- ASN1STOP

OTDOA-MeasQuality field descriptions
error-Resolution
This field specifies the resolution R used in error-Value field. The encoding on two bits is as follows:
	′00′			5 meters
	′01′			10 meters
	′10′			20 meters
	′11′			30 meters.
error-Value
This field specifies the target device′s best estimate of the uncertainty of the OTDOA (or TOA) measurement.
The encoding on five bits is as follows:
	′00000′	0		to	(R*1-1) meters
	′00001′	R*1	to	(R*2-1) meters
	′00010′	R*2	to	(R*3-1) meters
	…
	′11111′	R*31	meters or more;
where R is the resolution defined by error-Resolution field.
E.g., R=20 m corresponds to 0-19 m, 20-39 m,…,620+ m. 
error-NumSamples
If the error-Value field provides the sample uncertainty of the OTDOA (or TOA) measurement, this field specifies how many measurements have been used by the target device to determine this (i.e., sample size). Following 3 bit encoding is used:
	′000′		Not the baseline metric
	′001′		5-9
	′010′		10-14
	′011′		15-24
	′100′		25-34
	′101′		35-44
	′110′		45-54
	′111′		55 or more.
In case of the value ′000′, the error-Value field contains the target device′s best estimate of the uncertainty of the OTDOA (or TOA) measurement not based on the baseline metric. E.g., other measurements such as signal-to-noise-ratio or signal strength can be utilized to estimate the error-Value.
If this field is absent, the value of this field is ′000′.

–	AdditionalPath
The IE AdditionalPath is used by the target device to provide information about additional paths in association to the RSTD measurements in the form of a relative time difference and a quality value. The additional path relativeTimeDifference is the detected path timing relative to the detected path timing used for the rstd value (TS 36.214 [17]), and each additional path can be associated with a quality value path-Quality.
-- ASN1START

AdditionalPath-r14 ::= SEQUENCE {
	relativeTimeDifference-r14	INTEGER (-256..255),
	path-Quality-r14			OTDOA-MeasQuality				OPTIONAL,
	...
}

-- ASN1STOP

AdditionalPath field descriptions
relativeTimeDifference
This field specifies the additional detected path timing relative to the detected path timing used for the rstd value in units of 0.5 Ts, with Ts=1/(15000*2048) seconds. A positive value indicates that the particular path is later in time than the detected path used for RSTD; a negative value indicates that the particular path is earlier in time than the detected path used for RSTD.
path-Quality
This field specifies the target device′s best estimate of the quality of the detected timing of the additional path.

6.5.1.6	OTDOA Location Information Request
–	OTDOA-RequestLocationInformation
The IE OTDOA-RequestLocationInformation is used by the location server to request OTDOA location measurements from a target device. Details of the required measurements (e.g. details of assistance data reference cell and neighbour cells) are conveyed in the OTDOA-ProvideAssistanceData IE in a separate Provide Assistance Data message.
-- ASN1START

OTDOA-RequestLocationInformation ::= SEQUENCE {
	assistanceAvailability		BOOLEAN,
	...,
	[[
		multipathRSTD-r14		ENUMERATED { requested }	OPTIONAL,		-- Need ON
		maxNoOfRSTDmeas-r14		INTEGER (1..32)				OPTIONAL		-- Need ON
	]],
	[[
		motionMeasurements-r15	ENUMERATED { requested }	OPTIONAL		-- Need ON
	]]
}

-- ASN1STOP

OTDOA-RequestLocationInformation field descriptions
assistanceAvailability
This field indicates whether the target device may request additional OTDOA assistance data from the server. TRUE means allowed and FALSE means not allowed.
multipathRSTD
This field, if present, indicates that the target device is requested to report additional detected path timing information per RSTD reference and neighbour cell.
maxNoOfRSTDmeas
This field, if present, indicates the maximum number of NeighbourMeasurementElement fields (i.e., RSTD measurements) the target device can provide in OTDOA-SignalMeasurementInformation.
motionMeasurements
This field, if present, indicates that the target device is requested to report the motion measurements (deltaSFN and motionTimeSource) in OTDOA‑SignalMeasurementInformation as well as the IE Sensor-MotionInformation in IE Sensor‑ProvideLocationInformation.

6.5.1.7	OTDOA Capability Information
–	OTDOA-ProvideCapabilities
The IE OTDOA-ProvideCapabilities is used by the target device to indicate its capability to support OTDOA and to provide its OTDOA positioning capabilities to the location server.
-- ASN1START

OTDOA-ProvideCapabilities ::= SEQUENCE {
	otdoa-Mode		BIT STRING {	ue-assisted				(0),
									ue-assisted-NB-r14		(1),
									ue-assisted-NB-TDD-r15	(2) } (SIZE (1..8)),
	...,
	supportedBandListEUTRA		SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA		OPTIONAL,
	supportedBandListEUTRA-v9a0	SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v9a0
																						OPTIONAL,
	interFreqRSTDmeasurement-r10		ENUMERATED { supported }						OPTIONAL,
	additionalNeighbourCellInfoList-r10	ENUMERATED { supported }						OPTIONAL,
	prs-id-r14							ENUMERATED { supported }						OPTIONAL,
	tp-separation-via-muting-r14		ENUMERATED { supported }						OPTIONAL,
	additional-prs-config-r14			ENUMERATED { supported }						OPTIONAL,
	prs-based-tbs-r14					ENUMERATED { supported }						OPTIONAL,
	additionalPathsReport-r14			ENUMERATED { supported }						OPTIONAL,
	densePrsConfig-r14					ENUMERATED { supported }						OPTIONAL,
	maxSupportedPrsBandwidth-r14		ENUMERATED { n6, n15, n25, n50, n75, n100, ...}	OPTIONAL,
	prsOccGroup-r14						ENUMERATED { supported }						OPTIONAL,
	prsFrequencyHopping-r14				ENUMERATED { supported }						OPTIONAL,
	maxSupportedPrsConfigs-r14			ENUMERATED { c2, c3 }							OPTIONAL,
	periodicalReporting-r14				ENUMERATED { supported }						OPTIONAL,
	multiPrbNprs-r14					ENUMERATED { supported }						OPTIONAL,
	idleStateForMeasurements-r14		ENUMERATED { required }							OPTIONAL,
	numberOfRXantennas-r14				ENUMERATED { rx1, ... }							OPTIONAL,
	motionMeasurements-r15				ENUMERATED { supported }						OPTIONAL,
	interRAT-RSTDmeasurement-r15		ENUMERATED { supported }						OPTIONAL
}

maxBands INTEGER ::= 64

SupportedBandEUTRA ::= SEQUENCE {
	bandEUTRA							INTEGER (1..maxFBI)
}

SupportedBandEUTRA-v9a0 ::=		SEQUENCE {
	bandEUTRA-v9a0						INTEGER (maxFBI-Plus1..maxFBI2)		OPTIONAL
}

maxFBI								INTEGER	::=	64	-- Maximum value of frequency band indicator
maxFBI-Plus1						INTEGER ::= 65	-- lowest value extended FBI range
maxFBI2								INTEGER ::= 256	-- highest value extended FBI range

-- ASN1STOP

OTDOA-ProvideCapabilities field descriptions
otdoa-Mode
This field specifies the OTDOA mode(s) supported by the target device. This is represented by a bit string, with a one value at the bit position means the particular OTDOA mode is supported; a zero value means not supported. A zero-value in all bit positions in the bit string means OTDOA positioning method is not supported by the target device.
ue-assisted:		Bit 0 indicates that the target device supports UE-assisted OTDOA and LTE PRS.
ue-assisted-NB:	Bit 1 indicates that the target device supports UE-assisted OTDOA and NB-IoT NPRS.
ue-assisted-NB-TDD: Bit 2 indicates that the target device supports UE-assisted OTDOA and NB-IoT NPRS for TDD.
SupportedBandEUTRA
This field specifies the frequency bands for which the target device supports RSTD measurements. One entry corresponding to each supported E-UTRA band as defined in TS 36.101 [21]. In case the target device includes bandEUTRA-v9a0, the target device shall set the corresponding entry of bandEUTRA (i.e. without suffix) to maxFBI.
interFreqRSTDmeasurement
This field, if present, indicates that the target device supports inter-frequency RSTD measurements within and between the frequency bands indicated in SupportedBandEUTRA.
additionalNeighbourCellInfoList
This field, if present, indicates that the target device supports up to 3×24 OTDOA-NeighbourCellInfoElement in OTDOA‑NeighbourCellInfoList in OTDOA-ProvideAssistanceData without any restriction for the earfcn in each OTDOA-NeighbourCellInfoElement as specified in clause 6.5.1.2.
prs-id
This field, if present, indicates that the target device supports PRS generation based on the PRS-ID as specified in TS 36.211 [16] and support for TP-ID in OTDOA-ReferenceCellInfo and OTDOA-NeighbourCellInfoList.
tp-separation-via-muting
This field, if present, indicates that the target device supports RSTD measurements for cells which have associated transmission points (e.g., Remote Radio Heads) within the cell coverage and where these associated transmission points have the same physical cell identity as the associated cell, and where these transmission points are identified via a different muting pattern. The field also indicates support for TP-ID in OTDOA-ReferenceCellInfo and OTDOA‑NeighbourCellInfoList.
additional-prs-config
This field, if present, indicates that the target device supports additional PRS configurations. The additional PRS configuration in PRS-Info IE comprise:
- support for prs-ConfigurationIndex > 2399;
- support for NPRS values in addition to 1, 2, 4 and 6 (add-numDL-Frames in PRS-Info);
- support for muting bit string lengths > 16 bits.
prs-based-tbs
This field, if present, indicates that the target device supports RSTD measurements for PRS-only TPs.
additionalPathsReport
This field, if present, indicates that the target device supports reporting of timing information for additional detected paths for RSTD reference and each neighbour cell.
densePrsConfig
This field, if present, indicates that the target device supports a subset of the additional PRS configurations associated with capability additional-prs-config which comprises:
- support for prs-ConfigurationIndex > 2404;
- support for NPRS values of 10, 20, 40, 80 and 160 (in addition to 1, 2, 4 and 6).
In case additional-prs-config is present, this field is not present.
maxSupportedPrsBandwidth
This field, if present, indicates the maximum PRS bandwidth supported by the target device. Enumerated value n6 corresponds to 6 resource blocks, n15 to 15 resource blocks and so on. If this field is not present, the target device is assumed to support the PRS bandwidth associated with the target device type, which for LTE devices including Cat-M1/M2 is 100 resource blocks and for NB-IoT devices is 1 resource block.
prsOccGroup
This field, if present, indicates that the target device supports PRS occasion groups, which implies that each bit of a configured muting pattern applies per PRS occasion group.
prsFrequencyHopping
This field, if present, indicates that the target device supports PRS occasion frequency hopping, as specified in TS 36.211 [16].
maxSupportedPrsConfigs
This field, if present, indicates that the target device supports multiple PRS configurations per cell. Enumerated value c2 indicates support for up to 2 configurations; c3 indicates support for up to 3 configurations.
periodicalReporting
This field, if present, indicates that the target device supports periodicalReporting of RSTD measurements. If this field is absent, the location server may assume that the target device does not support periodicalReporting in CommonIEsRequestLocationInformation.
multiPrbNprs
This field, if present, indicates that the target device supports NPRS configuration in more than one resource block (i.e., maxCarrier in PRS-Info-NB greater 1).
idleStateForMeasurements
This field, if present, indicates that the target device requires idle state to perform RSTD measurements.
numberOfRXantennas
This field is not applicable to NB-IoT devices.
This field, if present, indicates the number of UE downlink receive antennas for RSTD measurements (see TS 36.133 [18]). Enumerated value rx1 indicates a single antenna receiver. If this field is absent, the target device is assumed to support two RX antennas for RSTD measurements. 
motionMeasurements
This field, if present, indicates that the target device supports reporting of motion measurements (deltaSFN and motionTimeSource) in OTDOA‑SignalMeasurementInformation. The presence of this field implies presence of sensor-MotionInformationSup in IE Sensor‑ProvideCapabilities.
interRAT-RSTDmeasurement
This field, if present, indicates that the target device supports inter-RAT RSTD measurements (TS 38.215 [36]); i.e., E-UTRA RSTD measurements when the target device is served by an NR cell.

6.5.1.8	OTDOA Capability Information Request
–	OTDOA-RequestCapabilities
The IE OTDOA-RequestCapabilities is used by the location server to request the capability of the target device to support OTDOA and to request OTDOA positioning capabilities from a target device.
-- ASN1START

OTDOA-RequestCapabilities ::= SEQUENCE {
	...
}

-- ASN1STOP

6.5.1.9	OTDOA Error Elements
–	OTDOA-Error
The IE OTDOA-Error is used by the location server or target device to provide OTDOA error reasons to the target device or location server, respectively.
-- ASN1START

OTDOA-Error ::= CHOICE {
	locationServerErrorCauses		OTDOA-LocationServerErrorCauses,
	targetDeviceErrorCauses			OTDOA-TargetDeviceErrorCauses,
	...
}

-- ASN1STOP

–	OTDOA-LocationServerErrorCauses
The IE OTDOA-LocationServerErrorCauses is used by the location server to provide OTDOA error reasons to the target device.
-- ASN1START

OTDOA-LocationServerErrorCauses ::= SEQUENCE {
	cause		ENUMERATED	{	undefined,
								assistanceDataNotSupportedByServer,
								assistanceDataSupportedButCurrentlyNotAvailableByServer,
								...
							},
	...
}

-- ASN1STOP

–	OTDOA-TargetDeviceErrorCauses
The IE OTDOA-TargetDeviceErrorCauses is used by the target device to provide OTDOA error reasons to the location server.
-- ASN1START

OTDOA-TargetDeviceErrorCauses ::= SEQUENCE {
	cause		ENUMERATED {	undefined,
								assistance-data-missing,
								unableToMeasureReferenceCell,
								unableToMeasureAnyNeighbourCell,
								attemptedButUnableToMeasureSomeNeighbourCells,
								...
							},
	...
}

-- ASN1STOP

6.5.2	A-GNSS Positioning
6.5.2.1	GNSS Assistance Data
–	A-GNSS-ProvideAssistanceData
The IE A-GNSS-ProvideAssistanceData is used by the location server to provide assistance data to enable UE‑based and UE‑assisted A‑GNSS. It may also be used to provide GNSS positioning specific error reasons.
-- ASN1START

A-GNSS-ProvideAssistanceData ::= SEQUENCE {
	gnss-CommonAssistData			GNSS-CommonAssistData				OPTIONAL,	-- Need ON
	gnss-GenericAssistData			GNSS-GenericAssistData				OPTIONAL,	-- Need ON
	gnss-Error						A-GNSS-Error						OPTIONAL,	-- Need ON
	...,
	[[
		gnss-PeriodicAssistData-r15	GNSS-PeriodicAssistData-r15			OPTIONAL	-- Cond CtrTrans
	]]
}

-- ASN1STOP

Conditional presence
Explanation
CtrTrans
The field is mandatory present in the control transaction of a periodic assistance data delivery session as described in clauses 5.2.1a and 5.2.2a. Otherwise it is not present.

–	GNSS-CommonAssistData
The IE GNSS-CommonAssistData is used by the location server to provide assistance data which can be used for any GNSS (e.g., GPS, Galileo, GLONASS, BDS, etc.).
-- ASN1START

GNSS-CommonAssistData ::= SEQUENCE {
	gnss-ReferenceTime				GNSS-ReferenceTime					OPTIONAL,	-- Need ON
	gnss-ReferenceLocation			GNSS-ReferenceLocation				OPTIONAL,	-- Need ON
	gnss-IonosphericModel			GNSS-IonosphericModel				OPTIONAL,	-- Need ON
	gnss-EarthOrientationParameters	GNSS-EarthOrientationParameters		OPTIONAL,	-- Need ON
	...,
	[[
		gnss-RTK-ReferenceStationInfo-r15
									GNSS-RTK-ReferenceStationInfo-r15	OPTIONAL,	-- Need ON
		gnss-RTK-CommonObservationInfo-r15	
									GNSS-RTK-CommonObservationInfo-r15	OPTIONAL,	-- Cond RTK
		gnss-RTK-AuxiliaryStationData-r15
									GNSS-RTK-AuxiliaryStationData-r15	OPTIONAL	-- Need ON
	]]
}

-- ASN1STOP

Conditional presence
Explanation
RTK
The field is mandatory present if the IE GNSS-RTK-Observations is included in IE GNSS‑GenericAssistData; otherwise it is not present.

–	GNSS-GenericAssistData
The IE GNSS-GenericAssistData is used by the location server to provide assistance data for a specific GNSS (e.g., GPS, Galileo, GLONASS, BDS, etc.). The specific GNSS for which the provided assistance data are applicable is indicated by the IE GNSS‑ID and (if applicable) by the IE SBAS‑ID. Assistance for up to 16 GNSSs can be provided.
-- ASN1START

GNSS-GenericAssistData ::= SEQUENCE (SIZE (1..16)) OF GNSS-GenericAssistDataElement

GNSS-GenericAssistDataElement ::= SEQUENCE {
	gnss-ID							GNSS-ID,
	sbas-ID							SBAS-ID							OPTIONAL, 	-- Cond GNSS-ID-SBAS
	gnss-TimeModels					GNSS-TimeModelList				OPTIONAL,	-- Need ON
	gnss-DifferentialCorrections	GNSS-DifferentialCorrections	OPTIONAL,	-- Need ON
	gnss-NavigationModel			GNSS-NavigationModel			OPTIONAL,	-- Need ON
	gnss-RealTimeIntegrity			GNSS-RealTimeIntegrity			OPTIONAL,	-- Need ON
	gnss-DataBitAssistance			GNSS-DataBitAssistance			OPTIONAL,	-- Need ON
	gnss-AcquisitionAssistance		GNSS-AcquisitionAssistance		OPTIONAL,	-- Need ON
	gnss-Almanac					GNSS-Almanac					OPTIONAL,	-- Need ON
	gnss-UTC-Model					GNSS-UTC-Model					OPTIONAL,	-- Need ON
	gnss-AuxiliaryInformation		GNSS-AuxiliaryInformation		OPTIONAL,	-- Need ON
	...,
	[[
		bds-DifferentialCorrections-r12	
									BDS-DifferentialCorrections-r12	OPTIONAL,	-- Cond	GNSS-ID-BDS
		bds-GridModel-r12			BDS-GridModelParameter-r12		OPTIONAL	-- Cond	GNSS-ID-BDS
	]],
	[[
		gnss-RTK-Observations-r15	GNSS-RTK-Observations-r15		OPTIONAL,	-- Need ON
		glo-RTK-BiasInformation-r15	GLO-RTK-BiasInformation-r15		OPTIONAL,	-- Cond GNSS-ID-GLO
		gnss-RTK-MAC-CorrectionDifferences-r15
									GNSS-RTK-MAC-CorrectionDifferences-r15
																	OPTIONAL,	-- Need ON
		gnss-RTK-Residuals-r15		GNSS-RTK-Residuals-r15			OPTIONAL,	-- Need ON
		gnss-RTK-FKP-Gradients-r15	GNSS-RTK-FKP-Gradients-r15		OPTIONAL,	-- Need ON
		gnss-SSR-OrbitCorrections-r15
									GNSS-SSR-OrbitCorrections-r15	OPTIONAL,	-- Need ON
		gnss-SSR-ClockCorrections-r15
									GNSS-SSR-ClockCorrections-r15	OPTIONAL,	-- Need ON
		gnss-SSR-CodeBias-r15		GNSS-SSR-CodeBias-r15			OPTIONAL	-- Need ON
	]]
}

-- ASN1STOP

Conditional presence
Explanation
GNSS‑ID‑SBAS
The field is mandatory present if the GNSS‑ID = sbas; otherwise it is not present.
GNSS‑ID‑BDS
The field may be present if the GNSS‑ID = bds; otherwise it is not present.
GNSS-ID-GLO
The field may be present if the GNSS ID = glonass; otherwise it is not present.

–	GNSS-PeriodicAssistData
The IE GNSS-PeriodicAssistData is used by the location server to provide control parameters for a periodic assistance data delivery session (e.g., interval and duration) to the target device.
NOTE:	Omission of a particular assistance data type field in IE GNSS-PeriodicAssistData means that the location server does not provide this assistance data type in a data transaction of a periodic assistance data delivery session, as described in clauses 5.2.1a and 5.2.2a. Inclusion of no assistance data type fields in IE GNSS-PeriodicAssistData means that a periodic assistance data delivery session is terminated.
-- ASN1START

GNSS-PeriodicAssistData-r15 ::= SEQUENCE {
	gnss-RTK-PeriodicObservations-r15		GNSS-PeriodicControlParam-r15	OPTIONAL,	-- Need ON
	glo-RTK-PeriodicBiasInformation-r15		GNSS-PeriodicControlParam-r15	OPTIONAL,	-- Need ON
	gnss-RTK-MAC-PeriodicCorrectionDifferences-r15
											GNSS-PeriodicControlParam-r15	OPTIONAL,	-- Need ON
	gnss-RTK-PeriodicResiduals-r15			GNSS-PeriodicControlParam-r15	OPTIONAL,	-- Need ON
	gnss-RTK-FKP-PeriodicGradients-r15		GNSS-PeriodicControlParam-r15	OPTIONAL,	-- Need ON
	gnss-SSR-PeriodicOrbitCorrections-r15
											GNSS-PeriodicControlParam-r15	OPTIONAL, 	-- Need ON
	gnss-SSR-PeriodicClockCorrections-r15
											GNSS-PeriodicControlParam-r15	OPTIONAL, 	-- Need ON
	gnss-SSR-PeriodicCodeBias-r15			GNSS-PeriodicControlParam-r15	OPTIONAL, 	-- Need ON
	...
}

-- ASN1STOP

6.5.2.2	GNSS Assistance Data Elements
–	GNSS-ReferenceTime
The IE GNSS-ReferenceTime is used by the location server to provide the GNSS specific system time with uncertainty and the relationship between GNSS system time and network air-interface timing of the eNodeB/NodeB/BTS transmission in the reference cell.
If the IE networkTime is present, the IEs gnss-SystemTime and networkTime provide a valid relationship between GNSS system time and air-interface network time, as seen at the approximate location of the target device, i.e. the propagation delay from the the eNodeB/NodeB/BTS to the target device shall be compensated for by the location server. Depending on implementation, the relation between GNSS system time and air-interface network time may have varying accuracy. The uncertainty of this timing relation is provided in the IE referenceTimeUnc. If the propagation delay from the eNodeB/NodeB/BTS to the target device is not accurately known, the location server shall use the best available approximation of the propagation delay and take the corresponding delay uncertainty into account in the calculation of the IE referenceTimeUnc.
If the IE networkTime is not present, the IE gnssSystemTime is an estimate of current GNSS system time at time of reception of the IE GNSS-ReferenceTime by the target device. The location server should achieve an accuracy of +/- 3 seconds for this estimate including allowing for the transmission delay between the location server and the target device. Note that the target device should further compensate gnss-SystemTime for the time between the reception of GNSS-ReferenceTime and the time when the gnss-SystemTime is used.
The location server shall provide a value for the gnss-TimeID only for GNSSs supported by the target device.
The IE GNSS-ReferenceTimeForOneCell can be provided multiple times (up to 16) to provide fine time assistance for several (neighbour) cells.
-- ASN1START

GNSS-ReferenceTime ::= SEQUENCE {
	gnss-SystemTime				GNSS-SystemTime,
	referenceTimeUnc			INTEGER (0..127)					OPTIONAL,	-- Cond noFTA
	gnss-ReferenceTimeForCells	SEQUENCE (SIZE (1..16)) OF
									GNSS-ReferenceTimeForOneCell	OPTIONAL,	-- Need ON
	...
}

GNSS-ReferenceTimeForOneCell ::= SEQUENCE {	
	networkTime				NetworkTime,
	referenceTimeUnc			INTEGER (0..127),
	bsAlign						ENUMERATED {true}	OPTIONAL,
	...
}

-- ASN1STOP

Conditional presence
Explanation
noFTA
The field may be present if gnss-ReferenceTimeForCells is absent; otherwise it is not present.

GNSS-ReferenceTime field descriptions
gnss-SystemTime
This field provides the specific GNSS system time.
networkTime
This field specifies the cellular network time at the epoch corresponding to gnss-SystemTime.
referenceTimeUnc
This field provides the accuracy of the relation between gnssSystemTime and networkTime time if IE networkTime is provided. When IE networkTime is not provided, this field can be included to provide the accuracy of the provided gnssSystemTime.
If GNSS TOD is the given GNSS time, then the true GNSS time, corresponding to the provided network time as observed at the target device location, lies in the interval [GNSS TOD - referenceTimeUnc, GNSS TOD + referenceTimeUnc].
The uncertainty r, expressed in microseconds, is mapped to a number K, with the following formula:
													r = C*(((1+x)K)-1)
with C = 0.5 and x = 0.14. To encode any higher value of uncertainty than that corresponding in the above formula to K=127, the same value, K=127, shall also be used. The uncertainty is then coded on 7 bits, as the binary encoding of K. Example values for the referenceTimeUnc Format: see table K to uncertainty relation below. 
bsAlign
This flag, if present, indicates that the transmission timings of all cells sharing, depending on the RAT, the same carrier frequency and Tracking Area/Location Area/Routing Area as the cell indicated, are frame aligned. This information allows the target device to derive the GNSS - cellular time relation for any of these cells based on the timing relation information provided in GNSS-ReferenceTime. The flag should be set consistently in all these cells. This flag does not guarantee SFN alignment.

K to uncertainty relation
Value of K
Value of uncertainty
0
0 nanoseconds
1
70 nanoseconds
2
149.8 nanoseconds
-
-
50
349.62 microseconds
-
-
127
≥ 8.43 seconds

–	GNSS-SystemTime
-- ASN1START

GNSS-SystemTime ::= SEQUENCE {
	gnss-TimeID						GNSS-ID,
	gnss-DayNumber					INTEGER (0..32767),
	gnss-TimeOfDay					INTEGER (0..86399),
	gnss-TimeOfDayFrac-msec			INTEGER (0..999)		OPTIONAL,	-- Need ON
	notificationOfLeapSecond		BIT STRING (SIZE(2))	OPTIONAL,	-- Cond gnss-TimeID-glonass
	gps-TOW-Assist					GPS-TOW-Assist			OPTIONAL,	-- Cond gnss-TimeID-gps
	...
}

-- ASN1STOP

Conditional presence
Explanation
gnss-TimeID-glonass
The field may be present if gnss-TimeID=`glonass′; otherwise it is not present.
gnss-TimeID-gps
The field may be present if gnss-TimeID=`gps′; otherwise it is not present.

GNSS-SystemTime field descriptions
gnss-TimeID
This field specifies the GNSS for which the GNSS-SystemTime is provided.
gnss-DayNumber
This field specifies the sequential number of days (with day count starting at 0) from the origin of the GNSS System Time as follows:
	GPS, QZSS, SBAS – Days from January 6th 1980 00:00:00 UTC (USNO);
	Galileo – Days from Galileo System Time (GST) start epoch, defined as 13 seconds before midnight between 21st					August and 22nd August 1999; i.e., GST was equal to 13 seconds at August 22nd 1999 00:00:00 UTC;
	GLONASS – Days from December 31st 1995 21:00:00 UTC (SU), which is local UTC Moscow
					January 1st 1996 00:00:00, defined as UTC(SU) + 3 hours in [9];
	BDS – Days from January 1st 2006 00:00:00 UTC (NTSC).
gnss-TimeOfDay
This field specifies the integer number of seconds from the GNSS day change.
gnss-TimeOfDayFrac-msec
This field specifies the fractional part of the gnssTimeOfDay field in 1‑milli‑seconds resolution. The total GNSS TOD is gnss-TimeOfDay + gnssTimeOfDayFrac-msec.
notificationOfLeapSecond
This field specifies the notification of forthcoming leap second correction, as defined by parameter KP in [9, Table 4.7].
gps-TOW-Assist
This field contains several fields in the Telemetry (TLM) Word and Handover Word (HOW) that are currently being broadcast by the respective GPS satellites. Combining this information with GPS TOW enables the target device to know the entire 1.2-second (60-bit) pattern of TLM and HOW that is transmitted at the start of each six-second NAV subframe by the particular GPS satellite.

–	GPS-TOW-Assist
-- ASN1START

GPS-TOW-Assist ::= SEQUENCE (SIZE(1..64)) OF GPS-TOW-AssistElement

GPS-TOW-AssistElement ::= SEQUENCE {
	satelliteID		INTEGER (1..64),
	tlmWord			INTEGER (0..16383),
	antiSpoof		INTEGER (0..1),
	alert			INTEGER (0..1),
	tlmRsvdBits		INTEGER (0..3),
	...
}

-- ASN1STOP

GPS-TOW-Assist field descriptions
satelliteID
This field identifies the satellite for which the GPS-TOW-Assist is applicable. This field is identical to the GPS PRN Signal No. defined in [4].
tlmWord
This field contains a 14-bit value representing the Telemetry Message (TLM) being broadcast by the GPS satellite identified by the particular satelliteID, with the MSB occurring first in the satellite transmission, as defined in [4].
antiSpoof
This field contains the Anti-Spoof flag that is being broadcast by the GPS satellite identified by satelliteID, as defined in [4].
alert
This field contains the Alert flag that is being broadcast by the GPS satellite identified by satelliteID, as defined in [4].
tlmRsvdBits
This field contains the two reserved bits in the TLM Word being broadcast by the GPS satellite identified by satelliteID, with the MSB occurring first in the satellite transmission, as defined in [4].

–	NetworkTime
-- ASN1START

NetworkTime ::= SEQUENCE {
	secondsFromFrameStructureStart				INTEGER(0..12533),
	fractionalSecondsFromFrameStructureStart	INTEGER(0..3999999),
	frameDrift									INTEGER (-64..63)	OPTIONAL,	-- Cond GNSSsynch
	cellID		CHOICE {
				eUTRA		SEQUENCE {
							physCellId			INTEGER (0..503),
							cellGlobalIdEUTRA	CellGlobalIdEUTRA-AndUTRA	OPTIONAL,	-- Need ON
							earfcn				ARFCN-ValueEUTRA,
							...,
							[[ earfcn-v9a0		ARFCN-ValueEUTRA-v9a0 OPTIONAL	-- Cond EARFCN-max
							]]
							},
				uTRA		SEQUENCE {
							mode	CHOICE {
									fdd		SEQUENCE {
											primary-CPICH-Info	INTEGER (0..511),
											...
											},
									tdd		SEQUENCE {
											cellParameters		INTEGER (0..127),
											...
											}
									},
							cellGlobalIdUTRA	CellGlobalIdEUTRA-AndUTRA	OPTIONAL,	-- Need ON
							uarfcn				ARFCN-ValueUTRA,
							...
							},
				gSM			SEQUENCE {
							bcchCarrier			INTEGER (0..1023),
							bsic				INTEGER (0..63),
							cellGlobalIdGERAN	CellGlobalIdGERAN			OPTIONAL,	-- Need ON
							...
							},
				...,
				nBIoT-r14	SEQUENCE {
							nbPhysCellId-r14	INTEGER (0..503),
							nbCellGlobalId-r14	ECGI						OPTIONAL,	-- Need ON
							nbCarrierFreq-r14	CarrierFreq-NB-r14,
							...
							},
				nr-r15		SEQUENCE {
							nrPhysCellId-r15	INTEGER (0..1007),
							nrCellGlobalID-r15	NCGI-r15					OPTIONAL,	-- Need ON
							nrARFCN-r15			ARFCN-ValueNR-r15,
							...
							}
				},
	...
}

-- ASN1STOP

Conditional presence
Explanation
EARFCN-max
The field is mandatory present if the corresponding earfcn (i.e. without suffix) is set to maxEARFCN. Otherwise the field is not present.
GNSSsynch
The field is present and set to 0 if NetworkTime is synchronized to gnss-SystemTime; otherwise the field is optionally present, need OR.

NetworkTime field descriptions
secondsFromFrameStructureStart
This field specifies the number of seconds from the beginning of the longest frame structure in the corresponding air interface.
In case of E-UTRA, the SFN cycle length is 10.24 seconds.
In case of UTRA, the SFN cycle length is 40.96 seconds.
In case of GSM, the hyperfame length is 12533.76 seconds.
In case of NB-IoT, the Hyper-SFN cycle lengths is 10485.76 seconds.
In case of NR, the SFN cycle length is 10.24 seconds.
fractionalSecondsFromFrameStructureStart
This field specifies the fractional part of the secondsFromFrameStructureStart in 250 ns resolution.
The total time since the particular frame structure start is secondsFromFrameStructureStart + fractionalSecondsFromFrameStructureStart
frameDrift
This field specifies the drift rate of the GNSS‑network time relation with scale factor 2-30 seconds/second, in the range from ‑5.9605e-8 to +5.8673e-8 sec/sec.
cellID
This field specifies the cell for which the GNSS–network time relation is provided.
physCellId
This field specifies the physical cell identity of the reference cell (E-UTRA), as defined in TS 36.331 [12], for which the GNSS network time relation is provided.
cellGlobalIdEUTRA
This field specifies the Evolved Cell Global Identifier (ECGI), the globally unique identity of a cell in E-UTRA, of the reference cell for the GNSS‑network time relation, as defined in TS 36.331 [12].
earfcn
This field specifies E-ARFCN of the reference cell for the GNSS‑network time relation (E-UTRA). In case the server includes earfcn-v9a0, the server shall set the corresponding earfcn (i.e. without suffix) to maxEARFCN.
primary-CPICH-Info
This field specifies the physical cell identity of the reference cell (UTRA) for the GNSS‑network time relation, as defined in TS 25.331 [13].
cellParameters
This field specifies the physical cell identity of the reference cell (UTRA) for the GNSS‑network time relation, as defined in TS 25.331 [13].
cellGlobalIdUTRA
The filed specifies the global UTRAN Cell Identifier, the globally unique identity of a cell in UTRA, of the reference cell for the GNSS‑network time relation, as defined in TS 25.331 [13].
uarfcn
This field specifies ARFCN of the reference cell for the GNSS‑network time relation (UTRA).
bcchCarrier
This field specifies the absolute GSM RF channel number of the BCCH of the reference base station (GERAN) for the GNSS‑network time relation, as defined in TS 44.031 [14].
bsic
This field specifies the Base Station Identity Code of the reference base station (GERAN) for the GNSS‑network time relation, as defined in TS 44.031 [14].
cellGlobalIdGERAN
This field specifies the Cell Global Identification (CGI), the globally unique identity of a cell in GERAN, of the reference base station for the GNSS‑network time relation.
nbPhysCellId
This field specifies the narrowband physical layer cell identity of the NB-IoT reference cell, as defined in TS 36.331 [12], for which the GNSS network time relation is provided.
nbCellGlobalId
This field specifies the global cell identifier of the NB-IoT reference cell for which the GNSS‑network time relation is provided, as defined in TS 36.331 [12].
nbCarrierFreq
This field specifies the carrier frequency of the NB-IoT reference cell for which the GNSS‑network time relation is provided.
nrPhysCellId
This field specifies the physical cell identity of the reference cell (NR), as defined in TS 38.331 [35], for which the GNSS network time relation is provided.
nrCellGlobalID
This field specifies the NR Cell Global Identifier (NCGI) of the reference cell (NR) for the GNSS‑network time relation, as defined in TS 38.331 [35].
nrARFCN
This field specifies NR-ARFCN of the reference cell (NR) for the GNSS‑network time relation.

–	GNSS-ReferenceLocation
The IE GNSS-ReferenceLocation is used by the location server to provide the target device with a‑priori knowledge of its location in order to improve GNSS receiver performance. The IE GNSS-ReferenceLocation is provided in WGS‑84 reference system.
-- ASN1START

GNSS-ReferenceLocation ::= SEQUENCE {
		threeDlocation			EllipsoidPointWithAltitudeAndUncertaintyEllipsoid,
		...
}

-- ASN1STOP

–	GNSS-IonosphericModel
The IE GNSS-IonosphericModel is used by the location server to provide parameters to model the propagation delay of the GNSS signals through the ionosphere. Proper use of these fields allows a single‑frequency GNSS receiver to remove parts of the ionospheric delay from the pseudorange measurements. Two Ionospheric Models are supported: The Klobuchar model as defined in [4], and the NeQuick model as defined in [8].
-- ASN1START

GNSS-IonosphericModel ::= SEQUENCE {
	klobucharModel			KlobucharModelParameter		OPTIONAL,	-- Need ON
	neQuickModel			NeQuickModelParameter		OPTIONAL,	-- Need ON
	...
}

-- ASN1STOP

–	KlobucharModelParameter
-- ASN1START

KlobucharModelParameter ::= SEQUENCE {
	dataID			BIT STRING (SIZE (2)),
	alfa0			INTEGER (-128..127),
	alfa1			INTEGER (-128..127),
	alfa2			INTEGER (-128..127),
	alfa3			INTEGER (-128..127),
	beta0			INTEGER (-128..127),
	beta1			INTEGER (-128..127),
	beta2			INTEGER (-128..127),
	beta3			INTEGER (-128..127),
	...
}

-- ASN1STOP

KlobucharModelParamater field descriptions
dataID
When dataID has the value ′11′ it indicates that the parameters have been generated by QZSS, and the parameters have been specialized and are applicable within the area defined in [7]. When dataID has the value ′01′ it indicates that the parameters have been generated by BDS, and UE shall use these parameters according to the description given in 5.2.4.7 in [23]. When dataID has the value ′00′ it indicates the parameters are applicable worldwide [4], [7]. All other values for dataID are reserved.
alpha0
This field specifies the 0 parameter of the Klobuchar model, as specified in [4], [23].
Scale factor 2-30 seconds.
alpha1
This field specifies the 1 parameter of the Klobuchar model, as specified in [4], [23].
Scale factor 2-27 seconds/semi-circle.
alpha2
This field specifies the 2 parameter of the Klobuchar model, as specified in [4], [23].
Scale factor 2-24 seconds/semi-circle2.
alpha3
This field specifies the 3 parameter of the Klobuchar model, as specified in [4], [23].
Scale factor 2-24 seconds/semi-circle3.
beta0
This field specifies the 0 parameter of the Klobuchar model, as specified in [4], [23].
Scale factor 211 seconds.
beta1
This field specifies the 1 parameter of the Klobuchar model, as specified in [4], [23].
Scale factor 214 seconds/semi-circle.
beta2
This field specifies the 2 parameter of the Klobuchar model, as specified in [4], [23].
Scale factor 216 seconds/semi-circle2.
beta3
This field specifies the 3 parameter of the Klobuchar model, as specified in [4], [23].
Scale factor 216 seconds/semi-circle3.

–	NeQuickModelParameter
-- ASN1START

NeQuickModelParameter ::= SEQUENCE {
	ai0			INTEGER (0..2047),
	ai1			INTEGER (-1024..1023),
	ai2			INTEGER (-8192..8191),
	ionoStormFlag1	INTEGER (0..1)		OPTIONAL,	-- Need OP
	ionoStormFlag2	INTEGER (0..1)		OPTIONAL,	-- Need OP
	ionoStormFlag3	INTEGER (0..1)		OPTIONAL,	-- Need OP
	ionoStormFlag4	INTEGER (0..1)		OPTIONAL,	-- Need OP
	ionoStormFlag5	INTEGER (0..1)		OPTIONAL,	-- Need OP
	...
}

-- ASN1STOP

NeQuickModelParameter field descriptions
ai0
Effective Ionisation Level 1st order parameter.
Scale factor 2-2 Solar Flux Units (SFUs), [8] clause 5.1.6.
ai1
Effective Ionisation Level 2nd order parameter.
Scale factor 2-8 Solar Flux Units/degree, [8] clause 5.1.6.
ai2
Effective Ionisation Level 3rd order parameter.
Scale factor 2-15 Solar Flux Units/degree2, [8] clause 5.1.6. 
ionoStormFlag1, ionoStormFlag2, ionoStormFlag3, ionoStormFlag4, ionoStormFlag5
These fields specify the ionosphere disturbance flags (1,…,5) for five different regions as described in [8], clause 5.1.6. If the ionosphere disturbance flag for a region is not present the target device shall treat the ionosphere disturbance condition as unknown.

–	GNSS-EarthOrientationParameters
The IE GNSS-EarthOrientationParameters is used by the location server to provide parameters to construct the ECEF and ECI coordinate transformation as defined in [4]. The IE GNSS-EarthOrientationParameters indicates the relationship between the Earth′s rotational axis and WGS-84 reference system.
-- ASN1START

GNSS-EarthOrientationParameters ::= SEQUENCE {
	teop				INTEGER (0..65535),
	pmX					INTEGER (-1048576..1048575),
	pmXdot				INTEGER (-16384..16383),
	pmY					INTEGER (-1048576..1048575),
	pmYdot				INTEGER (-16384..16383),
	deltaUT1			INTEGER (-1073741824..1073741823),
	deltaUT1dot			INTEGER (-262144..262143),
	...
}

-- ASN1STOP

GNSS-EarthOrientationParameters field descriptions
teop
This field specifies the EOP data reference time in seconds, as specified in [4].
Scale factor 24 seconds.
pmX
This field specifies the X-axis polar motion value at reference time in arc-seconds, as specified in [4].
Scale factor 2-20 arc-seconds.
pmXdot
This field specifies the X-axis polar motion drift at reference time in arc-seconds/day, as specified in [4].
Scale factor 2-21 arc-seconds/day.
pmY
This field specifies the Y-axis polar motion value at reference time in arc-seconds, as specified in [4].
Scale factor 2-20 arc-seconds.
pmYdot
This field specifies the Y-axis polar motion drift at reference time in arc-seconds/day, as specified in [4].
Scale factor 2-21 arc-seconds/day.
deltaUT1
This field specifies the UT1-UTC difference at reference time in seconds, as specified in [4].
Scale factor 2-24 seconds.
deltaUT1dot
This field specifies the Rate of UT1-UTC difference at reference time in seconds/day, as specified in [4].
Scale factor 2-25 seconds/day.

–	GNSS-RTK-ReferenceStationInfo
The IE GNSS-RTK-ReferenceStationInfo is used by the location server to provide the Earth-centered, Earth-fixed (ECEF) coordinates of the antenna reference point (ARP) of the stationary reference station for which the GNSS‑RTK‑Observations assistance data are provided together with reference station antenna description.
The parameters provided in IE GNSS-RTK-ReferenceStationInfo are used as specified for message type 1006, 1033 and 1032 in [30].
-- ASN1START

GNSS-RTK-ReferenceStationInfo-r15 ::= SEQUENCE {
	referenceStationID-r15					GNSS-ReferenceStationID-r15,
	referenceStationIndicator-r15			ENUMERATED {physical, non-physical},
	antenna-reference-point-ECEF-X-r15		INTEGER (-137438953472..137438953471),
	antenna-reference-point-ECEF-Y-r15		INTEGER (-137438953472..137438953471),
	antenna-reference-point-ECEF-Z-r15		INTEGER (-137438953472..137438953471),
	antennaHeight-r15						INTEGER (0..65535)					OPTIONAL, -- Need ON
	antennaDescription-r15					AntennaDescription-r15				OPTIONAL, -- Need ON
	antenna-reference-point-unc-r15			AntennaReferencePointUnc-r15		OPTIONAL, -- Need ON
	physical-reference-station-info-r15		PhysicalReferenceStationInfo-r15	OPTIONAL, -- Cond NP
	...
}

AntennaDescription-r15 ::= SEQUENCE {
	antennaDescriptor-r15					VisibleString (SIZE (1..256)),
	antennaSetUpID-r15						ENUMERATED { non-zero }				OPTIONAL, -- Need OP
	...
}

AntennaReferencePointUnc-r15 ::= SEQUENCE {
	uncertainty-X-r15						INTEGER (0..255),
	confidence-X-r15						INTEGER (0..100),
	uncertainty-Y-r15						INTEGER (0..255),
	confidence-Y-r15						INTEGER (0..100),
	uncertainty-Z-r15						INTEGER (0..255),
	confidence-Z-r15						INTEGER (0..100),
	...
}

PhysicalReferenceStationInfo-r15 ::= SEQUENCE {
	physicalReferenceStationID-r15			GNSS-ReferenceStationID-r15,
	physical-ARP-ECEF-X-r15					INTEGER (-137438953472..137438953471),
	physical-ARP-ECEF-Y-r15					INTEGER (-137438953472..137438953471),
	physical-ARP-ECEF-Z-r15					INTEGER (-137438953472..137438953471),
	physical-ARP-unc-r15					AntennaReferencePointUnc-r15		OPTIONAL, -- Need ON
	...
}

-- ASN1STOP

Conditional presence
Explanation
NP
The field is optionally present, need ON, if the referenceStationIndicator has the value ′non-physical′; otherwise it is not present.

GNSS-RTK-ReferenceStationInfo field descriptions
referenceStationID
The Reference Station ID is determined by the RTK service provider.
referenceStationIndicator
This fields specifies type of reference station. Enumerated value physical indicates a real, physical reference station; value non-physical indicates a non-physical or computed reference station.
antenna-reference-point-ECEF-X
This field specifies the antenna reference point X-coordinate in the World Geodetic System 1984 (WGS 84) datum.
Scale factor 0.0001 m; range ±13,743,895.3471 m.
antenna-reference-point-ECEF-Y
This field specifies the antenna reference point Y-coordinate in the World Geodetic System 1984 (WGS 84) datum.
Scale factor 0.0001 m; range ±13,743,895.3471 m.
antenna-reference-point-ECEF-Z
This field specifies the antenna reference point Z-coordinate in the World Geodetic System 1984 (WGS 84) datum.
Scale factor 0.0001 m; range ±13,743,895.3471 m.
antennaHeight
This field specifies the height of the Antenna Reference Point above the marker used in the survey campaign.
Scale factor 0.0001 m; range 0–6.5535 m. 
antennaDescriptor
This field provides an ASCII descriptor of the reference station antenna using IGS naming convention [31]. The descriptor can be used to look up model specific phase center corrections of that antenna.
antennaSetUpID
This field, if present, indicates that the standard IGS Model is not valid (≠ 0 [30]). If this field is absent the standard IGS Model is valid (′0 = Use standard IGS Model′ [30]).
antenna-reference-point-unc
This field specifies the uncertainty of the ARP coordinates. uncertainty-X, uncertainty-Y, and uncertainty-Z correspond to the encoded high accuracy uncertainty of the X, Y, and Z-coordinate, respectively, as defined in TS 23.032 [15]. confidence-X, confidence-Y, and confidence-Z corresponds to confidence as defined in TS 23.032 [15].
physical-reference-station-info
This field provides the earth-centered, earth-fixed (ECEF) coordinates of the antenna reference point (ARP) for the real (or "physical") reference station used. This field may be used in case of the non-physical reference station approach to allow the target device to refer baseline vectors to a physical reference rather than to a non-physical reference without any connection to a physical point.
physicalReferenceStationID
This field specifies the station ID of a real reference station, when the referenceStationIndicator has the value ′non-physical′.
physical-ARP-ECEF-X
This field specifies the antenna reference point X-coordinate in the World Geodetic System 1984 (WGS 84) datum.
Scale factor 0.0001 m; range ±13,743,895.3471 m.
physical-ARP-ECEF-Y
This field specifies the antenna reference point Y-coordinate in the World Geodetic System 1984 (WGS 84) datum.
Scale factor 0.0001 m; range ±13,743,895.3471 m.
physical-ARP-ECEF-Z
This field specifies the antenna reference point Z-coordinate in the World Geodetic System 1984 (WGS 84) datum.
Scale factor 0.0001 m; range ±13,743,895.3471 m.
physical-ARP-unc
This field specifies the uncertainty of the ARP coordinates.

–	GNSS-RTK-CommonObservationInfo
The IE GNSS-RTK-CommonObservationInfo is used by the location server to provide common information applicable to the IE GNSS-RTK-Observations.
The parameters provided in IE GNSS-RTK-CommonObservationInfo are used as specified for message type 1071-1127 in [30].
-- ASN1START

GNSS-RTK-CommonObservationInfo-r15 ::= SEQUENCE {
	referenceStationID-r15				GNSS-ReferenceStationID-r15,
	clockSteeringIndicator-r15			INTEGER (0..3),
	externalClockIndicator-r15			INTEGER (0..3),
	smoothingIndicator-r15				BIT STRING (SIZE(1)),
	smoothingInterval-r15				BIT STRING (SIZE(3)),
	...
}

-- ASN1STOP

GNSS-RTK-CommonObservationInfo field descriptions
referenceStationID
This field specifies the Station ID for which the GNSS-RTK-Observations are provided.
clockSteeringIndicator
This field provides the clock steering indicator. The interpretation of the value is as follows:
	0 	clock steering is not applied
		In this case receiver clock must be kept in the range of ±1 ms (approximately ±300 km)
	1 	clock steering has been applied
		In this case receiver clock must be kept in the range of ±1 microsecond (approximately ±300 meters).
	2 	unknown clock steering status
	3 	reserved
externalClockIndicator
This field provides the external clock indicator. The interpretation of the value is as follows:
	0 	internal clock is used
	1 	external clock is used, clock status is "locked"
	2 	external clock is used, clock status is "not locked", which may indicate external clock failure and that the 				transmitted data may not be reliable.
	3 	unknown clock is used
smoothingIndicator
This field provides the GNSS Divergence-free Smoothing Indicator. The interpretation of the value is as follows:
	1	Divergence-free smoothing is used
	0 	Other type of smoothing is used
smoothingInterval
The GNSS Smoothing Interval is the integration period over which the pseudorange code phase measurements are averaged using carrier phase information. Divergence-free smoothing may be continuous over the entire period for which the satellite is visible. A value of zero indicates no smoothing is used.
See table "smoothingInterval value to interpretation of Smoothing Interval relation" below.

smoothingInterval value to interpretation of Smoothing Interval relation
Indicator
Smoothing Interval
000 (0)
No smoothing
001 (1)
< 30 s
010 (2)
30-60 s
011 (3)
1-2 min
100 (4)
2-4 min
101 (5)
4-8 min
110 (6)
>8 min
111 (7)
Unlimited smoothing interval

–	GNSS-RTK-AuxiliaryStationData
The IE GNSS-RTK-AuxiliaryStationData is used by the location server to provide the coordinates of the antenna reference point (ARP) of Auxiliary Reference Stations, relative to the coordinates provided in IE GNSS‑RTK‑ReferenceStationInfo. The reference station provided in IE GNSS-RTK-ReferenceStationInfo is the Master Reference Station. Therefore, one Master Reference Station with its associated Auxiliary Stations is used in a single Provide Assistance Data message.
The parameters provided in IE GNSS-RTK-AuxiliaryStationData are used as specified for message type 1014 in [30].
-- ASN1START

GNSS-RTK-AuxiliaryStationData-r15 ::= SEQUENCE {
	networkID-r15					GNSS-NetworkID-r15,
	subNetworkID-r15				GNSS-SubNetworkID-r15					OPTIONAL,	-- Need ON
	master-referenceStationID-r15	GNSS-ReferenceStationID-r15,
	auxiliaryStationList-r15		AuxiliaryStationList-r15,
	...
}

AuxiliaryStationList-r15 ::= SEQUENCE (SIZE (1..32)) OF AuxiliaryStationElement-r15

AuxiliaryStationElement-r15 ::= SEQUENCE {
	aux-referenceStationID-r15				GNSS-ReferenceStationID-r15,
	aux-master-delta-latitude-r15			INTEGER (-524288..524287),
	aux-master-delta-longitude-r15			INTEGER (-1048576..1048575),
	aux-master-delta-height-r15				INTEGER (-4194304..4194303),
	aux-ARP-unc-r15							Aux-ARP-Unc-r15					OPTIONAL,	-- Need ON
	...
}

Aux-ARP-Unc-r15 ::= SEQUENCE {
	horizontalUncertainty-r15				INTEGER (0..255),
	horizontalConfidence-r15				INTEGER (0..100),
	verticalUncertainty-r15					INTEGER (0..255)				OPTIONAL,	-- Need ON
	verticalConfidence-r15					INTEGER (0..100)				OPTIONAL,	-- Need ON
	...
}

-- ASN1STOP

GNSS-RTK-AuxiliaryStationData field descriptions
networkID
This field defines the network and the source of the particular set of reference stations and their observation information. The RTK service provider should ensure that the networkID is unique in the region serviced. The networkID indicates an area and its reference stations where the service providers will provide a homogenous solution with levelled integer ambiguities between its reference stations. In general, the area indicated by networkID will comprise one subnetwork with a unique subNetworkID. 
subNetworkID
This field identifies the subnetwork of a network identified by networkID. In general the area indicated by networkID will consist of one subnetwork. The subNetworkID indicates the actual solution number of integer ambiguity level. If one network has only one subnetwork, this indicates that an ambiguity level throughout the whole network is established.
master-referenceStationID
This field identifies the Master Reference Station.
aux-referenceStationID
This field identifies the Auxiliary Reference Station. 
aux-master-delta-latitude
This field provides the delta value in latitude of Antenna Reference Point of "Auxiliary Reference Station minus Master Reference Station" in geographical coordinates based on GRS80 ellipsoid parameters for the same ECEF system as used in IE GNSS‑RTK‑ReferenceStationInfo.
Scale factor 25×10-6 degrees; range ±13.1071 degrees.
aux-master-delta-longitude
This field provides the delta value in longitude of Antenna Reference Point of "Auxiliary Reference Station minus Master Reference Station" in geographical coordinates based on GRS80 ellipsoid parameters for the same ECEF system as used in IE GNSS‑RTK‑ReferenceStationInfo.
Scale factor 25×10-6 degrees; range ±26.2142 degrees.
aux-master-delta-height
This field provides the delta value in ellipsoidal height of Antenna Reference Point of "Auxiliary Reference Station minus Master Reference Station" in geographical coordinates based on GRS80 ellipsoid parameters for the same ECEF system as used in IE GNSS‑RTK‑ReferenceStationInfo.
Scale factor 1 milli-meter; range ±4194.303 m. 
aux-ARP-unc
This field specifies the uncertainty of the auxiliary station ARP coordinates and comprise the following fields:
-	horizontalUncertainty indicates the horizontal uncertainty of the ARP latitude/longitude. The ′horizontalUncertainty′ corresponds to the encoded high accuracy uncertainty as defined in TS 23.032 [15] and ′horizontalConfidence′ corresponds to confidence as defined in TS 23.032 [15].
-	verticalUncertainty indicates the vertical uncertainty of the ARP altitude. The 'verticalUncertainty' corresponds to the encoded high accuracy uncertainty as defined in TS 23.032 [15] and 'verticalConfidence' corresponds to confidence as defined in TS 23.032 [15].

–	GNSS-TimeModelList
The IE GNSS-TimeModelList is used by the location server to provide the GNSS‑GNSS system time offset between the GNSS system time indicated by IE GNSS‑ID in IE GNSS-GenericAssistDataElement to the GNSS system time indicated by IE gnss-TO-ID. Several GNSS-TimeModelElement IEs can be included with different gnss-TO-ID fields. The location server should provide a GNSS-TimeModelList for the same GNSS-ID as the gnss-TimeID in IE GNSS-SystemTime in GNSS-ReferenceTime assistance. If the location server does not provide a GNSS-TimeModelList for the same GNSS-ID as the gnss-TimeID in IE GNSS-SystemTime in GNSS-ReferenceTime assistance the target device assumes tA1 and tA2 are equal to zero.
-- ASN1START

GNSS-TimeModelList ::= SEQUENCE (SIZE (1..15)) OF GNSS-TimeModelElement

GNSS-TimeModelElement ::= SEQUENCE {
	gnss-TimeModelRefTime		INTEGER (0..65535),
	tA0							INTEGER (-67108864..67108863),
	tA1							INTEGER (-4096..4095)					OPTIONAL,	-- Need ON
	tA2							INTEGER (-64..63)						OPTIONAL,	-- Need ON
	gnss-TO-ID					INTEGER (1..15),
	weekNumber					INTEGER (0..8191)						OPTIONAL,	-- Need ON
	deltaT						INTEGER (-128..127)						OPTIONAL,	-- Need ON
	...
}

-- ASN1STOP

GNSS-TimeModelElement field descriptions
gnss-TimeModelRefTime
This field specifies the reference time of week for GNSS-TimeModelElement and it is given in GNSS specific system time.
Scale factor 24 seconds.
tA0
This field specifies the bias coefficient of the GNSS-TimeModelElement.
Scale factor 2-35 seconds.
tA1
This field specifies the drift coefficient of the GNSS-TimeModelElement.
 Scale factor of 2-51 seconds/second.
tA2
This field specifies the drift rate correction coefficient of the GNSS-TimeModelElement.
 Scale factor of 2-68 seconds/second2.
gnss-TO-ID
This field specifies the GNSS system time of the GNSS for which the GNSS-TimeModelElement is applicable. GNSS-TimeModelElement contains parameters to convert GNSS system time from the system indicated by GNSS‑ID to GNSS system time indicated by gnss-TO-ID. The conversion is defined in [4,5,6]. See table of gnss-TO-ID to Indication relation below. NOTE.
weekNumber
This field specifies the reference week of the GNSS-TimeModelElement given in GNSS specific system time. The location server should include this field, if tA1 or tA2 is included.
Scale factor 1 week.
deltaT
This field specifies the integer number of seconds of the GNSS-GNSS time offset provided in the GNSS-TimeModelElement.
Scale factor 1 second.

gnss-TO-ID to Indication relation
Value of gnss-TO-ID
Indication
1
GPS
2
Galileo
3
QZSS
4
GLONASS
5
BDS
6-15
reserved

NOTE:	The time relationship between the system time indicated by GNSS-ID and system time indicated by gnss‑TO-ID is given by the following equation:

tGNSS = tE - ( A0GGTO + A1GGTO (tE - tGGTO + 604800 (WN - WNGGTO)) + A2GGTO (tE - tGGTO + 
			604800 (WN - WNGGTO))2 )

where

tGNSS		is the system time of week for the GNSS indicated by gnss-TO-ID.
tE			is the system time of week for the GNSS indicated by GNSS-ID.
WN		is the week number of the GNSS system time indicated by GNSS-ID corresponding to the tE. 
tGGTO		is the system time of week for the time model data in the GNSS time indicated by GNSS-ID
			and given by the gnss‑TimeModelRefTime field.
WNGGTO	is the week number for the time model data in the GNSS time indicated by GNSS-ID
			corresponding to the tGGTO and given by the weekNumber field.
A0GGTO	is given by the tA0 field.
A1GGTO	is given by the tA1 field.
A2GGTO	is given by the tA2 field.

If the tA1 and tA2 are not included in the GNSS-TimeModelElement, the target device assumes A1GGTO and A2GGTO are equal to zero.
	The GNSS system times in the IE GNSS-TimeModelList and used in the equation above are all given in Time of Week (TOW) and Week Number (WN) in the indicted GNSS specific system time. For conversion between TOW/WN and Day Number/Time of Day (gnss-DayNumber/gnss-TimeOfDay) a GNSS week consists of 7 days since the origin of the particular GNSS System time (with the week number count starting at 0), and a day consists of 86400 seconds.
–	GNSS-DifferentialCorrections
The IE GNSS-DifferentialCorrections is used by the location server to provide differential GNSS corrections to the target device for a specific GNSS. Differential corrections can be provided for up to 3 signals per GNSS.
-- ASN1START

GNSS-DifferentialCorrections ::= SEQUENCE {
	dgnss-RefTime		INTEGER (0..3599),
	dgnss-SgnTypeList	DGNSS-SgnTypeList,
	...
}

DGNSS-SgnTypeList ::= SEQUENCE (SIZE (1..3)) OF DGNSS-SgnTypeElement

DGNSS-SgnTypeElement ::= SEQUENCE {
	gnss-SignalID		GNSS-SignalID,
	gnss-StatusHealth	INTEGER (0..7),
	dgnss-SatList		DGNSS-SatList,
	...
}

DGNSS-SatList ::= SEQUENCE (SIZE (1..64)) OF DGNSS-CorrectionsElement

DGNSS-CorrectionsElement ::= SEQUENCE {
	svID				SV-ID,
	iod				BIT STRING (SIZE(11)),
	udre				INTEGER (0..3),		
	pseudoRangeCor		INTEGER (-2047..2047),
	rangeRateCor		INTEGER (-127..127),
	udreGrowthRate		INTEGER (0..7)			OPTIONAL,	-- Need ON
	udreValidityTime	INTEGER (0..7)			OPTIONAL,	-- Need ON	
	...
}

-- ASN1STOP

GNSS-DifferentialCorrections field descriptions
dgnss-RefTime
This field specifies the time for which the DGNSS corrections are valid, modulo 1 hour. dgnss-RefTime is given in GNSS specific system time.
Scale factor 1‑second.
dgnss-SgnTypeList
This list includes differential correction data for different GNSS signal types, identified by GNSS-SignalID.
gnss-StatusHealth
This field specifies the status of the differential corrections. The values of this field and their respective meanings are defined as in table gnss-StatusHealth Value to Indication relation below.
The first six values in this field indicate valid differential corrections. When using the values described below, the "UDRE Scale Factor" value is applied to the UDRE values contained in the element. The purpose is to indicate an estimate in the amount of error in the corrections.
The value "110" indicates that the source of the differential corrections (e.g., reference station or external DGNSS network) is currently not being monitored. The value "111" indicates that the corrections provided by the source are invalid, as judged by the source. 
dgnss-SatList
This list includes differential correction data for different GNSS satellites, identified by SV-ID.
iod
This field specifies the Issue of Data field which contains the identity for the GNSS-NavigationModel.
udre
This field provides an estimate of the uncertainty (1-) in the corrections for the particular satellite. The value in this field shall be multiplied by the UDRE Scale Factor in the gnss-StatusHealth field to determine the final UDRE estimate for the particular satellite. The meanings of the values for this field are shown in the table udre Value to Indication relation below. 
pseudoRangeCor
This field specifies the correction to the pseudorange for the particular satellite at dgnss-RefTime, t0. The value of this field is given in meters and the scale factor is 0.32 meters in the range of ±655.04 meters. The method of calculating this field is described in [11].
If the location server has received a request for GNSS assistance data from a target device which included a request for the GNSS Navigation Model and DGNSS, the location server shall determine, for each satellite, if the navigation model stored by the target device is still suitable for use with DGNSS corrections and if so and if DGNSS corrections are supported the location server should send DGNSS corrections without including the GNSS Navigation Model.
The iod value sent for a satellite shall always be the IOD value that corresponds to the navigation model for which the pseudo-range corrections are applicable.
The target device shall only use the pseudoRangeCor value when the IOD value received matches its available navigation model.
Pseudo-range corrections are provided with respect to GNSS specific geodetic datum (e.g., PZ-90.02 if GNSS‑ID indicates GLONASS).
Scale factor 0.32 meters.
rangeRateCor
This field specifies the rate-of-change of the pseudorange correction for the particular satellite, using the satellite ephemeris and clock corrections identified by the iod field. The value of this field is given in meters per second and the resolution is 0.032 meters/sec in the range of ±4.064 meters/sec. For some time t1 > t0, the corrections for iod are estimated by
				PRC(t1, IOD) = PRC(t0, IOD) + RRC(t0,IOD)(t1 - t0),
and the target device uses this to correct the pseudorange it measures at t1, PRm(t1,IOD), by
				PR(t1, IOD) = PRm(t1, IOD) + PRC(t1, IOD) .
The location server shall always send the RRC value that corresponds to the PRC value that it sends. The target device shall only use the RRC value when the iod value received matches its available navigation model.
Scale factor 0.032 meters/second.
udreGrowthRate
This field provides an estimate of the growth rate of uncertainty (1-) in the corrections for the particular satellite identified by SV-ID. The estimated UDRE at time value specified in the udreValidityTime t1 is calculated as follows:
				UDRE(t0+t1) = UDRE(t0)  udreGrowthRate ,
where t0 is the DGNSS Reference Time dgnss-RefTime for which the corrections are valid, t1 is the udreValidityTime
field, UDRE(t0) is the value of the udre field, and udreGrowthRate field is the factor as shown in the table Value of udreGrowthRate to Indication relation below.
udreValidityTime
This field specifies the time when the udreGrowthRate field applies and is included if udreGrowthRate is included. The meaning of the values for this field is as shown in the table Value of udreValidityTime to Indication relation below.
gnss-StatusHealth Value to Indication relation
gnss-StatusHealth Value
Indication
000
UDRE Scale Factor = 1.0
001
UDRE Scale Factor = 0.75
010
UDRE Scale Factor = 0.5
011
UDRE Scale Factor = 0.3
100
UDRE Scale Factor = 0.2
101
UDRE Scale Factor = 0.1
110
Reference Station Transmission Not Monitored
111
Data is invalid - disregard

udre Value to Indication relation
udre Value
Indication
00
UDRE  1.0 m
01
1.0 m < UDRE  4.0 m
10
4.0 m < UDRE  8.0 m
11
8.0 m < UDRE

Value of udreGrowthRate to Indication relation
Value of udreGrowthRate
Indication
000
1.5
001
2
010
4
011
6
100
8
101
10
110
12
111
16

Value of udreValidityTime to Indication relation
Value of udreValidityTime
Indication
[seconds]
000
20
001
40
010
80
011
160
100
320
101
640
110
1280
111
2560

–	GNSS-NavigationModel
The IE GNSS-NavigationModel is used by the location server to provide precise navigation data to the GNSS capable target device. In response to a request from a target device for GNSS Assistance Data, the location server shall determine whether to send the navigation model for a particular satellite to a target device based upon factors like the T-Toe limit specified by the target device and any request from the target device for DGNSS (see also GNSS-DifferentialCorrections). GNSS Orbit Model can be given in Keplerian parameters or as state vector in Earth-Centered Earth-Fixed coordinates, dependent on the GNSS-ID and the target device capabilities. The meaning of these parameters is defined in relevant ICDs of the particular GNSS and GNSS specific interpretations apply. For example, GPS and QZSS use the same model parameters but some parameters have a different interpretation [7].
-- ASN1START

GNSS-NavigationModel ::= SEQUENCE {
	nonBroadcastIndFlag	INTEGER (0..1),
	gnss-SatelliteList		GNSS-NavModelSatelliteList,
	...
}

GNSS-NavModelSatelliteList ::= SEQUENCE (SIZE(1..64)) OF GNSS-NavModelSatelliteElement

GNSS-NavModelSatelliteElement ::= SEQUENCE {
	svID				SV-ID,
	svHealth			BIT STRING (SIZE(8)),	
	iod				BIT STRING (SIZE(11)),	
	gnss-ClockModel		GNSS-ClockModel,
	gnss-OrbitModel		GNSS-OrbitModel,
	...,
	[[	svHealthExt-v1240 BIT STRING (SIZE(4))			OPTIONAL		-- Need ON
	]]
}

GNSS-ClockModel ::= CHOICE {
	standardClockModelList	StandardClockModelList,			-- Model-1
	nav-ClockModel			NAV-ClockModel,					-- Model-2
	cnav-ClockModel			CNAV-ClockModel,				-- Model-3
	glonass-ClockModel		GLONASS-ClockModel,				-- Model-4
	sbas-ClockModel			SBAS-ClockModel,				-- Model-5
	...,
	bds-ClockModel-r12		BDS-ClockModel-r12				-- Model-6
}

GNSS-OrbitModel ::= CHOICE {
	keplerianSet			NavModelKeplerianSet,			-- Model-1
	nav-KeplerianSet		NavModelNAV-KeplerianSet,		-- Model-2
	cnav-KeplerianSet		NavModelCNAV-KeplerianSet,		-- Model-3
	glonass-ECEF			NavModel-GLONASS-ECEF,			-- Model-4
	sbas-ECEF				NavModel-SBAS-ECEF,				-- Model-5
	...,
	bds-KeplerianSet-r12	NavModel-BDS-KeplerianSet-r12	-- Model-6
}

-- ASN1STOP

GNSS-NavigationModel field descriptions
nonBroadcastIndFlag
This field indicates if the GNSS-NavigationModel elements are not derived from satellite broadcast data or are given in a format not native to the GNSS. A value of 0 means the GNSS-NavigationModel data elements correspond to GNSS satellite broadcasted data; a value of 1 means the GNSS-NavigationModel data elements are not derived from satellite broadcast. 
gnss-SatelliteList
This list provides ephemeris and clock corrections for GNSS satellites indicated by SV‑ID.
svHealth
This field specifies the satellite's current health. The health values are GNSS system specific. The interpretation of svHealth depends on the GNSS‑ID and is as shown in table GNSS to svHealth Bit String(8) relation below.
iod
This field specifies the Issue of Data and contains the identity for GNSS Navigation Model.
In case of broadcasted GPS NAV ephemeris, the iod contains the IODC as described in [4].
In case of broadcasted Modernized GPS ephemeris, the iod contains the 11-bit parameter toe as defined in [4, Table 30-I] [6, Table 3.5-1].
In case of broadcasted SBAS ephemeris, the iod contains the 8 bits Issue of Data as defined in [10] Message Type 9.
In case of broadcasted QZSS QZS-L1 ephemeris, the iod contains the IODC as described in [7].
In case of broadcasted QZSS QZS-L1C/L2C/L5 ephemeris, the iod contains the 11-bit parameter toe as defined in [7].
In case of broadcasted GLONASS ephemeris, the iod contains the parameter tb as defined in [9].
In the case of broadcasted Galileo ephemeris, the iod contains the IOD index as described in [8].
In the case of broadcasted BDS ephemeris, the iod contains 11 MSB bits of the toe as defined in [23].
The interpretation of iod depends on the GNSS‑ID and is as shown in table GNSS to iod Bit String(11) relation below.
svHealthExt
This field specifies the satellite's additional current health. The health values are GNSS system specific. The interpretation of svHealthExt depends on the GNSS‑ID and is as shown in table GNSS to svHealthExt Bit String(4) relation below.

GNSS to svHealth Bit String(8) relation
GNSS
svHealth Bit String(8)

Bit 1
(MSB)
Bit 2
Bit 3
Bit 4
Bit 5
Bit 6 
Bit 7
Bit 8 (LSB)
GPS L1/CA(1)
SV Health [4]
'0'
(reserved)
'0'
(reserved)
Modernized GPS(2)
L1C Health
[6]
L1 Health [4,5]
L2 Health
[4,5]
L5 Health [4,5]
'0'
(reserved)
'0'
(reserved)
'0'
(reserved)
'0'
(reserved)
SBAS(3)
Ranging
On (0),Off(1) [10]
Corrections On(0),Off(1) [10]
Integrity
On(0),Off(1)[10]
'0'
(reserved)
'0'
(reserved)
'0'
(reserved)
'0'
(reserved)
'0'
(reserved)
QZSS(4)
QZS-L1
SV Health [7]
'0'
(reserved)
'0'
(reserved)
QZSS(5)
QZS‑
L1C/L2C/L5
L1C Health
[7]
L1 Health
[7]
L2 Health
[7]
L5 Health
[7]
'0'
(reserved)
'0'
(reserved)
'0'
(reserved)
'0'
(reserved)
GLONASS
Bn (MSB)
[9, page 30]
FT [9, Table 4.4]
'0'
(reserved)
'0'
(reserved)
'0'
(reserved)
Galileo
[8, clause 5.1.9.3]
E5a Data Validity Status
E5b Data Validity Status
E1-B Data Validity Status
E5a Signal Health Status
'0'
(reserved)
'0'
(reserved)
'0'
(reserved)
BDS
[23]
B1I Health (SatH1) [23]
'0'
(reserved)
'0'
(reserved)
'0'
(reserved)
'0'
(reserved)
'0'
(reserved)
'0'
(reserved)
'0'
(reserved)
Note 1:	If GNSS‑ID indicates 'gps', and GNSS Orbit Model-2 is included, this interpretation of svHealth applies.
Note 2:	If GNSS‑ID indicates 'gps', and GNSS Orbit Model-3 is included, this interpretation of svHealth applies.
If a certain signal is not supported on the satellite indicated by SV‑ID, the corresponding health bit shall be set to '1' (i.e., signal can not be used).
Note 3:	svHealth in case of GNSS‑ID indicates 'sbas' includes the 5 LSBs of the Health included in GEO Almanac Message Parameters (Type 17) [10].
Note 4:	If GNSS‑ID indicates 'qzss', and GNSS Orbit Model-2 is included, this interpretation of svHealth applies.
Note 5:	If GNSS‑ID indicates 'qzss', and GNSS Orbit Model-3 is included, this interpretation of svHealth applies.

GNSS to iod Bit String(11) relation
GNSS
iod Bit String(11)

Bit 1
(MSB)
Bit 2
Bit 3
Bit 4
Bit 5
Bit 6
Bit 7
Bit 8
Bit 9
Bit 10
Bit 11
(LSB)
GPS L1/CA
'0'
Issue of Data, Clock [4]
Modernized GPS
toe (seconds, scale factor 300, range 0 – 604500) [4,5,6]
SBAS
'0'
'0'
'0'
Issue of Data ([10], Message Type 9)
QZSS QZS-L1
'0'
Issue of Data, Clock [7]
QZSS
QZS-L1C/L2C/L5
toe (seconds, scale factor 300, range 0 – 604500) [7]
GLONASS
'0'
'0'
'0'
'0'
tb (minutes, scale factor 15) [9]
Galileo
'0'
IODnav [8]
BDS
11 MSB bits of toe (seconds, scale factor 512, range 0 – 604672) [23]

GNSS to svHealthExt Bit String(4) relation
GNSS
svHealthExt Bit String(4)

Bit 1
(MSB)
Bit 2
Bit 3
Bit 4
(LSB)
Galileo [8, clause 5.1.9.3]
E5b Signal Health Status
E1-B Signal Health Status

–	StandardClockModelList
-- ASN1START

StandardClockModelList ::= SEQUENCE (SIZE(1..2)) OF StandardClockModelElement

StandardClockModelElement ::= SEQUENCE {
	stanClockToc			INTEGER (0..16383),
	stanClockAF2			INTEGER (-32..31),
	stanClockAF1			INTEGER (-1048576..1048575),
	stanClockAF0			INTEGER (-1073741824..1073741823),
	stanClockTgd			INTEGER (-512..511)				OPTIONAL,	-- Need ON
	sisa					INTEGER (0..255),
	stanModelID				INTEGER (0..1)					OPTIONAL,	-- Need ON
	...
}

-- ASN1STOP

StandardClockModelList field descriptions
standardClockModelList
gnss-ClockModel Model-1 contains one or two clock model elements. If included, clock Model-1 shall be included once or twice depending on the target device capability.
If the target device is supporting multiple Galileo signals, the location server shall include both F/Nav and I/Nav clock models in gnss-ClockModel if the location server assumes the target device to perform location information calculation using multiple signals.
stanClockToc
Parameter toc defined in [8].
Scale factor 60 seconds.
stanClockAF2
Parameter af2 defined in [8].
Scale factor 2-59 seconds/second2.
stanClockAF1
Parameter af1 defined in [8].
Scale factor 2-46 seconds/second.
stanClockAF0
Parameter af0 defined in [8].
Scale factor 2-34 seconds.
stanClockTgd
Parameter TGD, Broadcast Group Delay (BGD), defined in [8].
Scale factor 2-32 seconds.
This field is required if the target device supports only single frequency Galileo signal.
sisa
Signal-In-Space Accuracy (SISA), defined in [8] clause 5.1.11.
stanModelID
This field specifies the identity of the clock model according to the table Value of stanModelID to Identity relation below. This field is required if the location server includes both F/Nav and I/Nav Galileo clock models in gnss-ClockModel.

Value of stanModelID to Identity relation
Value of stanModelID
Identity
0
I/Nav (E1,E5b)
1
F/Nav (E1,E5a)

–	NAV-ClockModel
-- ASN1START

NAV-ClockModel ::= SEQUENCE {
	navToc			INTEGER (0..37799),
	navaf2			INTEGER (-128..127),
	navaf1			INTEGER (-32768..32767),
	navaf0			INTEGER (-2097152..2097151),
	navTgd			INTEGER (-128..127),
	...
}

-- ASN1STOP

NAV-ClockModel field descriptions
navToc
Parameter toc, time of clock (seconds) [4,7]
Scale factor 24 seconds.
navaf2
Parameter af2, clock correction polynomial coefficient (sec/sec2) [4,7].
Scale factor 2-55 seconds/second2.
navaf1
Parameter af1, clock correction polynomial coefficient (sec/sec) [4,7].
Scale factor 2-43 seconds/second.
navaf0
Parameter af0, clock correction polynomial coefficient (seconds) [4,7].
Scale factor 2-31 seconds.
navTgd
Parameter TGD, group delay (seconds) [4,7].
Scale factor 2-31 seconds.

–	CNAV-ClockModel
-- ASN1START

CNAV-ClockModel ::= SEQUENCE {
	cnavToc			INTEGER (0..2015),
	cnavTop			INTEGER (0..2015),
	cnavURA0		INTEGER (-16..15),
	cnavURA1		INTEGER (0..7),
	cnavURA2		INTEGER (0..7),
	cnavAf2			INTEGER (-512..511),
	cnavAf1			INTEGER (-524288..524287),
	cnavAf0			INTEGER (-33554432..33554431),
	cnavTgd			INTEGER (-4096..4095),
	cnavISCl1cp		INTEGER (-4096..4095)			OPTIONAL,	-- Need ON
	cnavISCl1cd		INTEGER (-4096..4095)			OPTIONAL,	-- Need ON
	cnavISCl1ca		INTEGER (-4096..4095)			OPTIONAL,	-- Need ON
	cnavISCl2c		INTEGER (-4096..4095)			OPTIONAL,	-- Need ON
	cnavISCl5i5		INTEGER (-4096..4095)			OPTIONAL,	-- Need ON
	cnavISCl5q5		INTEGER (-4096..4095)			OPTIONAL,	-- Need ON
	...
}

-- ASN1STOP

CNAV-ClockModel field descriptions
cnavToc
Parameter toc, clock data reference time of week (seconds) [4,5,6,7].
Scale factor 300 seconds.
cnavTop
Parameter top, clock data predict time of week (seconds) [4,5,6,7].
Scale factor 300 seconds
cnavURA0
Parameter URAoc Index, SV clock accuracy index (dimensionless) [4,5,6,7].
cnavURA1
Parameter URAoc1 Index, SV clock accuracy change index (dimensionless) [4,5,6,7].
cnavURA2
Parameter URAoc2 Index, SV clock accuracy change rate index (dimensionless) [4,5,6,7].
cnavAf2
Parameter af2-n, SV clock drift rate correction coefficient (sec/sec2) [4,5,6,7].
Scale factor 2-60 seconds/second2.
cnavAf1
Parameter af1-n, SV clock drift correction coefficient (sec/sec) [4,5,6,7].
Scale factor 2-48 seconds/second.
cnavAf0
Parameter af0-n, SV clock bias correction coefficient (seconds) [4,5,6,7].
Scale factor 2-35 seconds.
cnavTgd
Parameter TGD, Group delay correction (seconds) [4,5,6,7].
Scale factor 2-35 seconds.
cnavISCl1cp
Parameter ISCL1CP, inter signal group delay correction (seconds) [6,7].
Scale factor 2-35 seconds.
The location server should include this field if the target device is GPS capable and supports the L1C signal.
cnavISCl1cd
Parameter ISCL1CD, inter signal group delay correction (seconds) [6,7].
Scale factor 2-35 seconds.
The location server should include this field if the target device is GPS capable and supports the L1C signal.
cnavISCl1ca
Parameter ISCL1C/A, inter signal group delay correction (seconds) [4,5,7].
Scale factor 2-35 seconds.
The location server should include this field if the target device is GPS capable and supports the L1CA signal.
cnavISCl2c
Parameter ISCL2C, inter signal group delay correction (seconds) [4,5,7].
Scale factor 2-35 seconds.
The location server should include this field if the target device is GPS capable and supports the L2C signal.
cnavISCl5i5
Parameter ISCL5I5, inter signal group delay correction (seconds) [5,7].
Scale factor 2-35 seconds.
The location server should include this field if the target device is GPS capable and supports the L5 signal.
cnavISCl5q5
Parameter ISCL5Q5, inter signal group delay correction (seconds) [5,7].
Scale factor 2-35 seconds.
The location server should include this field if the target device is GPS capable and supports the L5 signal.

–	GLONASS-ClockModel
-- ASN1START

GLONASS-ClockModel ::= SEQUENCE {
	gloTau			INTEGER (-2097152..2097151),
	gloGamma		INTEGER (-1024..1023),
	gloDeltaTau		INTEGER (-16..15)				OPTIONAL,	-- Need ON
	...
}

-- ASN1STOP

GLONASS-ClockModel field descriptions
gloTau
Parameter n(tb), satellite clock offset (seconds) [9].
Scale factor 2-30 seconds.
gloGamma
Parameter n(tb), relative frequency offset from nominal value (dimensionless) [9].
Scale factor 2-40.
gloDeltaTau
Parameter n, time difference between transmission in G2 and G1 (seconds) [9].
Scale factor 2-30 seconds.
The location server should include this parameter if the target device is dual frequency GLONASS receiver capable.

–	SBAS-ClockModel
-- ASN1START

SBAS-ClockModel ::= SEQUENCE {
	sbasTo			INTEGER (0..5399),
	sbasAgfo		INTEGER (-2048..2047),
	sbasAgf1		INTEGER (-128..127),
	...
}

-- ASN1STOP

SBAS-ClockModel field descriptions
sbasTo
Parameter t0 [10].
Scale factor 16 seconds.
sbasAgfo
Parameter aGfo [10].
Scale factor 2-31 seconds.
sbasAgf1
Parameter aGf1 [10].
Scale factor 2-40 seconds/second.

–	BDS-ClockModel
-- ASN1START

BDS-ClockModel-r12 ::= SEQUENCE {
	bdsAODC-r12			INTEGER (0..31),
	bdsToc-r12			INTEGER (0..131071),
	bdsA0-r12			INTEGER (-8388608..8388607),
	bdsA1-r12			INTEGER (-2097152..2097151),
	bdsA2-r12			INTEGER (-1024..1023),
	bdsTgd1-r12			INTEGER (-512..511),
	...
}

-- ASN1STOP

BDS-ClockModel field descriptions
bdsAODC
Parameter Age of Data, Clock (AODC), see [23], Table 5-6.
bdsToc
Parameter Toc, Time of clock (seconds) [23].
Scale factor 23 seconds.
bdsA0
Parameter a0, Clock correction polynomial coefficient (seconds) [23].
Scale factor 2-33 seconds.
bdsA1
Parameter a1, Clock correction polynomial coefficient (sec/sec) [23].
Scale factor 2-50 sec/sec.
bdsA2
Parameter a2, Clock correction polynomial coefficient (sec/sec2) [23].
Scale factor 2-66 sec/sec2.
bdsTgd1
Parameter Equipment group delay differential TGD1 [23].
Scale factor is 0.1 nanosecond.

–	NavModelKeplerianSet
-- ASN1START

NavModelKeplerianSet ::= SEQUENCE {
	keplerToe		INTEGER (0 .. 16383),
	keplerW			INTEGER (-2147483648..2147483647),
	keplerDeltaN	INTEGER (-32768..32767),
	keplerM0		INTEGER (-2147483648..2147483647),
	keplerOmegaDot	INTEGER (-8388608.. 8388607),
	keplerE		INTEGER (0..4294967295),
	keplerIDot		INTEGER (-8192..8191),
	keplerAPowerHalf INTEGER (0.. 4294967295),
	keplerI0		INTEGER (-2147483648..2147483647),
	keplerOmega0	INTEGER (-2147483648..2147483647),
	keplerCrs		INTEGER (-32768..32767),
	keplerCis		INTEGER (-32768..32767),
	keplerCus		INTEGER (-32768..32767),
	keplerCrc		INTEGER (-32768..32767),
	keplerCic		INTEGER (-32768..32767),
	keplerCuc		INTEGER (-32768..32767),
	...
}

-- ASN1STOP

NavModelKeplerianSet field descriptions
keplerToe
Parameter toe, time-of-ephemeris in seconds [8].
Scale factor 60 seconds.
keplerW
Parameter , argument of perigee (semi-circles) [8].
Scale factor 2-31 semi-circles.
keplerDeltaN
Parameter n, mean motion difference from computed value (semi-circles/sec) [8].
Scale factor 2-43 semi-circles/second.
keplerM0	
Parameter M0, mean anomaly at reference time (semi-circles) [8].
Scale factor 2-31 semi-circles.
keplerOmegaDot
Parameter OMEGAdot, rate of change of right ascension (semi-circles/sec) [8].
Scale factor 2-43 semi-circles/second.
keplerE
Parameter e, eccentricity [8].
Scale factor 2-33.
KeplerIDot
Parameter Idot, rate of change of inclination angle (semi-circles/sec) [8].
Scale factor 2-43 semi-circles/second.
keplerAPowerHalf
Parameter sqrtA, square root of semi-major Axis in (meters) ½ [8].
Scale factor 2-19 meters ½.
keplerI0
Parameter i0, inclination angle at reference time (semi-circles) [8].
Scale factor 2-31 semi-circles.
keplerOmega0
Parameter OMEGA0, longitude of ascending node of orbit plane at weekly epoch (semi-circles) [8].
Scale factor 2-31 semi-circles.
keplerCrs
Parameter Crs, amplitude of the sine harmonic correction term to the orbit radius (meters) [8].
Scale factor 2-5 meters.
keplerCis
Parameter Cis, amplitude of the sine harmonic correction term to the angle of inclination (radians) [8].
Scale factor 2-29 radians.
keplerCus
Parameter Cus, amplitude of the sine harmonic correction term to the argument of latitude (radians) [8].
Scale factor 2-29 radians.
keplerCrc
Parameter Crc, amplitude of the cosine harmonic correction term to the orbit radius (meters) [8].
Scale factor 2-5 meters.
keplerCic
Parameter Cic, amplitude of the cosine harmonic correction term to the angle of inclination (radians) [8].
Scale factor 2-29 radians.
keplerCuc
Parameter Cuc, amplitude of the cosine harmonic correction term to the argument of latitude (radians) [8].
Scale factor 2-29 radians.

–	NavModelNAV-KeplerianSet
-- ASN1START

NavModelNAV-KeplerianSet ::= SEQUENCE {
	navURA			INTEGER (0..15),
	navFitFlag		INTEGER (0..1),
	navToe			INTEGER (0..37799),
	navOmega		INTEGER (-2147483648..2147483647),
	navDeltaN		INTEGER (-32768..32767),
	navM0			INTEGER (-2147483648..2147483647),
	navOmegaADot	INTEGER (-8388608..8388607),
	navE			INTEGER (0..4294967295),
	navIDot			INTEGER (-8192..8191),
	navAPowerHalf	INTEGER (0..4294967295),
	navI0			INTEGER (-2147483648..2147483647),
	navOmegaA0		INTEGER (-2147483648..2147483647),
	navCrs			INTEGER (-32768..32767),
	navCis			INTEGER (-32768..32767),
	navCus			INTEGER (-32768..32767),
	navCrc			INTEGER (-32768..32767),
	navCic			INTEGER (-32768..32767),
	navCuc			INTEGER (-32768..32767),
	addNAVparam		SEQUENCE {
		ephemCodeOnL2	INTEGER (0..3),
		ephemL2Pflag	INTEGER (0..1),
		ephemSF1Rsvd	SEQUENCE {
			reserved1		INTEGER (0..8388607),	-- 23-bit field
			reserved2		INTEGER (0..16777215),	-- 24-bit field
			reserved3		INTEGER (0..16777215),	-- 24-bit field
			reserved4		INTEGER (0..65535)		-- 16-bit field
		},
		ephemAODA		INTEGER (0..31)
	}	OPTIONAL,	-- Need ON
	...
}

-- ASN1STOP

NavModelNAV-KeplerianSet field descriptions
navURA
Parameter URA Index, SV accuracy (dimensionless) [4,7].
navFitFlag
Parameter Fit Interval Flag, fit interval indication (dimensionless) [4,7]
navToe
Parameter toe, time of ephemeris (seconds) [4,7].
Scale factor 24 seconds.
navOmega
Parameter , argument of perigee (semi-circles) [4,7].
Scale factor 2-31 semi-circles.
navDeltaN
Parameter n, mean motion difference from computed value (semi-circles/sec) [4,7].
Scale factor 2-43 semi-circles/second.
navM0
Parameter M0, mean anomaly at reference time (semi-circles) [4,7].
Scale factor 2-31 semi-circles.
navOmegaADot
Parameter , rate of right ascension (semi-circles/sec) [4,7].
Scale factor 2-43 semi-circles/second.
navE
Parameter e, eccentricity (dimensionless) [4,7].
Scale factor 2-33.
navIDot
Parameter IDOT, rate of inclination angle (semi-circles/sec) [4,7].
Scale factor 2-43 semi-circles/second.
navAPowerHalf
Parameter , square root of semi-major axis (meters1/2) [4,7].
Scale factor 2-19 meters ½.
navI0
Parameter i0, inclination angle at reference time (semi-circles) [4,7].
Scale factor 2-31 semi-circles.
navOmegaA0
Parameter 0, longitude of ascending node of orbit plane at weekly epoch (semi-circles) [4,7].
Scale factor 2-31 semi-circles.
navCrs
Parameter Crs, amplitude of sine harmonic correction term to the orbit radius (meters) [4,7].
Scale factor 2-5 meters.
navCis
Parameter Cis, amplitude of sine harmonic correction term to the angle of inclination (radians) [4,7].
Scale factor 2-29 radians.
navCus
Parameter Cus, amplitude of sine harmonic correction term to the argument of latitude (radians) [4,7].
Scale factor 2-29 radians.
navCrc
Parameter Crc, amplitude of cosine harmonic correction term to the orbit radius (meters) [4,7].
Scale factor 2-5 meters.
navCic
Parameter Cic, amplitude of cosine harmonic correction term to the angle of inclination (radians) [4,7].
Scale factor 2-29 radians.
navCuc
Parameter Cuc, amplitude of cosine harmonic correction term to the argument of latitude (radians) [4,7].
Scale factor 2-29 radians.
addNAVparam
These fields include data and reserved bits in the GPS NAV message [4,14].
These additional navigation parameters, if provided by the location server, allow the target device to perform data wipe-off similar to what is done by the target device with the GNSS-DataBitAssistance.

–	NavModelCNAV-KeplerianSet
-- ASN1START

NavModelCNAV-KeplerianSet ::= SEQUENCE {
	cnavTop				INTEGER (0..2015),
	cnavURAindex		INTEGER (-16..15),
	cnavDeltaA			INTEGER (-33554432..33554431),
	cnavAdot			INTEGER (-16777216..16777215),
	cnavDeltaNo			INTEGER (-65536..65535),
	cnavDeltaNoDot		INTEGER (-4194304..4194303),
	cnavMo				INTEGER (-4294967296..4294967295),
	cnavE				INTEGER (0..8589934591),
	cnavOmega			INTEGER (-4294967296..4294967295),
	cnavOMEGA0			INTEGER (-4294967296..4294967295),
	cnavDeltaOmegaDot	INTEGER (-65536..65535),
	cnavIo				INTEGER (-4294967296..4294967295),
	cnavIoDot			INTEGER (-16384..16383),
	cnavCis				INTEGER (-32768..32767),
	cnavCic				INTEGER (-32768..32767),
	cnavCrs				INTEGER (-8388608..8388607),
	cnavCrc				INTEGER (-8388608..8388607),
	cnavCus				INTEGER (-1048576..1048575),
	cnavCuc				INTEGER (-1048576..1048575),
	...
}

-- ASN1STOP

NavModelCNAV-KeplerianSet field descriptions
cnavTop
Parameter top, data predict time of week (seconds) [4,5,6,7].
Scale factor 300 seconds.
cnavURAindex
Parameter URAoe Index, SV accuracy (dimensionless) [4,5,6,7].
cnavDeltaA
Parameter A, semi-major axis difference at reference time (meters) [4,5,6,7].
Scale factor 2-9 meters.
cnavAdot
Parameter , change rate in semi-major axis (meters/sec) [4,5,6,7].
Scale factor 2-21 meters/sec.
cnavDeltaNo
Parameter n0, mean motion difference from computed value at reference time (semi-circles/sec) [4,5,6,7].
Scale factor 2-44 semi-circles/second.
cnavDeltaNoDot
Parameter , rate of mean motion difference from computed value (semi-circles/sec2) [4,5,6,7].
Scale factor 2-57 semi-circles/second2.
cnavMo
Parameter M0-n, mean anomaly at reference time (semi-circles) [4,5,6,7].
Scale factor 2-32 semi-circles.
cnavE
Parameter en, eccentricity (dimensionless) [4,5,6,7].
Scale factor 2-34.
cnavOmega
Parameter n, argument of perigee (semi-circles) [4,5,6,7].
Scale factor 2-32 semi-circles.
cnavOMEGA0
Parameter 0-n, reference right ascension angle (semi-circles) [4,5,6,7].
Scale factor 2-32 semi-circles.
cnavDeltaOmegaDot
Parameter , rate of right ascension difference (semi-circles/sec) [4,5,6,7].
Scale factor 2-44 semi-circles/second.
cnavIo
Parameter io-n, inclination angle at reference time (semi-circles) [4,5,6,7].
Scale factor 2-32 semi-circles.
cnavIoDot
Parameter I0-n-DOT, rate of inclination angle (semi-circles/sec) [4,5,6,7].
Scale factor 2-44 semi-circles/second.
cnavCis
Parameter Cis-n, amplitude of sine harmonic correction term to the angle of inclination (radians) [4,5,6,7].
Scale factor 2-30 radians.
cnavCic
Parameter Cic-n, amplitude of cosine harmonic correction term to the angle of inclination (radians) [4,5,6,7].
Scale factor 2-30 radians.
cnavCrs
Parameter Crs-n, amplitude of sine harmonic correction term to the orbit radius (meters) [4,5,6,7].
Scale factor 2-8 meters.
cnavCrc
Parameter Crc-n, amplitude of cosine harmonic correction term to the orbit radius (meters) [4,5,6,7].
Scale factor 2-8 meters.
cnavCus	
Parameter Cus-n, amplitude of the sine harmonic correction term to the argument of latitude (radians) [4,5,6,7].
Scale factor 2-30 radians.
cnavCuc
Parameter Cuc-n, amplitude of cosine harmonic correction term to the argument of latitude (radians) [4,5,6,7].
Scale factor 2-30 radians.

–	NavModel-GLONASS-ECEF
-- ASN1START

NavModel-GLONASS-ECEF ::= SEQUENCE {
	gloEn				INTEGER (0..31),
	gloP1				BIT STRING (SIZE(2)),
	gloP2				BOOLEAN,
	gloM				INTEGER (0..3),
	gloX				INTEGER (-67108864..67108863),
	gloXdot				INTEGER (-8388608..8388607),
	gloXdotdot			INTEGER (-16..15),
	gloY				INTEGER (-67108864..67108863),
	gloYdot				INTEGER (-8388608..8388607),
	gloYdotdot			INTEGER (-16..15),
	gloZ				INTEGER (-67108864..67108863),
	gloZdot				INTEGER (-8388608..8388607),
	gloZdotdot			INTEGER (-16..15),
	...
}

-- ASN1STOP

NavModel-GLONASS-ECEF field descriptions
gloEn
Parameter En, age of data (days) [9].
Scale factor 1 days.
gloP1
Parameter P1, time interval between two adjacent values of tb (minutes) [9].
gloP2
Parameter P2, change of tb flag (dimensionless) [9].
gloM
Parameter M, type of satellite (dimensionless) [9].
gloX
Parameter , x-coordinate of satellite at time tb (kilometers) [9].
Scale factor 2-11 kilometers.
gloXdot
Parameter , x-coordinate of satellite velocity at time tb (kilometers/sec) [9].
Scale factor 2-20 kilometers/second.
gloXdotdot
Parameter , x-coordinate of satellite acceleration at time tb (kilometers/sec2) [9].
Scale factor 2-30 kilometers/second2.
gloY
Parameter , y-coordinate of satellite at time tb (kilometers) [9].
Scale factor 2-11 kilometers.
gloYdot
Parameter , y-coordinate of satellite velocity at time tb (kilometers/sec) [9].
Scale factor 2-20 kilometers/second.
gloYdotdot
Parameter , y-coordinate of satellite acceleration at time tb (kilometers/sec2) [9].
Scale factor 2-30 kilometers/second2.
gloZ
Parameter , z-coordinate of satellite at time tb (kilometers) [9].
Scale factor 2-11 kilometers.
gloZdot
Parameter , z-coordinate of satellite velocity at time tb (kilometers/sec) [9].
Scale factor 2-20 kilometers/second.
gloZdotdot
Parameter , z-coordinate of satellite acceleration at time tb (kilometers/sec2) [9].
Scale factor 2-30 kilometers/second2.

–	NavModel-SBAS-ECEF
-- ASN1START

NavModel-SBAS-ECEF ::= SEQUENCE {
	sbasTo				INTEGER (0..5399)					OPTIONAL,	-- Cond ClockModel
	sbasAccuracy		BIT STRING (SIZE(4)),
	sbasXg				INTEGER (-536870912..536870911),
	sbasYg				INTEGER (-536870912..536870911),
	sbasZg				INTEGER (-16777216..16777215),
	sbasXgDot			INTEGER (-65536..65535),
	sbasYgDot			INTEGER (-65536..65535),
	sbasZgDot			INTEGER (-131072..131071),
	sbasXgDotDot		INTEGER (-512..511),
	sbagYgDotDot		INTEGER (-512..511),
	sbasZgDotDot		INTEGER (-512..511),
	...
}

-- ASN1STOP

Conditional presence
Explanation
ClockModel
This field is mandatory present if gnss-ClockModel Model‑5 is not included; otherwise it is not present.

NavModel-SBAS-ECEF field descriptions
sbasTo
Parameter t0, time of applicability (seconds) [10].
Scale factor 16 seconds.
sbasAccuracy
Parameter Accuracy, (dimensionless) [10].
sbasXg
Parameter XG, (meters) [10].
Scale factor 0.08 meters.
sbasYg
Parameter YG, (meters) [10].
Scale factor 0.08 meters.
sbasZg
Parameter ZG, (meters) [10].
Scale factor 0.4 meters.
sbasXgDot
Parameter XG, Rate‑of‑Change, (meters/sec) [10].
Scale factor 0.000625 meters/second.
sbasYgDot
Parameter YG, Rate‑of‑Change, (meters/sec) [10]
Scale factor 0.000625 meters/second.
sbasZgDot
Parameter ZG, Rate‑of‑Change, (meters/sec) [10].
Scale factor 0.004 meters/second.
sbasXgDotDot
Parameter XG, Acceleration, (meters/sec2) [10].
Scale factor 0.0000125 meters/second2.
sbagYgDotDot
Parameter YG, Acceleration, (meters/sec2) [10].
Scale factor 0.0000125 meters/second2.
sbasZgDotDot
Parameter ZG Acceleration, (meters/sec2) [10].
Scale factor 0.0000625 meters/second2.

–	NavModel-BDS-KeplerianSet
-- ASN1START

NavModel-BDS-KeplerianSet-r12 ::= SEQUENCE {
	bdsAODE-r12				INTEGER (0..31),
	bdsURAI-r12				INTEGER (0..15),
	bdsToe-r12				INTEGER (0..131071),
	bdsAPowerHalf-r12		INTEGER (0..4294967295),
	bdsE-r12				INTEGER (0..4294967295),
	bdsW-r12				INTEGER (-2147483648..2147483647),
	bdsDeltaN-r12			INTEGER (-32768..32767),
	bdsM0-r12				INTEGER (-2147483648..2147483647),
	bdsOmega0-r12			INTEGER (-2147483648..2147483647),
	bdsOmegaDot-r12			INTEGER (-8388608..8388607),
	bdsI0-r12				INTEGER (-2147483648..2147483647),
	bdsIDot-r12				INTEGER (-8192..8191),
	bdsCuc-r12				INTEGER (-131072..131071),
	bdsCus-r12				INTEGER (-131072..131071),
	bdsCrc-r12				INTEGER (-131072..131071),
	bdsCrs-r12				INTEGER (-131072..131071),
	bdsCic-r12				INTEGER (-131072..131071),
	bdsCis-r12				INTEGER (-131072..131071),
	...
}

-- ASN1STOP

NavModel-BDS-KeplerianSet field descriptions
bdsAODE
Parameter Age of Data, Ephemeris (AODE), see [23], Table 5-8.
bdsURAI
Parameter URA Index, URA is used to describe the signal-in-space accuracy in meters as defined in [23].
bdsToe
Parameter toe, Ephemeris reference time (seconds) [23].
Scale factor 23 seconds.
bdsAPowerHalf
Parameter A1/2, Square root of semi-major axis (meters1/2) [23].
Scale factor 2-19 meters1/2.
bdsE
Parameter e, Eccentricity, dimensionless [23].
Scale factor 2-33.
bdsW
Parameter , Argument of perigee (semi-circles) [23].
Scale factor 2-31 semi-circles.
bdsDeltaN
Parameter n, Mean motion difference from computed value (semi-circles/sec) [23].
Scale factor 2-43 semi-circles/sec.
bdsM0
Parameter M0, Mean anomaly at reference time (semi-circles) [23].
Scale factor 2-31 semi-circles.
bdsOmega0
Parameter 0, Longitude of ascending node of orbital of plane computed according to reference time (semi-circles) [23].
Scale factor 2-31 semi-circles.
bdsOmegaDot
Parameter  Rate of right ascension (semi-circles/sec) [23].
Scale factor 2-43 semi-circles/sec.
bdsI0
Parameter i0, Inclination angle at reference time (semi-circles) [23]
Scale factor 2-31 semi-circles.
bdsIDot	
Parameter Idot, Rate of inclination angle (semi-circles/sec) [23].
Scale factor 2-43 semi-circles/sec.
bdsCuc	
Parameter Cuc, Amplitude of cosine harmonic correction term to the argument of latitude (radians) [23].
Scale factor 2-31 radians.
bdsCus
Parameter Cus, Amplitude of sine harmonic correction term to the argument of latitude (radians) [23].
Scale factor 2-31 radians.
bdsCrc
Parameter Crc, Amplitude of cosine harmonic correction term to the orbit radius (meters) [23].
Scale factor 2-6 meters.
bdsCrs
Parameter Crs, Amplitude of sine harmonic correction term to the orbit radius (meters) [23].
Scale factor 2-6 meters.
bdsCic
Parameter Cic, Amplitude of cosine harmonic correction term to the angle of inclination (radians) [23].
Scale factor 2-31 radians.
bdsCis
Parameter Cis, Amplitude of sine harmonic correction term to the angle of inclination (radians) [23].
Scale factor 2-31 radians.

–	GNSS-RealTimeIntegrity
The IE GNSS-RealTimeIntegrity is used by the location server to provide parameters that describe the real-time status of the GNSS constellations. GNSS-RealTimeIntegrity data communicates the health of the GNSS signals to the mobile in real‑time.
The location server shall always transmit the GNSS-RealTimeIntegrity with the current list of unhealthy signals (i.e., not only for signals/SVs currently visible at the reference location), for any GNSS positioning attempt and whenever GNSS assistance data are sent. If the number of bad signals is zero, then the GNSS-RealTimeIntegrity IE shall be omitted.
-- ASN1START

GNSS-RealTimeIntegrity ::= SEQUENCE {
	gnss-BadSignalList	GNSS-BadSignalList,
	...
}

GNSS-BadSignalList ::= SEQUENCE (SIZE(1..64)) OF BadSignalElement

BadSignalElement ::= SEQUENCE {
	badSVID			SV-ID,						
	badSignalID		GNSS-SignalIDs	OPTIONAL,	-- Need OP
	...
}

-- ASN1STOP

GNSS-RealTimeIntegrity field descriptions
gnss-BadSignalList
This field specifies a list of satellites with bad signal or signals. 
badSVID
This field specifies the GNSS SV‑ID of the satellite with bad signal or signals.
badSignalID
This field identifies the bad signal or signals of a satellite. This is represented by a bit string in GNSS-SignalIDs, with a one‑value at a bit position means the particular GNSS signal type of the SV is unhealthy; a zero‑value means healthy. Absence of this field means that all signals on the specific SV are bad. 

–	GNSS-DataBitAssistance
The IE GNSS-DataBitAssistance is used by the location server to provide data bit assistance data for specific satellite signals for data wipe-off. The data bits included in the assistance data depends on the GNSS and its signal.
-- ASN1START

GNSS-DataBitAssistance ::= SEQUENCE {
	gnss-TOD				INTEGER (0..3599),
	gnss-TODfrac			INTEGER (0..999)		OPTIONAL,	-- Need ON
	gnss-DataBitsSatList	GNSS-DataBitsSatList,
	...
}

GNSS-DataBitsSatList ::= SEQUENCE (SIZE(1..64))OF GNSS-DataBitsSatElement

GNSS-DataBitsSatElement ::= SEQUENCE {
	svID					SV-ID,
	gnss-DataBitsSgnList	GNSS-DataBitsSgnList,
	...
}

GNSS-DataBitsSgnList ::= SEQUENCE (SIZE(1..8)) OF GNSS-DataBitsSgnElement

GNSS-DataBitsSgnElement ::= SEQUENCE {
	gnss-SignalType			GNSS-SignalID,
	gnss-DataBits			BIT STRING (SIZE (1..1024)),
	...
}

-- ASN1STOP

GNSS-DataBitAssistance field descriptions
gnss-TOD
This field specifies the reference time of the first bit of the data in GNSS-DataBitAssistance in integer seconds in GNSS specific system time, modulo 1 hour.
Scale factor 1 second.
gnss-TODfrac
This field specifies the fractional part of the gnss-TOD in 1‑milli‑second resolution.
Scale factor 1 millisecond. The total GNSS TOD is gnss-TOD + gnss-TODfrac.
gnss-DataBitsSatList
This list specifies the data bits for a particular GNSS satellite SV-ID and signal GNSS-SignalID.
svID
This field specifies the GNSS SV‑ID of the satellite for which the GNSS-DataBitAssistance is given.
gnss-SignalType
This field identifies the GNSS signal type of the GNSS-DataBitAssistance.
gnss-DataBits
Data bits are contained in GNSS system and data type specific format.

In case of GPS L1 C/A, it contains the NAV data modulation bits as defined in [4] .
In case of Modernized GPS L1C, it contains the encoded and interleaved modulation symbols as defined in [6] clause 3.2.3.1. In case of Modernized GPS L2C, it contains either the NAV data modulation bits, the FEC encoded NAV data modulation symbols, or the FEC encoded CNAV data modulation symbols, dependent on the current signal configuration of this satellite as defined in [4, Table 3-III]. In case of Modernized GPS L5, it contains the FEC encoded CNAV data modulation symbols as defined in [5].

In case of SBAS, it contains the FEC encoded data modulation symbols as defined in [10].

In case of QZSS QZS-L1, it contains the NAV data modulation bits as defined in [7] clause 5.2. In case of QZSS QZS-L1C, it contains the encoded and interleaved modulation symbols as defined in [7] clause 5.3. In case of QZSS QZS-L2C, it contains the encoded modulation symbols as defined in [7] clause 5.5. In case of QZSS QZS-L5, it contains the encoded modulation symbols as defined in [7] clause 5.6.

In case of GLONASS, it contains the 100 sps differentially Manchester encoded modulation symbols as defined in [9] clause 3.3.2.2.

In case of Galileo, it contains the FEC encoded and interleaved modulation symbols. The logical levels 1 and 0 correspond to signal levels -1 and +1, respectively.

In case of BDS, it contains the encoded and interleaved modulation symbols as defined in [23, clause 5.1.3].

–	GNSS-AcquisitionAssistance
The IE GNSS-AcquisitionAssistance is used by the location server to provide parameters that enable fast acquisition of the GNSS signals. Essentially, these parameters describe the range and derivatives from respective satellites to the reference location at the reference time GNSS-SystemTime provided in IE GNSS-ReferenceTime.
Whenever GNSS-AcquisitionAssistance is provided by the location server, the IE GNSS-ReferenceTime shall be provided as well. E.g., even if the target device request for assistance data includes only a request for GNSS-AcquisitionAssistance, the location server shall also provide the corresponding IE GNSS-ReferenceTime.
Figure 6.5.2.2-1 illustrates the relation between some of the fields, using GPS TOW as exemplary reference.
-- ASN1START

GNSS-AcquisitionAssistance ::= SEQUENCE {
	gnss-SignalID				GNSS-SignalID,
	gnss-AcquisitionAssistList	GNSS-AcquisitionAssistList,
	...,
	confidence-r10				INTEGER (0..100)	OPTIONAL	-- Need ON
}

GNSS-AcquisitionAssistList ::= SEQUENCE (SIZE(1..64)) OF GNSS-AcquisitionAssistElement

GNSS-AcquisitionAssistElement ::= SEQUENCE {
	svID						SV-ID,
	doppler0					INTEGER (-2048..2047),
	doppler1					INTEGER (0..63),
	dopplerUncertainty			INTEGER (0..4),
	codePhase					INTEGER (0..1022),
	intCodePhase				INTEGER (0..127),
	codePhaseSearchWindow		INTEGER (0..31),
	azimuth						INTEGER (0..511),
	elevation					INTEGER (0..127),		
	...,
	codePhase1023				BOOLEAN				OPTIONAL,	-- Need OP
	dopplerUncertaintyExt-r10	ENUMERATED {	d60,
												d80,
												d100,
												d120,
												noInformation, ... }	OPTIONAL	-- Need ON
}

-- ASN1STOP

GNSS-AcquisitionAssistance field descriptions
gnss-SignalID
This field specifies the GNSS signal for which the acquisition assistance are provided.
gnss-AcquisitionAssistList
These fields provide a list of acquisition assistance data for each GNSS satellite.
confidence
This field specifies the confidence level of the reference location area or volume used to calculate the acquisition assistance parameters (search windows). A high percentage value (e.g., 98% or more) indicates to the target device that the provided search windows are reliable. The location server should include this field to indicate the confidence level of the provided information.
svID
This field specifies the GNSS SV‑ID of the satellite for which the GNSS-AcquisitionAssistance is given.
doppler0
This field specifies the Doppler (0th order term) value. A positive value in Doppler defines the increase in satellite signal frequency due to velocity towards the target device. A negative value in Doppler defines the decrease in satellite signal frequency due to velocity away from the target device. Doppler is given in unit of m/s by multiplying the Doppler value in Hz by the nominal wavelength of the assisted signal.
Scale factor 0.5 m/s in the range from -1024 m/s to +1023.5 m/s.
doppler1
This field specifies the Doppler (1st order term) value. A positive value defines the rate of increase in satellite signal frequency due to acceleration towards the target device. A negative value defines the rate of decrease in satellite signal frequency due to acceleration away from the target device.
Scale factor 1/210 m/s2 in the range from -0.2 m/s2 to +0.1 m/s2.
Actual value of Doppler (1st order term) is calculated as (-42 + doppler1) * 1/210 m/s2, with doppler1 in the range of 0…63.
dopplerUncertainty
This field specifies the Doppler uncertainty value. It is defined such that the Doppler experienced by a stationary target device is in the range [DopplerDoppler Uncertainty] to [DopplerDoppler Uncertainty]. Doppler Uncertainty is given in unit of m/s by multiplying the Doppler Uncertainty value in Hz by the nominal wavelength of the assisted signal.
Defined values: 2.5 m/s, 5 m/s, 10 m/s, 20 m/s, 40 m/s as encoded by an integer n in the range 0-4 according to:
												2-n(40) m/s; n = 0 – 4.
If the dopplerUncertaintyExt field is present, the target device that supports the dopplerUncertaintyExt shall ignore this field.
codePhase
This field together with the codePhase1023 field specifies the code phase, in units of milli‑seconds, in the range from 0 to 1 millisecond scaled by the nominal chipping rate of the GNSS signal, where increasing values of the field signify increasing predicted signal code phases, as seen by a receiver at the reference location at the reference time. The reference location would typically be an a priori estimate of the target device location.
Scale factor 2-10 ms in the range from 0 to (1-2-10) ms.
Note: The value (1-2-10) ms is encoded using the codePhase1023 IE.
intCodePhase
This field contains integer code phase (expressed modulo 128 ms). The satellite integer milli-seconds code phase currently being transmitted at the reference time, as seen by a receiver at the reference location is calculated as reference time (expressed in milli-seconds) minus (intCodePhase + (n×128 ms)), as shown in Figure 6.5.2.2-1, with n = …-2,-1,0,1,2….
Scale factor 1 ms in the range from 0 to 127 ms.
codePhaseSearchWindow
This field contains the code phase search window. The code phase search window accounts for the uncertainty in the estimated target device location but not any uncertainty in reference time. It is defined such that the expected code phase is in the range [Code PhaseCode Phase Search Window] to [Code PhaseCode Phase Search Window] given in units of milli‑seconds.
Range 0-31, mapping according to the table codePhaseSearchWindow Value to Interpretation Code Phase Search Window [ms] relation shown below.
azimuth
This field specifies the azimuth angle. An angle of x degrees means the satellite azimuth a is in the range
(x  a < x+0.703125) degrees.
Scale factor 0.703125 degrees.
elevation
This field specifies the elevation angle. An angle of y degrees means the satellite elevation e is in the range
(y  e < y+0.703125) degrees.
Scale factor 0.703125 degrees.
codePhase1023
This field if set to TRUE indicates that the code phase has the value 1023 × 2-10 = (1-2-10) ms. This field may only be set to TRUE if the value provided in the codePhase IE is 1022. If this field is set to FALSE, the code phase is the value provided in the codePhase IE in the range from 0 to (1 - 2×2-10) ms. If this field is not present and the codePhase IE has the value 1022, the target device may assume that the code phase is between (1 - 2×2-10) and (1 - 2-10) ms. 
dopplerUncertaintyExt
If this field is present, the target device that supports this field shall ignore the dopplerUncertainty field. The location server should include this field only if supported by the target device.
This field specifies the Doppler uncertainty value. It is defined such that the Doppler experienced by a stationary target device is in the range [DopplerDoppler Uncertainty] to [DopplerDoppler Uncertainty]. Doppler Uncertainty is given in unit of m/s by multiplying the Doppler Uncertainty value in Hz by the nominal wavelength of the assisted signal.
Enumerated values define 60 m/s, 80 m/s, 100 m/s, 120 ms, and "No Information". 

codePhaseSearchWindow Value to Interpretation Code Phase Search Window [ms] relation
codePhaseSearchWindow
Value
Interpretation
Code Phase Search Window [ms]
'00000'
No information
'00001'
0,002
'00010'
0,004
'00011'
0,008
'00100'
0,012
'00101'
0,016
'00110'
0,024
'00111'
0,032
'01000'
0,048
'01001'
0,064
'01010'
0,096
'01011'
0,128
'01100'
0,164
'01101'
0,200
'01110'
0,250
'01111'
0,300
'10000'
0,360
'10001'
0,420
'10010'
0,480
'10011'
0,540
'10100'
0,600
'10101'
0,660
'10110'
0,720
'10111'
0,780
'11000'
0,850
'11001'
1,000
'11010'
1,150
'11011'
1,300
'11100'
1,450
'11101'
1,600
'11110'
1,800
'11111'
2,000


Figure 6.5.2.2-1: Exemplary calculation of some GNSS Acquisition Assistance fields.
–	GNSS-Almanac
The IE GNSS-Almanac is used by the location server to provide the coarse, long-term model of the satellite positions and clocks. The meaning of these parameters is defined in relevant ICDs of the particular GNSS and GNSS specific interpretations apply. For example, GPS and QZSS use the same model parameters but some parameters have a different interpretation [7]. GNSS-Almanac is useful for receiver tasks that require coarse accuracy, such as determining satellite visibility. The model is valid for up to a few weeks, typically. Since it is a long-term model, the field should be provided for all satellites available in the GNSS constellation (i.e., not only for SVs visible at the reference location and including SVs flagged as unhealthy in almanac). The completeAlmanacProvided field indicates whether or not the location server provided almanacs for the complete GNSS constellation.
-- ASN1START

GNSS-Almanac ::= SEQUENCE {
	weekNumber					INTEGER (0..255)	OPTIONAL,	-- Need ON
	toa						INTEGER (0..255)	OPTIONAL,	-- Need ON
	ioda						INTEGER (0..3)		OPTIONAL,	-- Need ON
	completeAlmanacProvided		BOOLEAN,
	gnss-AlmanacList			GNSS-AlmanacList,
	...,
	[[	toa-ext-v1240			INTEGER (256..1023)	OPTIONAL,	-- Need ON
		ioda-ext-v1240			INTEGER (4..15)		OPTIONAL	-- Need ON
	]]
}

GNSS-AlmanacList ::= SEQUENCE (SIZE(1..64)) OF GNSS-AlmanacElement

GNSS-AlmanacElement ::= CHOICE {
	keplerianAlmanacSet				AlmanacKeplerianSet,		-- Model-1
	keplerianNAV-Almanac			AlmanacNAV-KeplerianSet,	-- Model-2
	keplerianReducedAlmanac			AlmanacReducedKeplerianSet,	-- Model-3
	keplerianMidiAlmanac			AlmanacMidiAlmanacSet,		-- Model-4
	keplerianGLONASS				AlmanacGLONASS-AlmanacSet,	-- Model-5
	ecef-SBAS-Almanac				AlmanacECEF-SBAS-AlmanacSet,-- Model-6
	...,
	keplerianBDS-Almanac-r12		AlmanacBDS-AlmanacSet-r12	-- Model-7
}

-- ASN1STOP

GNSS-Almanac field descriptions
weekNumber
This field specifies the almanac reference week number in GNSS specific system time to which the almanac reference time toa is referenced, modulo 256 weeks. This field is required for non-GLONASS GNSS.
Note, in case of Galileo, the almanac reference week number WNa natively contains only the 2 LSB's [8], clause 5.1.10].
toa, toa-ext
In case of GNSS-ID does not indicate Galileo, this field specifies the almanac reference time given in GNSS specific system time, in units of seconds with a scale factor of 212. toa is required for non-GLONASS GNSS.
In case of GNSS-ID does indicate Galileo, this field specifies the almanac reference time given in GNSS specific system time, in units of seconds with a scale factor of 600 seconds. Either toa or toa-ext is required for Galileo GNSS.
ioda, ioda-ext
This field specifies the issue of data. Either ioda or ioda-ext is required for Galileo GNSS.
completeAlmanacProvided
If set to TRUE, the gnss-AlmanacList contains almanacs for the complete GNSS constellation indicated by GNSS‑ID. 
gnss-AlmanacList
This list contains the almanac model for each GNSS satellite in the GNSS constellation.

–	AlmanacKeplerianSet
-- ASN1START

AlmanacKeplerianSet ::= SEQUENCE {
	svID					SV-ID,
	kepAlmanacE				INTEGER (0..2047),
	kepAlmanacDeltaI		INTEGER (-1024..1023),
	kepAlmanacOmegaDot		INTEGER (-1024..1023),
	kepSV-StatusINAV		BIT STRING (SIZE (4)),
	kepSV-StatusFNAV		BIT STRING (SIZE (2))			OPTIONAL,	-- Need ON
	kepAlmanacAPowerHalf	INTEGER (-4096..4095),
	kepAlmanacOmega0		INTEGER (-32768..32767),
	kepAlmanacW				INTEGER (-32768..32767),
	kepAlmanacM0			INTEGER (-32768..32767),
	kepAlmanacAF0			INTEGER (-32768..32767),
	kepAlmanacAF1			INTEGER (-4096..4095),
	...
}

-- ASN1STOP

AlmanacKeplerianSet field descriptions
svID
This field identifies the satellite for which the GNSS Almanac Model is given.
kepAlmanacE
Parameter e, eccentricity, dimensionless [8].
Scale factor 2-16.
kepAlmanacDeltaI
Parameter i, inclination at reference time relative to i0=56°; semi-circles [8].
Scale factor 2-14 semi-circles.
kepAlmanacOmegaDot
Parameter , rate of change of right ascension (semi-circles/sec) [8].
Scale factor 2-33 semi-circles/seconds.
kepSV-StatusINAV
This field contains the I/NAV signal health status [8], clause 5.1.10 , E5bHS and E1-BHS, where E5bHS occupies the 2 MSBs in kepSV-StatusINAV, and E1-BHS the two LSBs. 
kepSV-StatusFNAV
This field contains the F/NAV signal health status [8], clause 5.1.10 ,E5aHS. If the target device is supporting multiple Galileo signals, the location server shall include this field. 
kepAlmanacAPowerHalf
Parameter (a1/2), difference with respect to the square root of the nominal semi-major axis, (meters)1/2 [8].
Scale factor 2-9 meters ½ .
kepAlmanacOmega0
Parameter OMEGA0, longitude of ascending node of orbital plane at weekly epoch (semi-circles) [8].
Scale factor 2-15 semi-circles.
kepAlmanacW
Parameter , argument of perigee (semi-circles) [8].
Scale factor 2-15 semi-circles.
kepAlmanacM0
Parameter M0, mean anomaly at reference time (semi-circles) [8].
Scale factor 2-15 semi-circles.
kepAlmanacAF0
Parameter af0, satellite clock correction bias, seconds [8].
Scale factor 2-19 seconds.
kepAlmanacAF1
Parameter af1, satellite clock correction linear, sec/sec [8].
Scale factor 2-38 seconds/second.

–	AlmanacNAV-KeplerianSet
-- ASN1START

AlmanacNAV-KeplerianSet ::= SEQUENCE {
	svID					SV-ID,
	navAlmE					INTEGER (0..65535),
	navAlmDeltaI			INTEGER (-32768..32767),
	navAlmOMEGADOT			INTEGER (-32768..32767),
	navAlmSVHealth			INTEGER (0..255),
	navAlmSqrtA				INTEGER (0..16777215),
	navAlmOMEGAo			INTEGER (-8388608..8388607),
	navAlmOmega				INTEGER (-8388608..8388607),
	navAlmMo				INTEGER (-8388608..8388607),
	navAlmaf0				INTEGER (-1024..1023),
	navAlmaf1				INTEGER (-1024..1023),
	...
}

-- ASN1STOP

AlmanacNAV-KeplerianSet field descriptions
svID
This field identifies the satellite for which the GNSS Almanac Model is given.
navAlmE
Parameter e, eccentricity, dimensionless [4,7].
Scale factor 2-21.
navAlmDeltaI
Parameter i, correction to inclination, semi-circles [4,7].
Scale factor 2-19 semi-circles.
navAlmOMEGADOT
Parameter , rate of right ascension, semi-circles/sec [4,7].
Scale factor 2-38 semi-circles/second.
navAlmSVHealth
Parameter SV Health, satellite health [4,7].
navAlmSqrtA
Parameter , square root of the semi-major axis, meters1/2 [4,7]
Scale factor 2-11 meters1/2.
navAlmOMEGAo
Parameter 0, longitude of ascending node of orbit plane at weekly epoch, semi-circles [4,7].
Scale factor 2-23 semi-circles.
navAlmOmega
Parameter , argument of perigee semi-circles [4,7].
Scale factor 2-23 semi-circles.
navAlmMo
Parameter M0, mean anomaly at reference time semi-circles [4,7].
Scale factor 2-23 semi-circles.
navAlmaf0
Parameter af0, apparent satellite clock correction seconds [4,7].
Scale factor 2-20 seconds.
navAlmaf1
Parameter af1, apparent satellite clock correction sec/sec [4,7].
Scale factor 2-38 semi-circles seconds/second.

–	AlmanacReducedKeplerianSet
-- ASN1START

AlmanacReducedKeplerianSet ::= SEQUENCE {
	svID					SV-ID,
	redAlmDeltaA			INTEGER (-128..127),
	redAlmOmega0			INTEGER (-64..63),
	redAlmPhi0				INTEGER (-64..63),
	redAlmL1Health			BOOLEAN,
	redAlmL2Health			BOOLEAN,
	redAlmL5Health			BOOLEAN,
	...
}

-- ASN1STOP

AlmanacReducedKeplerianSet field descriptions
svID
This field identifies the satellite for which the GNSS Almanac Model is given.
redAlmDeltaA
Parameter A, meters [4,5,6,7].
Scale factor 2+9 meters.
redAlmOmega0
Parameter 0, semi-circles [4,5,6,7].
Scale factor 2-6 semi-circles.
redAlmPhi0
Parameter 0, semi-circles [4,5,6,7].
Scale factor 2-6 semi-circles.
redAlmL1Health
Parameter L1 Health, dimensionless [4,5,6,7].
redAlmL2Health
Parameter L2 Health, dimensionless [4,5,6,7].
redAlmL5Health
Parameter L5 Health, dimensionless [4,5,6,7].

–	AlmanacMidiAlmanacSet
-- ASN1START

AlmanacMidiAlmanacSet ::= SEQUENCE {
	svID					SV-ID,
	midiAlmE				INTEGER (0..2047),
	midiAlmDeltaI			INTEGER (-1024..1023),
	midiAlmOmegaDot			INTEGER (-1024..1023),
	midiAlmSqrtA			INTEGER (0..131071),
	midiAlmOmega0			INTEGER (-32768..32767),
	midiAlmOmega			INTEGER (-32768..32767),
	midiAlmMo				INTEGER (-32768..32767),
	midiAlmaf0				INTEGER (-1024..1023),
	midiAlmaf1				INTEGER (-512..511),
	midiAlmL1Health			BOOLEAN,
	midiAlmL2Health			BOOLEAN,
	midiAlmL5Health			BOOLEAN,
	...
}

-- ASN1STOP

AlmanacMidiAlmanacSet field descriptions
svID
This field identifies the satellite for which the GNSS Almanac Model is given.
midiAlmE
Parameter e, dimensionless [4,5,6,7].
Scale factor 2-16.
midiAlmDeltaI
Parameter i, semi-circles [4,5,6,7].
Scale factor 2-14 semi-circles.
midiAlmOmegaDot
Parameter , semi-circles/sec [4,5,6,7].
Scale factor 2-33 semi-circles/second.
midiAlmSqrtA
Parameter , meters1/2 [4,5,6,7].
Scale factor 2-4 meters1/2.
midiAlmOmega0
Parameter 0, semi-circles [4,5,6,7].
Scale factor 2-15 semi-circles.
midiAlmOmega
Parameter , semi-circles [4,5,6,7].
Scale factor 2-15 semi-circles.
midiAlmMo
Parameter M0, semi-circles [4,5,6,7].
Scale factor 2-15 semi-circles.
midiAlmaf0
Parameter afo, seconds [4,5,6,7].
Scale factor 2-20 seconds.
midiAlmaf1
Parameter af1, sec/sec [4,5,6,7].
Scale factor 2-37 seconds/second.
midiAlmL1Health
Parameter L1 Health, dimensionless [4,5,6,7].
midiAlmL2Health
Parameter L2 Health, dimensionless [4,5,6,7].
midiAlmL5Health
Parameter L5 Health, dimensionless [4,5,6,7].

–	AlmanacGLONASS-AlmanacSet
-- ASN1START

AlmanacGLONASS-AlmanacSet ::= SEQUENCE {
	gloAlm-NA				INTEGER (1..1461),
	gloAlmnA				INTEGER (1..24),
	gloAlmHA				INTEGER (0..31),
	gloAlmLambdaA			INTEGER (-1048576..1048575),
	gloAlmtlambdaA			INTEGER (0..2097151),
	gloAlmDeltaIa			INTEGER (-131072..131071),
	gloAlmDeltaTA			INTEGER (-2097152..2097151),
	gloAlmDeltaTdotA		INTEGER (-64..63),
	gloAlmEpsilonA			INTEGER (0..32767),
	gloAlmOmegaA			INTEGER (-32768..32767),
	gloAlmTauA				INTEGER (-512..511),
	gloAlmCA				INTEGER (0..1),
	gloAlmMA				BIT STRING (SIZE(2))			OPTIONAL,	-- Need ON
	...
}

-- ASN1STOP

AlmanacGLONASS-AlmanacSet field descriptions
gloAlm-NA
Parameter NA, days [9].
Scale factor 1 days.
gloAlmnA
Parameter nA, dimensionless [9].
gloAlmHA
Parameter HnA, dimensionless [9].
gloAlmLambdaA
Parameter nA, semi-circles [9].
Scale factor 2-20 semi-circles.
gloAlmtlambdaA
Parameter tnA, seconds [9].
Scale factor 2-5 seconds.
gloAlmDeltaIa
Parameter inA, semi-circles [9].
Scale factor 2-20 semi-circles.
gloAlmDeltaTA
Parameter TnA, sec/orbit period [9].
Scale factor 2-9 seconds/orbit period.
gloAlmDeltaTdotA
Parameter T_DOTnA, sec/orbit period2 [9].
Scale factor 2-14 seconds/orbit period2.
gloAlmEpsilonA
Parameter nA, dimensionless [9].
Scale factor 2-20.
gloAlmOmegaA
Parameter nA, semi-circles [9].
Scale factor 2-15 semi-circles.
gloAlmTauA
Parameter nA, seconds [9].
Scale factor 2-18 seconds.
gloAlmCA
Parameter CnA, dimensionless [9].
gloAlmMA
Parameter MnA, dimensionless [9]. This parameter is present if its value is nonzero; otherwise it is not present.

–	AlmanacECEF-SBAS-AlmanacSet
-- ASN1START

AlmanacECEF-SBAS-AlmanacSet ::= SEQUENCE {
	sbasAlmDataID			INTEGER (0..3),
	svID					SV-ID,
	sbasAlmHealth			BIT STRING (SIZE(8)),
	sbasAlmXg				INTEGER (-16384..16383),
	sbasAlmYg				INTEGER (-16384..16383),
	sbasAlmZg				INTEGER (-256..255),
	sbasAlmXgdot			INTEGER (-4..3),
	sbasAlmYgDot			INTEGER (-4..3),
	sbasAlmZgDot			INTEGER (-8..7),
	sbasAlmTo				INTEGER (0..2047),
	...
}

-- ASN1STOP

AlmanacECEF-SBAS-AlmanacSet field descriptions
sbasAlmDataID
Parameter Data ID, dimensionless [10].
svID
This field identifies the satellite for which the GNSS Almanac Model is given.
sbasAlmHealth
Parameter Health, dimensionless [10].
sbasAlmXg
Parameter XG, meters [10].
Scale factor 2600 meters.
sbasAlmYg
Parameter YG, meters [10].
Scale factor 2600 meters.
sbasAlmZg
Parameter ZG, meters [10].
Scale factor 26000 meters.
sbasAlmXgdot
Parameter XG Rat-of-Change, meters/sec [10].
Scale factor 10 meters/second.
sbasAlmYgDot
Parameter YG Rate-of-Change, meters/sec [10].
Scale factor 10 meters/second.
sbasAlmZgDot
Parameter ZG Rate-of-Change, meters/sec [10].
Scale factor 40.96 meters/second.
sbasAlmTo
Parameter t0, seconds [10].
Scale factor 64 meters/seconds.

–	AlmanacBDS-AlmanacSet
-- ASN1START

AlmanacBDS-AlmanacSet-r12 ::= SEQUENCE {
	svID					SV-ID,
	bdsAlmToa-r12			INTEGER (0..255)					OPTIONAL,	-- Cond NotSameForAllSV
	bdsAlmSqrtA-r12			INTEGER (0..16777215),
	bdsAlmE-r12				INTEGER (0..131071),
	bdsAlmW-r12				INTEGER (-8388608..8388607),
	bdsAlmM0-r12			INTEGER (-8388608..8388607),
	bdsAlmOmega0-r12		INTEGER (-8388608..8388607),
	bdsAlmOmegaDot-r12		INTEGER (-65536..65535),
	bdsAlmDeltaI-r12		INTEGER (-32768..32767),
	bdsAlmA0-r12			INTEGER (-1024..1023),
	bdsAlmA1-r12			INTEGER (-1024..1023),
	bdsSvHealth-r12			BIT STRING (SIZE(9))				OPTIONAL,	-- Cond SV-ID
	...
}

-- ASN1STOP

Conditional presence
Explanation
NotSameForAllSV
This field may be present if the toa is not the same for all SVs; otherwise it is not present and the toa is provided in GNSS-Almanac.
SV-ID
This field is mandatory present if SV-ID is between 0 and 29; otherwise it is not present.

AlmanacBDS-AlmanacSet field descriptions
svID
This field identifies the satellite for which the GNSS Almanac Model is given.
bdsAlmToa
Parameter toa, Almanac reference time(seconds) [23]
Scale factor 212 seconds.
bdsAlmSqrtA
Parameter A1/2, Square root of semi-major axis (meters1/2) [23]
Scale factor 2-11 meters1/2.
bdsAlmE
Parameter e, Eccentricity, dimensionless [23]
Scale factor 2-21.
bdsAlmW	
Parameter , Argument of Perigee (semi-circles) [23]
Scale factor 2-23 semi-circles.
bdsAlmM0
Parameter M0, Mean anomaly at reference time (semi-circles) [23]
Scale factor 2-23 semi-circles.
bdsAlmOmega0
Parameter 0, Longitude of ascending node of orbital plane computed according to reference time (semi-circles) [23]
Scale factor 2-23 semi-circles.
bdsAlmOmegaDot
Parameter  Rate of right ascension (semi-circles/sec) [23]
Scale factor 2-38 semi-circles/sec.
bdsAlmDeltaI
Parameter i, Correction of orbit reference inclination at reference time (semi-circles) [23]
Scale factor 2-19 semi-circles.
bdsAlmA0
Parameter a0, Satellite clock bias (seconds) [23]
Scale factor 2-20 seconds.
bdsAlmA1
Parameter a1, Satellite clock rate (sec/sec) [23]
Scale factor 2-38 sec/sec.
bdsSvHealth
This field indicates satellites health information as defined in [23] Table 5-15. The left most bit is the MSB.

–	GNSS-UTC-Model
The IE GNSS-UTC-Model is used by the location server to provide several sets of parameters needed to relate GNSS system time to Universal Time Coordinate (UTC), as defined in [4], [5], [6], [7], [8], [9], [10], [23].
The UTC time standard, UTC(k), is GNSS specific. E.g., if GNSS-ID indicates GPS, GNSS-UTC-Model contains a set of parameters needed to relate GPS system time to UTC(USNO); if GNSS-ID indicates QZSS, GNSS-UTC-Model contains a set of parameters needed to relate QZST to UTC(NICT); if GNSS-ID indicates GLONASS, GNSS-UTC-Model contains a set of parameters needed to relate GLONASS system time to UTC(RU); if GNSS-ID indicates SBAS, GNSS-UTC-Model contains a set of parameters needed to relate SBAS network time for the SBAS indicated by SBAS-ID to the UTC standard defined by the UTC Standard ID; if GNSS-ID indicates BDS, GNSS-UTC-Model contains a set of parameters needed to relate BDS system time to UTC (NTSC).
-- ASN1START

GNSS-UTC-Model ::= CHOICE {
	utcModel1			UTC-ModelSet1,			-- Model-1
	utcModel2			UTC-ModelSet2,			-- Model-2
	utcModel3			UTC-ModelSet3,			-- Model-3
	utcModel4			UTC-ModelSet4,			-- Model-4
	...,
	utcModel5-r12		UTC-ModelSet5-r12		-- Model-5
}

-- ASN1STOP

–	UTC-ModelSet1
-- ASN1START

UTC-ModelSet1 ::= SEQUENCE {
	gnss-Utc-A1			INTEGER (-8388608..8388607),
	gnss-Utc-A0			INTEGER (-2147483648..2147483647),
	gnss-Utc-Tot		INTEGER (0..255),
	gnss-Utc-WNt		INTEGER (0..255),
	gnss-Utc-DeltaTls	INTEGER (-128..127),
	gnss-Utc-WNlsf		INTEGER (0..255),
	gnss-Utc-DN			INTEGER (-128..127),
	gnss-Utc-DeltaTlsf	INTEGER (-128..127),
	...
}

-- ASN1STOP

UTC-ModelSet1 field descriptions
gnss-Utc-A1
Parameter A1, scale factor 2-50 seconds/second [4,7,8].
gnss-Utc-A0
Parameter A0, scale factor 2-30 seconds [4,7,8].
gnss-Utc-Tot
Parameter tot, scale factor 212 seconds [4,7,8].
gnss-Utc-WNt
Parameter WNt, scale factor 1 week [4,7,8].
gnss-Utc-DeltaTls
Parameter tLS, scale factor 1 second [4,7,8].
gnss-Utc-WNlsf
Parameter WNLSF, scale factor 1 week [4,7,8].
gnss-Utc-DN
Parameter DN, scale factor 1 day [4,7,8].
gnss-Utc-DeltaTlsf
Parameter tLSF, scale factor 1 second [4,7,8].

–	UTC-ModelSet2
-- ASN1START

UTC-ModelSet2 ::= SEQUENCE {
	utcA0				INTEGER (-32768..32767),
	utcA1				INTEGER (-4096..4095),
	utcA2				INTEGER (-64..63),
	utcDeltaTls			INTEGER (-128..127),
	utcTot				INTEGER (0..65535),
	utcWNot				INTEGER (0..8191),
	utcWNlsf			INTEGER (0..255),
	utcDN				BIT STRING (SIZE(4)),
	utcDeltaTlsf		INTEGER (-128..127),
	...
}

-- ASN1STOP

UTC-ModelSet2 field descriptions
utcA0
Parameter A0-n, bias coefficient of GNSS time scale relative to UTC time scale (seconds) [4,5,6,7].
Scale factor 2-35 seconds.
utcA1
Parameter A1-n, drift coefficient of GNSS time scale relative to UTC time scale (sec/sec) [4,5,6,7].
Scale factor 2-51 seconds/second.
utcA2
Parameter A2-n, drift rate correction coefficient of GNSS time scale relative to UTC time scale (sec/sec2) [4,5,6,7].
Scale factor 2-68 seconds/second2.
utcDeltaTls
Parameter tLS, current or past leap second count (seconds) [4,5,6,7].
Scale factor 1 second.
utcTot
Parameter tot, time data reference time of week (seconds) [4,5,6,7].
Scale factor 24 seconds.
utcWNot
Parameter WNot, time data reference week number (weeks) [4,5,6,7].
Scale factor 1 week.
utcWNlsf
Parameter WNLSF, leap second reference week number (weeks) [4,5,6,7].
Scale factor 1 week.
utcDN
Parameter DN, leap second reference day number (days) [4,5,6,7].
Scale factor 1 day.
utcDeltaTlsf
Parameter tLSF, current or future leap second count (seconds) [4,5,6,7].
Scale factor 1 second.

–	UTC-ModelSet3
-- ASN1START

UTC-ModelSet3 ::= SEQUENCE {
	nA					INTEGER (1..1461),
	tauC				INTEGER (-2147483648..2147483647),
	b1					INTEGER (-1024..1023)					OPTIONAL,	-- Cond GLONASS-M
	b2					INTEGER (-512..511)					OPTIONAL,	-- Cond GLONASS-M
	kp					BIT STRING (SIZE(2))					OPTIONAL,	-- Cond GLONASS-M
	...
}

-- ASN1STOP

Conditional presence
Explanation
GLONASS-M
The field is mandatory present if GLONASS-M satellites are present in the current GLONASS constellation; otherwise it is not present.

UTC-ModelSet3 field descriptions
nA
Parameter NA, calendar day number within four-year period beginning since the leap year (days) [9].
Scale factor 1 day.
tauC
Parameter c, GLONASS time scale correction to UTC(SU) (seconds) [9].
Scale factor 2-31 seconds.
b1
Parameter B1, coefficient to determine UT1 (seconds) [9].
Scale factor 2-10 seconds.
b2
Parameter B2, coefficient to determine UT1 (seconds/msd) [9].
Scale factor 2-16 seconds/msd.
kp
Parameter KP, notification of expected leap second correction (dimensionless) [9].

–	UTC-ModelSet4
-- ASN1START

UTC-ModelSet4 ::= SEQUENCE {
	utcA1wnt			INTEGER (-8388608..8388607),
	utcA0wnt			INTEGER (-2147483648..2147483647),
	utcTot				INTEGER (0..255),
	utcWNt				INTEGER (0..255),
	utcDeltaTls			INTEGER (-128..127),
	utcWNlsf			INTEGER (0..255),
	utcDN				INTEGER (-128..127),
	utcDeltaTlsf		INTEGER (-128..127),
	utcStandardID		INTEGER (0..7),
	...
}

-- ASN1STOP

UTC-ModelSet4 field descriptions
utcA1wnt
Parameter A1WNT, sec/sec ([10], Message Type 12).
Scale factor 2-50 seconds/second.
utcA0wnt
Parameter A0WNT, seconds ([10], Message Type 12).
Scale factor 2-30 seconds.
utcTot
Parameter tot, seconds ([10], Message Type 12).
Scale factor 212 seconds.
utcWNt
Parameter WNt, weeks ([10], Message Type 12).
Scale factor 1 week.
utcDeltaTls
Parameter tLS, seconds ([10], Message Type 12).
Scale factor 1 second.
utcWNlsf
Parameter WNLSF, weeks ([10], Message Type 12).
Scale factor 1 week.
utcDN
Parameter DN, days ([10], Message Type 12).
Scale factor 1 day.
utcDeltaTlsf
Parameter tLSF, seconds ([10], Message Type 12).
Scale factor 1 second.
utcStandardID
If GNSS-ID indicates 'sbas', this field indicates the UTC standard used for the SBAS network time indicated by SBAS‑ID to UTC relation as defined in the table Value of UTC Standard ID to UTC Standard relation shown below ([10], Message Type 12).

Value of UTC Standard ID to UTC Standard relation
Value of UTC Standard ID
UTC Standard
0
UTC as operated by the Communications Research Laboratory (CRL), Tokyo, Japan
1
UTC as operated by the National Institute of Standards and Technology (NIST)
2
UTC as operated by the U. S. Naval Observatory (USNO)
3
UTC as operated by the International Bureau of Weights and Measures (BIPM)
4-7
Reserved for future definition

–	UTC-ModelSet5
-- ASN1START

UTC-ModelSet5-r12 ::= SEQUENCE {
	utcA0-r12			INTEGER (-2147483648..2147483647),
	utcA1-r12			INTEGER (-8388608..8388607),
	utcDeltaTls-r12		INTEGER (-128..127),
	utcWNlsf-r12		INTEGER (0..255),
	utcDN-r12			INTEGER (0..255),
	utcDeltaTlsf-r12	INTEGER (-128..127),
	...
}

-- ASN1STOP

UTC-ModelSet5 field descriptions
utcA0
Parameter A0UTC, BDS clock bias relative to UTC, seconds [23].
Scale factor 2-30 seconds.
utcA1
Parameter A1UTC, BDS clock rate relative to UTC, sec/sec [23].
Scale factor 2-50 sec/sec.
utcDeltaTls
Parameter tLS, delta time due to leap seconds before the new leap second effective, seconds [23].
Scale factor 1 second.
utcWNlsf
Parameter WNLSF, week number of the new leap second, weeks [23].
Scale factor 1 week.
utcDN
Parameter DN, day number of week of the new leap second, days [23].
Scale factor 1 day.
utcDeltaTlsf
Parameter tLSF, delta time due to leap seconds after the new leap second effective, seconds [23].
Scale factor 1 second.

–	GNSS-AuxiliaryInformation
The IE GNSS-AuxiliaryInformation is used by the location server to provide additional information dependent on the GNSS‑ID. If GNSS-AuxiliaryInformation is provided together with other satellite dependent GNSS assistance data (i.e., any of GNSS-DifferentialCorrections, GNSS-NavigationModel, GNSS-DataBitAssistance, or GNSS-AcquisitionAssistance IEs), the GNSS-AuxiliaryInformation should be provided for the same satellites and in the same LPP message as the other satellite dependent GNSS assistance data.
-- ASN1START

GNSS-AuxiliaryInformation ::= CHOICE {
	gnss-ID-GPS		GNSS-ID-GPS,
	gnss-ID-GLONASS	GNSS-ID-GLONASS,
	...
}

GNSS-ID-GPS ::= SEQUENCE	(SIZE(1..64)) OF GNSS-ID-GPS-SatElement

GNSS-ID-GPS-SatElement ::= SEQUENCE {
	svID				SV-ID,
	signalsAvailable	GNSS-SignalIDs,
	...
}

GNSS-ID-GLONASS ::= SEQUENCE (SIZE(1..64)) OF GNSS-ID-GLONASS-SatElement

GNSS-ID-GLONASS-SatElement ::= SEQUENCE {
	svID				SV-ID,
	signalsAvailable	GNSS-SignalIDs,
	channelNumber		INTEGER (-7..13)		OPTIONAL,		-- Cond FDMA
	...
}	

-- ASN1STOP

Conditional presence
Explanation
FDMA
The field is mandatory present if the GLONASS SV indicated by svID broadcasts FDMA signals; otherwise it is not present.

GNSS-AuxiliaryInformation field descriptions
gnss-ID-GPS
This choice may only be present if GNSS-ID indicates GPS.
gnss-ID-GLONASS
This choice may only be present if GNSS-ID indicates GLONASS.
svID
This field specifies the GNSS SV for which the GNSS-AuxiliaryInformation is given.
signalsAvailable
This field indicates the ranging signals supported by the satellite indicated by svID. This field is given as a bit string as defined in GNSS-SignalIDs for a particular GNSS. If a bit is set to '1' it indicates that the satellite identified by svID transmits ranging signals according to the signal correspondence in GNSS-SignalIDs. If a bit is set to '0' it indicates that the corresponding signal is not supported on the satellite identified by svID.
channelNumber
This field indicates the GLONASS carrier frequency number of the satellite identified by svID, as defined in [9].

–	BDS-DifferentialCorrections
The IE BDS-DifferentialCorrections is used by the location server to provide differential corrections to the target device.
-- ASN1START

BDS-DifferentialCorrections-r12 ::= SEQUENCE {
	dbds-RefTime-r12			INTEGER (0..3599),
	bds-SgnTypeList-r12			BDS-SgnTypeList-r12,
	...
}

BDS-SgnTypeList-r12 ::= SEQUENCE (SIZE (1..3)) OF BDS-SgnTypeElement-r12

BDS-SgnTypeElement-r12 ::= SEQUENCE {
	gnss-SignalID				GNSS-SignalID				OPTIONAL,	-- Need ON
	dbds-CorrectionList-r12		DBDS-CorrectionList-r12,
	...
}

DBDS-CorrectionList-r12 ::= SEQUENCE (SIZE (1..64)) OF DBDS-CorrectionElement-r12

DBDS-CorrectionElement-r12 ::= SEQUENCE {
	svID						SV-ID,
	bds-UDREI-r12				INTEGER (0..15),
	bds-RURAI-r12				INTEGER (0..15),
	bds-ECC-DeltaT-r12			INTEGER (-4096..4095),
	...
}

-- ASN1STOP

BDS-DifferentialCorrections field descriptions
dbds-RefTime
This field specifies the time for which the differential corrections are valid, modulo 1 hour. dbds-RefTime is given in BDS system time.
Scale factor 1‑second.
bds-UDREI
This field indicates user differential range error information by user differential range error index (UDREI) as defined in [23], clause 5.3.3.7.2.
bds-RURAI
This field indicates Regional User Range Accuracy (RURA) information by Regional User Range Accuracy Index (UDREI) as defined in [23], clause 5.3.3.6.
bds-ECC-DeltaT
This field indicates the BDS differential correction information which is expressed in equivalent clock correction (t). Add the value of t to the observed pseudo-range to correct the effect caused by the satellite clock offset and ephemeris error. Value -4096 means the t is not available.
The scale factor is 0.1 meter.

–	BDS-GridModelParameter
-- ASN1START

BDS-GridModelParameter-r12 ::= SEQUENCE {
	bds-RefTime-r12			INTEGER (0..3599),
	gridIonList-r12			GridIonList-r12,
	...
}

GridIonList-r12 ::= SEQUENCE (SIZE (1..320)) OF GridIonElement-r12

GridIonElement-r12 ::= SEQUENCE {
	igp-ID-r12				INTEGER (1..320),
	dt-r12					INTEGER (0..511),
	givei-r12				INTEGER (0..15) ,
	...
}

-- ASN1STOP

BDS-GridModelParamater field descriptions
bds-RefTime
This field specifies the time for which the grid model parameters are valid, modulo 1 hour. bds-RefTime is given in BDS system time.
Scale factor 1‑second.
gridIonList
This list provides ionospheric grid point information for each grid point. Up to 16 instances are used in this version of the specification. The values 17 to 320 are reserved for future use. 
igp-ID
This field indicates the ionospheric grid point (IGP) number as defined in [23], clause 5.3.3.8.
dt
This field indicates dT as defined in [23], clause 5.3.3.8.1, i.e. the vertical delay at the corresponding IGP indicated by igp-ID.
The scale factor is 0.125 meter.
givei
This field indicates the Grid Ionospheric Vertical Error Index (GIVEI) which is used to describe the delay correction accuracy at ionospheric grid point indicated by igp-ID, the mapping between GIVEI and GIVE is defined in [23], clause 5.3.3.8.2.

–	GNSS-RTK-Observations
The IE GNSS-RTK-Observations is used by the location server to provide GNSS reference station observables (pseudorange, phaserange, phaserange-rate (Doppler), and carrier-to-noise ratio) of the GNSS signals. Essentially, these parameters describe the range and derivatives from respective satellites to the reference station location provided in IE GNSS-RTK-ReferenceStationInfo.
The parameters provided in IE GNSS-RTK-Observations are used as specified for message type 1071-1127 in [30].
-- ASN1START

GNSS-RTK-Observations-r15 ::= SEQUENCE {
	epochTime-r15							GNSS-SystemTime,
	gnss-ObservationList-r15				GNSS-ObservationList-r15,
	...
}

GNSS-ObservationList-r15 ::= SEQUENCE (SIZE(1..64)) OF GNSS-RTK-SatelliteDataElement-r15

GNSS-RTK-SatelliteDataElement-r15 ::= SEQUENCE{
	svID-r15								SV-ID,
	integer-ms-r15							INTEGER (0..254)				OPTIONAL,	-- Need ON
	rough-range-r15							INTEGER (0..1023),
	rough-phase-range-rate-r15				INTEGER (-8192..8191)			OPTIONAL,	-- Need ON
	gnss-rtk-SatelliteSignalDataList-r15	GNSS-RTK-SatelliteSignalDataList-r15,
	...
}

GNSS-RTK-SatelliteSignalDataList-r15 ::= SEQUENCE (SIZE(1..24)) OF
														GNSS-RTK-SatelliteSignalDataElement-r15


GNSS-RTK-SatelliteSignalDataElement-r15 ::= SEQUENCE {
	gnss-SignalID-r15					GNSS-SignalID,
	fine-PseudoRange-r15				INTEGER (-524288..524287),
	fine-PhaseRange-r15					INTEGER (-8388608..8388607),
	lockTimeIndicator-r15				INTEGER (0..1023),
	halfCycleAmbiguityIndicator-r15		BIT STRING (SIZE (1)),
	carrier-to-noise-ratio-r15			INTEGER (0..1023)					OPTIONAL,	-- Need ON
	fine-PhaseRangeRate-r15				INTEGER (-16384..16383)				OPTIONAL,	-- Need ON
	...
}

-- ASN1STOP

GNSS-RTK-Observations field descriptions
epochTime
This field specifies the epoch time of the observations. The gnss-TimeID in GNSS SystemTime shall be the same as the GNSS-ID in IE GNSS-GenericAssistDataElement.
svID
This field specifies the GNSS SV‑ID of the satellite for which the GNSS Observations are provided.
integer-ms
This field contains the integer number of milliseconds in the satellite rough range. Rough range can be used to restore complete observables for a given satellite.
Scale factor 1 milli-second in the range from 0 to 254 milli-seconds.
rough-range
This field contains the sub-milliseconds in the satellite rough range (modulo 1 millisecond).
Scale factor 2-10 milli-seconds in the range from 0 to (1-2-10) milli-seconds.
rough-phase-range-rate
This field contains the GNSS satellite rough phaserange rate.
Scale factor 1 m/s. Range ±8191 m/s.
gnss-SignalID
This field specifies the GNSS signal for which the GNSS observations are provided.
fine-PseudoRange
This field contains the GNSS signal fine pseudorange.
Being added to fields integer-ms and rough-range allows getting the full pseudorange observable corresponding to given signal. NOTE 1.
Scale factor 2–29 milli-seconds. Range ±(2–10–2–29) milli-seconds.
fine-PhaseRange
This field contains the GNSS signal fine phaserange.
Being added to fields integer-ms and rough-range allows getting the full phaserange observable corresponding to given signal. NOTE 2.
Scale factor 2–31 milli-seconds. Range ±(2–8–2–31) milli-seconds.
lockTimeIndicator
This field provides a measure of the amount of time during which the receiver has maintained continuous lock on that satellite signal. If a cycle slip occurs during the previous measurement cycle, the lock time indicator shall be reset to zero.
Mapping according to the table lockTimeIndicator value to interpretation lock-time relation shown below.
halfCycleAmbiguityIndicator
Value 0 indicates no half-cycle ambiguity. Value 1 indicates half-cycle ambiguity.
When providing phaserange with unresolved polarity encoding this bit shall be set to 1. A target device that is not capable of handling half-cycle ambiguities shall skip such phaserange observables. If polarity resolution forced phaserange to be corrected by half-a-cycle, then the lockTimeIndicator must be reset to zero, indicating that despite continuous tracking the final phaserange experienced non-continuity.
carrier-to-noise-ratio
This field provides the GNSS signal carrier-to-noise-ratio in dB-Hz.
Scale factor 2–4 dB-Hz in the range from 0.0625 to 63.9375 dB-Hz.
fine-PhaseRangeRate
This field contains the GNSS signal fine Phase Range Rate.
Full phaserange rate is the sum of this field and the rough-phase-range-rate field. NOTE 3.
Scale factor 0.0001 m/s. Range ±1.6383 m/s. 

NOTE 1:	Complete Pseudorange for each signal (i) of given satellite can be restored as follows: 
Pseudorange(i) = c/1000 × (integer-ms + rough_range/1024 + 2–29 × fine_Pseudorange(i)), meter.
NOTE 2: 	Complete Phaserange for each signal (i) of given satellite can be restored as follows:
Phaserange(i) = c/1000 × (integer-ms + rough_range/1024 + 2–31 × fine_Phaserange(i)), meter.
NOTE 3: 	Complete PhaseRangeRate for each signal (i) of given satellite can be restored as follows:
PhaseRangeRate(i) = rough-phase-range-rate + 0.0001*fine-PhaseRangeRate (i), meter/sec.
NOTE 4:	The speed of light c is 299,792,458 meters per second.
lockTimeIndicator value to interpretation lock-time relation
Indicator (i)
Supplementary coefficient (k)
Minimum Lock Time (ms)
Range of Indicated Lock Times (t) (ms)
0 – 63
1
i
0 ≤ t < 64
64 – 95
2
2 × i – 64
64 ≤ t < 128
96 – 127
4
4 × i – 256
128 ≤ t < 256
128 – 159
8
8 × i – 768
256 ≤ t < 512
160 – 191
16
16 × i – 2048
512 ≤ t < 1024
192 – 223
32
32 × i – 5120
1024 ≤ t < 2048
224 – 255
64
64 × i – 12288
2048 ≤ t < 4096
256 – 287
128
128 × i – 28672
4096 ≤ t < 8192
288 – 319
256
256 × i – 65536
8192 ≤ t < 16384
320 – 351
512
512 × i – 147456
16384 ≤ t < 32768
352 – 383
1024
1024 × i – 327680
32768 ≤ t < 65536
384 – 415
2048
2048 × i – 720896
65536 ≤ t < 131072
416 – 447
4096
4096 × i – 1572864
131072 ≤ t < 262144
448 – 479
8192
8192 × i – 3407872
262144 ≤ t < 524288
480 – 511
16384
16384 × i – 7340032
524288 ≤ t < 1048576
512 – 543
32768
32768 × i – 15728640
1048576 ≤ t < 2097152
544 – 575
65536
65536 × i – 33554432
2097152 ≤ t < 4194304
576 – 607
131072
131072 × i – 71303168
4194304 ≤ t < 8388608
608 – 639
262144
262144 × i – 150994944
8388608 ≤ t < 16777216
640 – 671
524288
524288 × i – 318767104
16777216 ≤ t < 33554432
672 – 703
1048576
1048576 × i – 671088640
33554432 ≤ t < 67108864
704
2097152
2097152 × i – 1409286144
67108864 ≤ t
705 – 1023
Reserved

–	GLO-RTK-BiasInformation
The IE GLO-RTK-BiasInformation is used by the location server to provide the so-called "GLONASS Code-Phase bias values" (CPB) for up to all FDMA GLONASS observations.
If IE GNSS-RTK-Observations for gnss-ID = glonass are provided, but IE GLO-RTK-BiasInformation is not provided, the target device assumes that the CPB information has been applied to the GLONASS observation data a priori.
The parameters provided in IE GLO-RTK-BiasInformation are used as specified for message type 1230 in [30].
-- ASN1START

GLO-RTK-BiasInformation-r15 ::= SEQUENCE{
	referenceStationID-r15		GNSS-ReferenceStationID-r15,
	cpbIndicator-r15			BIT STRING (SIZE(1)),
	l1-ca-cpBias-r15			INTEGER (-32768..32767)			OPTIONAL,		-- Need ON
	l1-p-cpBias-r15				INTEGER (-32768..32767)			OPTIONAL, 		-- Need ON
	l2-ca-cpBias-r15			INTEGER (-32768..32767)			OPTIONAL, 		-- Need ON
	l2-p-cpBias-r15				INTEGER (-32768..32767)			OPTIONAL, 		-- Need ON
	...
}

-- ASN1STOP

GLO-RTK-BiasInformation field descriptions
referenceStationID
This field specifies the Station ID for which the GLO-RTK-BiasInformation is provided.
cpbIndicator
This field specifies the GLONASS Code-Phase Bias Indicator. The interpretation of the value is as follows:
	0 – The GLONASS Pseudorange and Phaserange observations in IE GNSS-RTK-Observations are not aligned to 		the same measurement epoch.
	1 – The GLONASS Pseudorange and Phaserange observations in IE GNSS-RTK-Observations are aligned to the 		same measurement epoch.
l1-ca-cpBias
This field specifies the GLONASS L1 C/A Code-Phase Bias, which represents the offset between the L1 C/A Pseudorange and L1 Phaserange measurement epochs in meters.
If cpbIndicator is set to 0, the measurement epoch of the GLONASS L1 Phaserange measurements may be aligned using:
	Aligned GLONASS L1 Phaserange = Full GLONASS L1 Phaserange + GLONASS L1 C/A Code-Phase Bias.
If cpbIndicator is set to 1, the measurement epoch of the GLONASS L1 Phaserange measurements may be unaligned using:
	Unaligned GLONASS L1 Phaserange = Full GLONASS L1 Phaserange – GLONASS L1 C/A Code-Phase Bias.
Scale factor 0.02 m. Range ±655.34 m. 
l1-p-cpBias
This field specifies the GLONASS L1 P Code-Phase Bias, which represents the offset between the L1 P Pseudorange and L1 Phaserange measurement epochs in meters.
If cpbIndicator is set to 0, the measurement epoch of the GLONASS L1 Phaserange measurements may be aligned using:
	Aligned GLONASS L1 Phaserange = Full GLONASS L1 Phaserange + GLONASS L1 P Code-Phase Bias.
If cpbIndicator is set to 1, the measurement epoch of the GLONASS L1 Phaserange measurements may be unaligned using:
	Unaligned GLONASS L1 Phaserange = Full GLONASS L1 Phaserange – GLONASS L1 P Code-Phase Bias.
Scale factor 0.02 m. Range ±655.34 m.
l2-ca-cpBias
This field specifies the GLONASS L2 C/A Code-Phase Bias, which represents the offset between the L2 C/A Pseudorange and L2 Phaserange measurement epochs in meters.
If cpbIndicator is set to 0, the measurement epoch of the GLONASS L2 Phaserange measurements may be aligned using:
	Aligned GLONASS L2 Phaserange = Full GLONASS L2 Phaserange + GLONASS L2 C/A Code-Phase Bias.
If cpbIndicator is set to 1, the measurement epoch of the GLONASS L2 Phaserange measurements may be unaligned using:
	Unaligned GLONASS L2 Phaserange = Full GLONASS L2 Phaserange – GLONASS L2 C/A Code-Phase Bias.
Scale factor 0.02 m. Range ±655.34 m.
l2-p-cpBias
This field specifies the GLONASS L2 P Code-Phase Bias, which represents the offset between the L2 P Pseudorange and L2 Phaserange measurement epochs in meters.
If cpbIndicator is set to 0, the measurement epoch of the GLONASS L2 Phaserange measurements may be aligned using:
	Aligned GLONASS L2 Phaserange = Full GLONASS L2 Phaserange + GLONASS L2 P Code-Phase Bias.
If cpbIndicator is set to 1, the measurement epoch of the GLONASS L2 Phaserange measurements may be unaligned using:
	Unaligned GLONASS L2 Phaserange = Full GLONASS L2 Phaserange – GLONASS L2 P Code-Phase Bias.
Scale factor 0.02 m. Range ±655.34 m.

–	GNSS-RTK-MAC-CorrectionDifferences
The IE GNSS-RTK-MAC-CorrectionDifferences is used by the location server to provide dispersive (ionospheric) and non-dispersive (geometric) correction difference components for up to 32 pairs of Auxiliary and Master Reference Stations. The Master Reference Station coordinates are provided in IE GNSS-RTK-ReferenceStationInfo and the Auxiliary Station coordinates are provided in IE GNSS-RTK-AuxiliaryStationData.
The parameters provided in IE GNSS-RTK-MAC-CorrectionDifferences are used as specified for message type 1017 and 1039 in [30] and apply to all GNSS.
-- ASN1START

GNSS-RTK-MAC-CorrectionDifferences-r15 ::= SEQUENCE {
	networkID-r15						GNSS-NetworkID-r15,
	subNetworkID-r15					GNSS-SubNetworkID-r15				OPTIONAL,	-- Need ON
	master-ReferenceStationID-r15		GNSS-ReferenceStationID-r15,
	l1-r15								GNSS-FrequencyID-r15				OPTIONAL,	-- Need OP
	l2-r15								GNSS-FrequencyID-r15				OPTIONAL,	-- Need OP
	rtkCorrectionDifferencesList-r15	RTK-CorrectionDifferencesList-r15,
	...
}

RTK-CorrectionDifferencesList-r15 ::= SEQUENCE (SIZE (1..32)) OF
											RTK-CorrectionDifferencesElement-r15

RTK-CorrectionDifferencesElement-r15 ::= SEQUENCE {
	epochTime-r15							GNSS-SystemTime,
	auxiliary-referenceStationID-r15		GNSS-ReferenceStationID-r15,
	geometric-ionospheric-corrections-differences-r15	
											Geometric-Ionospheric-Corrections-Differences-r15,
	...
}

Geometric-Ionospheric-Corrections-Differences-r15 ::= SEQUENCE (SIZE(1..64)) OF
									Geometric-Ionospheric-Corrections-Differences-Element-r15

Geometric-Ionospheric-Corrections-Differences-Element-r15 ::= SEQUENCE {
	svID-r15										SV-ID,
	ambiguityStatusFlag-r15							INTEGER (0..3),
	non-synch-count-r15								INTEGER (0..7),
	geometricCarrierPhaseCorrectionDifference-r15	INTEGER (-65536..65535),
	iod-r15											BIT STRING (SIZE(11)),
	ionosphericCarrierPhaseCorrectionDifference-r15	INTEGER (-65536..65535),
	...
}

-- ASN1STOP

GNSS-RTK-MAC-CorrectionDifferences field descriptions
networkID
This field provides the network ID. 
subNetworkID
This field identifies the subnetwork of a network identified by networkID. 
master-ReferenceStationID
This field specifies the station ID of the Master Reference Station.
l1, l2
These fields specify the dual-frequency combination of L1 and L2 link/frequencies for which the rtkCorrectionDifferencesList is provided. If the fields are absent, the default interpretation in table 'L1/L2 default interpretation' applies.
rtkCorrectionDifferencesList
This field provides the correction differences for Auxiliary-Master Reference Station pairs.
epochTime
This field specifies the epoch time of observations used to derive the correction differences. The gnss-TimeID in GNSS‑SystemTime shall be the same as the GNSS-ID in IE GNSS-GenericAssistDataElement.
auxiliary-referenceStationID
This field specifies the station ID of the Auxiliary Reference Station.
svID
This field specifies the satellite for which the data is provided.
ambiguityStatusFlag
This field provides the ambiguity status. 'L1' below corresponds to the link indicated by the l1 field; 'L2' below corresponds to the link indicated by the l2 field.
0 - Reserved for future use (artificial observations)
1 - Correct Integer Ambiguity Level for L1 and L2
2 - Correct Integer Ambiguity Level for L1-L2 widelane
3 - Uncertain Integer Ambiguity Level. Only a likely guess is used.
non-synch-count
This field provides the count of unrecoverable cycle slips. Whenever an unrecoverable cycle slip occurs this count shall be increased. The counter shall not be increased more than once per minute. Data for satellites with cycle slips more frequent than once per minute should not be provided.
geometricCarrierPhaseCorrectionDifference
This field provides the Geometric Carrier Phase Correction Difference (GCPCD), which is the Correction Difference for the geometric part (troposphere and orbits) calculated based on integer leveled L1 and L2 correction differences (L1CD and L2CD).

L1CD, L2CD, and ICPCD are presented in meters. 'L1' below corresponds to the link indicated by the l1 field; 'L2' below corresponds to the link indicated by the l2 field.
Scale factor 0.5 milli-meter; range ±32.767 meters.
iod
This field specifies the IOD value of the broadcast ephemeris used for calculation of Correction Differences (see IE GNSS-NavigationModel). 
ionosphericCarrierPhaseCorrectionDifference
This field provides the Ionospheric Carrier Phase Correction Difference (ICPCD), which is the Correction Difference for the ionospheric part calculated based on integer leveled L1 and L2 correction differences (L1CD and L2CD).

L1CD, L2CD, and ICPCD are presented in meters. 'L1' below corresponds to the link indicated by the l1 field; 'L2' below corresponds to the link indicated by the l2 field.
Scale factor 0.5 milli-meter; range ±32.767 meters.

L1/L2 default interpretation
GNSS
l1
l2
GPS
L1
L2
SBAS
L1
L5
QZSS
L1
L2
Galileo
E1
E5a
GLONASS
G1
G2
BDS
B1
B2

–	GNSS-RTK-Residuals
The IE GNSS-RTK-Residuals is used by the location server to provide Network RTK correction residual error information.
If the interpolation of the corrections for the target device location is performed at the location server, resulting in a non-physical reference station, the GNSS-RTK-Residuals are referenced to the non-physical reference station.
If the interpolation of the corrections is performed by the target device (e.g., using GNSS‑RTK‑MAC‑CorrectionDifferences), the GNSS-RTK-Residuals are referenced to the closest master or auxiliary station to the target device.
The parameters provided in IE GNSS-RTK-Residuals are used as specified for message type 1030 and 1031 in [30] and apply to all GNSS.
-- ASN1START

GNSS-RTK-Residuals-r15 ::= SEQUENCE {
	epochTime-r15						GNSS-SystemTime,
	referenceStationID-r15				GNSS-ReferenceStationID-r15,
	n-Refs-r15							INTEGER (0..127),
	l1-r15								GNSS-FrequencyID-r15				OPTIONAL,	-- Need OP
	l2-r15								GNSS-FrequencyID-r15				OPTIONAL,	-- Need OP
	rtk-residuals-list-r15				RTK-Residuals-List-r15,
	...
}

RTK-Residuals-List-r15 ::= SEQUENCE (SIZE(1..64)) OF RTK-Residuals-Element-r15

RTK-Residuals-Element-r15 ::= SEQUENCE {
	svID-r15			SV-ID,
	s-oc-r15			INTEGER (0..255),
	s-od-r15			INTEGER (0..511),
	s-oh-r15			INTEGER (0..63),
	s-lc-r15			INTEGER (0..1023),
	s-ld-r15			INTEGER (0..1023),
	...
}

-- ASN1STOP

GNSS-RTK-Residuals field descriptions
epochTime
This field specifies the epoch time of the Network RTK Residual Error data. The gnss-TimeID in GNSS‑SystemTime shall be the same as the GNSS-ID in IE GNSS-GenericAssistDataElement.
referenceStationID
This field specifies the Reference Station ID. The Reference Station may be a physical or non-physical station.
n-Refs
This field specifies the number of reference stations used to derive the residual statistics (1 to 127; 127 indicates 127 or more stations). The number of reference stations should never be zero. If zero is encountered the target device should ignore the message.
l1, l2
These fields specify the dual-frequency combination of L1 and L2 link/frequencies for which the rtk residuals-list is provided. If the fields are absent, the default interpretation in table 'L1/L2 default interpretation' in IE GNSS‑RTK‑MAC‑CorrectionDifferences applies.
svID
This field specifies the satellite for which the data is provided.
s-oc
This field specifies the constant term of standard deviation (1 sigma) for non-dispersive interpolation residuals, s0c.
Scale factor 0.5 milli-meter; range 0–127 milli-meter. NOTE 1.
s-od
This field specifies the distance dependent term of standard deviation (1 sigma) for nondispersive interpolation residuals, s0d.
Scale factor 0.01 ppm; range 0–5.11 ppm. NOTE 1.
s-oh
This field specifies the height dependent term of standard deviation (1 sigma) for nondispersive interpolation residuals, s0h.
Scale factor 0.1 ppm; range 0–5.1 ppm. NOTE 1.
s-lc
This field specifies the constant term of standard deviation (1 sigma) for dispersive interpolation residuals (as affecting L1 frequency), slc. 'L1' corresponds to the link indicated by the l1 field.
Scale factor 0.5 milli-meter; range 0–511 milli-meter
s-ld
This field specifies the distance dependent term of standard deviation (1 sigma) for dispersive interpolation residuals (as affecting L1 frequency), sld. 'L1' corresponds to the link indicated by the l1 field. NOTE 2.

NOTE 1: 	The complete standard deviation for the expected non-dispersive interpolation residual is computed from s-oc, s-od and s-oh using the formula:

where dRef is the distance of the target device from the nearest physical reference station in [km] and |dhRef| is the absolute value of the height difference between the nearest physical reference station and the target device in [km].
NOTE 2:	The complete standard deviation for the expected dispersive interpolation residual is computed from s-lc and s-ld using the formula:

where dRef is the distance of the target device from the nearest physical reference station in [km]. 
The standard deviation for the L2 frequency is calculated using the formula:
. 'L2' corresponds to the link indicated by the l2 field; c/f1c/f2 are the nominal wavelengths of the links indicated by the l1, l2 fields, respectively.
–	GNSS-RTK-FKP-Gradients
The IE GNSS-RTK-FKP-Gradients is used by the location server to provide the FKP Network RTK gradients of distance-dependent errors like ionosphere, troposphere and orbits. The target device may use the gradients to compute the influence of the distance dependent errors for its own position.
The parameters provided in IE GNSS-RTK-FKP-Gradients are used as specified for message type 1034 and 1035 in [30] and apply to all GNSS.
-- ASN1START

GNSS-RTK-FKP-Gradients-r15 ::= SEQUENCE {
	referenceStationID-r15				GNSS-ReferenceStationID-r15,
	epochTime-r15						GNSS-SystemTime,
	l1-r15								GNSS-FrequencyID-r15				OPTIONAL,	-- Need OP
	l2-r15								GNSS-FrequencyID-r15				OPTIONAL,	-- Need OP
	fkp-gradients-list-r15				FKP-Gradients-List-r15,
	...
}

FKP-Gradients-List-r15 ::= SEQUENCE (SIZE(1..64)) OF FKP-Gradients-Element-r15

FKP-Gradients-Element-r15 ::= SEQUENCE {
	svID-r15							SV-ID,
	iod-r15								BIT STRING (SIZE(11)),
	north-geometric-gradient-r15		INTEGER (-2048..2047),
	east-geometric-gradient-r15			INTEGER (-2048..2047),
	north-ionospheric-gradient-r15		INTEGER (-8192..8191),
	east-ionospheric-gradient-r15		INTEGER (-8192..8191),
	...
}

-- ASN1STOP

GNSS-RTK-FKP-Gradients field descriptions
referenceStationID
This field specifies the Reference Station ID. The Reference Station may be a physical or non-physical station.
epochTime
This field specifies the epoch time of the FKP data. The gnss-TimeID in GNSS‑SystemTime shall be the same as the GNSS-ID in IE GNSS-GenericAssistDataElement.
l1, l2
These fields specify the dual-frequency combination of L1 and L2 link/frequencies for which the fkp-gradients-list is provided. If the fields are absent, the default interpretation in table 'L1/L2 default interpretation' in IE GNSS‑RTK‑MAC‑CorrectionDifferences applies. NOTE.
svID
This field specifies the satellite for which the data is provided.
iod
This field specifies the IOD value of the broadcast ephemeris used for calculation of FKP data (see IE GNSS‑NavigationModel).
north-geometric-gradient
This field specifies the gradient (FKP) of the geometric (non-dispersive) error components in South-North direction in parts per million of the south-north distance to the reference station.
Scale factor 0.01 ppm; range ±20.47 ppm.
east-geometric-gradient
This field specifies the gradient (FKP) of the geometric (non-dispersive) error components in West-East direction in parts per million of the west-east distance to the reference station.
Scale factor 0.01 ppm; range ±20.47 ppm.
north-ionospheric-gradient
This field specifies the gradient (FKP) of the ionospheric (dispersive) error component in South-North direction.
Scale factor 0.01 ppm; range ±81.91 ppm.
east-ionospheric-gradient
This field specifies the gradient (FKP) of the ionospheric (dispersive) error component in West-East direction.
Scale factor 0.01 ppm; range ±81.91 ppm.

NOTE:	As described in [30], the distance dependent error for the geometric part 0 and ionospheric part I is computed from the gradients provided in FKP-Gradients-Element. The distance dependent error for a carrier phase measurements Ф on a signal with frequency f can be computed by:

where f1, f is the link/frequency indicated by the l1, l2 fields, respectively.

–	GNSS-SSR-OrbitCorrections
The IE GNSS-SSR-OrbitCorrections is used by the location server to provide radial, along-track and cross-track orbit corrections. The target device may use the parameters to compute a satellite position correction to be combined with the satellite position calculated from broadcast ephemeris.
The parameters provided in IE GNSS-SSR-OrbitCorrections are used as specified for SSR Clock Messages (e.g., message type 1057 and 1063) in [30] and apply to all GNSS.
-- ASN1START

GNSS-SSR-OrbitCorrections-r15 ::= SEQUENCE {
	epochTime-r15						GNSS-SystemTime,
	ssrUpdateInterval-r15				INTEGER (0..15),
	satelliteReferenceDatum-r15			ENUMERATED { itrf, regional, ... },
	iod-ssr-r15							INTEGER (0..15),
	ssr-OrbitCorrectionList-r15			SSR-OrbitCorrectionList-r15,
	...
}

SSR-OrbitCorrectionList-r15 ::= SEQUENCE (SIZE(1..64)) OF SSR-OrbitCorrectionSatelliteElement-r15

SSR-OrbitCorrectionSatelliteElement-r15 ::= SEQUENCE {
	svID-r15							SV-ID,
	iod-r15								BIT STRING (SIZE(11)),
	delta-radial-r15					INTEGER (-2097152..2097151),
	delta-AlongTrack-r15				INTEGER (-524288..524287),
	delta-CrossTrack-r15				INTEGER (-524288..524287),
	dot-delta-radial-r15				INTEGER (-1048576..1048575)				OPTIONAL,
	dot-delta-AlongTrack-r15			INTEGER (-262144..262143) 				OPTIONAL,
	dot-delta-CrossTrack-r15			INTEGER (-262144..262143) 				OPTIONAL,
	...
}

-- ASN1STOP

GNSS-SSR-OrbitCorrections field descriptions
epochTime
This field specifies the epoch time of the orbit corrections. The gnss-TimeID in GNSS-SystemTime shall be the same as the GNSS-ID in IE GNSS-GenericAssistDataElement. 
ssrUpdateInterval
This field specifies the SSR Update Interval. The SSR Update Intervals for all SSR parameters start at time 00:00:00 of the GPS time scale. A change of the SSR Update Interval during the transmission of SSR data should ensure consistent data for a target device. See table Value to SSR Update Interval Relation below. NOTE 1.
satelliteReferenceDatum
This field specifies the satellite refence datum for the orbit corrections.
iod-ssr
This field specifies the Issue of Data number for the SSR data. A change of iod-ssr is used to indicate a change in the SSR generating configuration. 
svID
This field specifies the satellite for which the orbit corrections are provided.
iod
This field specifies the IOD value of the broadcast ephemeris for which the orbit corrections are valid (see IE GNSS‑NavigationModel). NOTE 2.
delta-radial
This field specifies the radial orbit correction for broadcast ephemeris. NOTE 3.
Scale factor 0.1 mm; range ±209.7151 m.
delta-AlongTrack
This field specifies the along-track orbit correction for broadcast ephemeris. NOTE 3.
Scale factor 0.4 mm; range ±209.7148 m.
delta-CrossTrack
This field specifies the cross-track orbit correction for broadcast ephemeris. NOTE 3.
Scale factor 0.4 mm; range ±209.7148 m.
dot-delta-radial
This field specifies the velocity of radial orbit correction for broadcast ephemeris. NOTE 3.
Scale factor 0.001 mm/s; range ±1.048575 m/s.
dot-delta-AlongTrack
This field specifies the velocity of along-track orbit correction for broadcast ephemeris. NOTE 3.
Scale factor 0.004 mm/s; range ±1.048572 m/s.
dot-delta-CrossTrack
This field specifies the velocity of cross-track orbit correction for broadcast ephemeris. NOTE 3.
Scale factor 0.004 mm/s; range ±1.048572 m/s.

NOTE 1: 	The update intervals are aligned to the GPS time scale for all GNSS in order to allow synchronous operation for multiple GNSS services. This means that the update intervals may not be aligned to the beginning of the day for another GNSS. Due to the leap seconds, this is generally the case for GLONASS.
NOTE 2:	In case the gnss-ID indicates 'gps' or 'qzss', the iod refers to the NAV broadcast ephemeris (GPS L1 C/A or QZSS QZS-L1, respectively, in table GNSS to iod Bit String(11) relation in IE GNSS‑NavigationModel).
NOTE 3: 	The reference time t0 is epochTime + ½ × ssrUpdateInterval. The reference time t0 for ssrUpdateInterval '0' is epochTime.
Value to SSR Update Interval Relation
Value of ssrUpdateInterval
SSR Update Interval
0
1 second
1
2 seconds
2
5 seconds
3
10 seconds
4
15 seconds
5
30 seconds
6
60 seconds
7
120 seconds
8
240 seconds
9
300 seconds
10
600 seconds
11
900 seconds
12
1800 seconds
13
3600 seconds
14
7200 seconds
15
10800 seconds

–	GNSS-SSR-ClockCorrections
The IE GNSS-SSR-ClockCorrections is used by the location server to provide clock correction parameters. The target device may use the parameters to compute a clock correction to be applied to the broadcast satellite clock parameters, identified by iod of corresponding GNSS-SSR-OrbitCorrections.
The parameters provided in IE GNSS-SSR-ClockCorrections are used as specified for SSR Clock Messages (e.g., message type 1058 and 1064) in [30] and apply to all GNSS.
-- ASN1START

GNSS-SSR-ClockCorrections-r15 ::= SEQUENCE {
	epochTime-r15						GNSS-SystemTime,
	ssrUpdateInterval-r15				INTEGER (0..15),
	iod-ssr-r15							INTEGER (0..15),
	ssr-ClockCorrectionList-r15			SSR-ClockCorrectionList-r15,
	...
}

SSR-ClockCorrectionList-r15 ::= SEQUENCE (SIZE(1..64)) OF SSR-ClockCorrectionSatelliteElement-r15

SSR-ClockCorrectionSatelliteElement-r15 ::= SEQUENCE {
	svID-r15							SV-ID,
	delta-Clock-C0-r15					INTEGER (-2097152..2097151),
	delta-Clock-C1-r15					INTEGER (-1048576..1048575)			OPTIONAL,
	delta-Clock-C2-r15					INTEGER (-67108864..67108863)		OPTIONAL,
	...
}

-- ASN1STOP

GNSS-SSR-ClockCorrections field descriptions
epochTime
This field specifies the epoch time of the clock corrections. The gnss-TimeID in GNSS-SystemTime shall be the same as the GNSS-ID in IE GNSS-GenericAssistDataElement. 
ssrUpdateInterval
This field specifies the SSR Update Interval. The SSR Update Intervals for all SSR parameters start at time 00:00:00 of the GPS time scale. A change of the SSR Update Interval during the transmission of SSR data should ensure consistent data for a target device. See table Value to SSR Update Interval Relation in IE GNSS‑SSR‑OrbitCorrections.
iod-ssr
This field specifies the Issue of Data number for the SSR data. A change of iod-ssr is used to indicate a change in the SSR generating configuration. 
svID
This field specifies the satellite for which the clock corrections are provided.
delta-Clock-C0
This field specifies the C0 polynomial coefficient for correction of broadcast satellite clock. NOTE 1.
Scale factor 0.1 mm; range ±209.7151 m.
delta-Clock-C1
This field specifies the C1 polynomial coefficient for correction of broadcast satellite clock. NOTE 1.
Scale factor 0.001 mm/s; range ±1.048575 m/s.
delta-Clock-C2
This field specifies the C2 polynomial coefficient for correction of broadcast satellite clock. NOTE 1.
Scale factor 0.00002 mm/s2; range ±1.34217726 m/s2.

NOTE 1: 	The reference time t0 is epochTime + ½ × ssrUpdateInterval. The reference time t0 for ssrUpdateInterval '0' is epochTime.
–	GNSS-SSR-CodeBias
The IE GNSS-SSR-CodeBias is used by the location server to provide GNSS signal code bias. The target device may add the code bias to the pseudo-range measurement of the corresponding code signal to get corrected pseudo-ranges.
NOTE:	Any code biases transmitted in the broadcast messages (e.g., the GPS group delay differential TGD [4] (NAV‑ClockModel)) are not applied at all by the target device.
The parameters provided in IE GNSS-SSR-CodeBias are used as specified for SSR Code Bias Messages (e.g., message type 1059 and 1065) in [30] and apply to all GNSS.
-- ASN1START

GNSS-SSR-CodeBias-r15 ::= SEQUENCE {
	epochTime-r15						GNSS-SystemTime,
	ssrUpdateInterval-r15				INTEGER (0..15),
	iod-ssr-r15							INTEGER (0..15),
	ssr-CodeBiasSatList-r15				SSR-CodeBiasSatList-r15,
	...
}

SSR-CodeBiasSatList-r15 ::= SEQUENCE (SIZE(1..64)) OF SSR-CodeBiasSatElement-r15

SSR-CodeBiasSatElement-r15 ::= SEQUENCE {
	svID-r15							SV-ID,
	ssr-CodeBiasSignalList-r15			SSR-CodeBiasSignalList-r15,
	...
}

SSR-CodeBiasSignalList-r15 ::= SEQUENCE (SIZE(1..16)) OF SSR-CodeBiasSignalElement-r15

SSR-CodeBiasSignalElement-r15 ::= SEQUENCE {
	signal-and-tracking-mode-ID-r15		GNSS-SignalID,
	codeBias-r15						INTEGER (-8192..8191),
	...
}

-- ASN1STOP

GNSS-SSR-CodeBias field descriptions
epochTime
This field specifies the epoch time of the code bias data. The gnss-TimeID in GNSS-SystemTime shall be the same as the GNSS-ID in IE GNSS-GenericAssistDataElement. 
ssrUpdateInterval
This field specifies the SSR Update Interval. The SSR Update Intervals for all SSR parameters start at time 00:00:00 of the GPS time scale. A change of the SSR Update Interval during the transmission of SSR data should ensure consistent data for a target device. See table Value to SSR Update Interval Relation in IE GNSS‑SSR‑OrbitCorrections.
iod-ssr
This field specifies the Issue of Data number for the SSR data. A change of iod-ssr is used to indicate a change in the SSR generating configuration. 
svID
This field specifies the GNSS satellite for which the code biases are provided.
signal-and-tracking-mode-ID
This field specifies the GNSS signal for which the code biases are provided. 
codeBias
This field provides the code bias for the GNSS signal indicated by signal-and-tracking-mode-ID.
Scale factor 0.01 m; range ±81.91 m.

6.5.2.3	GNSS Assistance Data Request
–	A-GNSS-RequestAssistanceData
The IE A-GNSS-RequestAssistanceData is used by the target device to request GNSS assistance data from a location server.
-- ASN1START

A-GNSS-RequestAssistanceData ::= SEQUENCE {
	gnss-CommonAssistDataReq		GNSS-CommonAssistDataReq		OPTIONAL, -- Cond CommonADReq
	gnss-GenericAssistDataReq		GNSS-GenericAssistDataReq		OPTIONAL, -- Cond GenADReq
	...,
	[[
		gnss-PeriodicAssistDataReq-r15
									GNSS-PeriodicAssistDataReq-r15	OPTIONAL -- Cond PerADReq
	]]
}

-- ASN1STOP

Conditional presence
Explanation
CommonADReq
The field is mandatory present if the target device requests GNSS-CommonAssistData; otherwise it is not present.
GenADReq
This field is mandatory present if the target device requests GNSS-GenericAssistData for one or more specific GNSS; otherwise it is not present.
PerADReq
This field is mandatory present if the target device requests periodic GNSS assistance data delivery. This field may only be included if any of the fields are included in IE GNSS‑GenericAssistDataReq:
- GNSS-RTK-ObservationsReq,
- GLO-RTK-BiasInformationReq,
- GNSS-RTK-MAC-CorrectionDifferencesReq,
- GNSS-RTK-ResidualsReq,
- GNSS-RTK-FKP-GradientsReq,
- GNSS-SSR-OrbitCorrectionsReq,
- GNSS-SSR-ClockCorrectionsReq, or
- GNSS-SSR-CodeBiasReq. 

–	GNSS-CommonAssistDataReq
The IE GNSS-CommonAssistDataReq is used by the target device to request assistance data that are applicable to any GNSS from a location server.
-- ASN1START

GNSS-CommonAssistDataReq ::= SEQUENCE {
	gnss-ReferenceTimeReq				GNSS-ReferenceTimeReq				
																OPTIONAL, -- Cond RefTimeReq
	gnss-ReferenceLocationReq			GNSS-ReferenceLocationReq			
																OPTIONAL, -- Cond RefLocReq
	gnss-IonosphericModelReq			GNSS-IonosphericModelReq				
																OPTIONAL, -- Cond IonoModReq
	gnss-EarthOrientationParametersReq	GNSS-EarthOrientationParametersReq	
																OPTIONAL, -- Cond EOPReq
	...,
	[[
		gnss-RTK-ReferenceStationInfoReq-r15	
										GNSS-RTK-ReferenceStationInfoReq-r15
																OPTIONAL, -- Cond ARPReq
		gnss-RTK-AuxiliaryStationDataReq-r15
										GNSS-RTK-AuxiliaryStationDataReq-r15
																OPTIONAL -- Cond AuxARPReq
	]]
}

-- ASN1STOP

Conditional presence
Explanation
RefTimeReq
The field is mandatory present if the target device requests GNSS-ReferenceTime; otherwise it is not present.
RefLocReq
This field is mandatory present if the target device requests GNSS-ReferenceLocation; otherwise it is not present.
IonoModReq
This field is mandatory present if the target device requests GNSS-IonosphericModel; otherwise it is not present.
EOPReq
This field is mandatory present if the target device requests GNSS-EarthOrientationParameters; otherwise it is not present.
ARPReq
This field is mandatory present if the target device requests GNSS‑RTK‑ReferenceStationInfo; otherwise it is not present.
AuxARPReq
This field is mandatory present if the target device requests GNSS‑RTK‑AuxiliaryStationData; otherwise it is not present.

–	GNSS-GenericAssistDataReq
The IE GNSS-GenericAssistDataReq is used by the target device to request assistance data from a location server for one or more specific GNSS (e.g., GPS, Galileo, GLONASS, BDS, etc.). The specific GNSS for which the assistance data are requested is indicated by the IE GNSS‑ID and (if applicable) by the IE SBAS‑ID. Assistance for up to 16 GNSSs can be requested.
-- ASN1START

GNSS-GenericAssistDataReq ::= SEQUENCE (SIZE (1..16)) OF GNSS-GenericAssistDataReqElement

GNSS-GenericAssistDataReqElement ::= SEQUENCE {
	gnss-ID							GNSS-ID,
	sbas-ID							SBAS-ID						OPTIONAL, -- Cond GNSS-ID-SBAS
	gnss-TimeModelsReq				GNSS-TimeModelListReq			OPTIONAL, -- Cond TimeModReq
	gnss-DifferentialCorrectionsReq	GNSS-DifferentialCorrectionsReq	OPTIONAL, -- Cond DGNSS-Req
	gnss-NavigationModelReq			GNSS-NavigationModelReq			OPTIONAL, -- Cond NavModReq
	gnss-RealTimeIntegrityReq		GNSS-RealTimeIntegrityReq		OPTIONAL, -- Cond RTIReq
	gnss-DataBitAssistanceReq		GNSS-DataBitAssistanceReq		OPTIONAL, -- Cond DataBitsReq
	gnss-AcquisitionAssistanceReq	GNSS-AcquisitionAssistanceReq	OPTIONAL, -- Cond AcquAssistReq
	gnss-AlmanacReq					GNSS-AlmanacReq					OPTIONAL, -- Cond AlmanacReq
	gnss-UTCModelReq				GNSS-UTC-ModelReq				OPTIONAL, -- Cond UTCModReq
	gnss-AuxiliaryInformationReq	GNSS-AuxiliaryInformationReq	OPTIONAL, -- Cond AuxInfoReq
	...,
	[[
		bds-DifferentialCorrectionsReq-r12	
									BDS-DifferentialCorrectionsReq-r12
																	OPTIONAL,	-- Cond DBDS-Req
		bds-GridModelReq-r12		BDS-GridModelReq-r12			OPTIONAL	-- Cond BDS-GridModReq
	]],
	[[
		gnss-RTK-ObservationsReq-r15
									GNSS-RTK-ObservationsReq-r15	OPTIONAL,	-- Cond RTK-OSR-Req
		glo-RTK-BiasInformationReq-r15	
									GLO-RTK-BiasInformationReq-r15	OPTIONAL,	-- Cond GLO-CPB-Req
		gnss-RTK-MAC-CorrectionDifferencesReq-r15
									GNSS-RTK-MAC-CorrectionDifferencesReq-r15
																	OPTIONAL,	-- Cond MAC-Req
		gnss-RTK-ResidualsReq-r15	GNSS-RTK-ResidualsReq-r15		OPTIONAL,	-- Cond Res-Req
		gnss-RTK-FKP-GradientsReq-r15
									GNSS-RTK-FKP-GradientsReq-r15	OPTIONAL,	-- Cond FKP-Req
		gnss-SSR-OrbitCorrectionsReq-r15
									GNSS-SSR-OrbitCorrectionsReq-r15
																	OPTIONAL, -- Cond OC-Req
		gnss-SSR-ClockCorrectionsReq-r15
									GNSS-SSR-ClockCorrectionsReq-r15
																	OPTIONAL, -- Cond CC-Req
		gnss-SSR-CodeBiasReq-r15	GNSS-SSR-CodeBiasReq-r15		OPTIONAL -- Cond CB-Req
	]]
}

-- ASN1STOP

Conditional presence
Explanation
GNSS‑ID‑SBAS
The field is mandatory present if the GNSS‑ID = sbas; otherwise it is not present.
TimeModReq
The field is mandatory present if the target device requests GNSS-TimeModelList; otherwise it is not present.
DGNSS-Req
The field is mandatory present if the target device requests GNSS-DifferentialCorrections; otherwise it is not present.
NavModReq
The field is mandatory present if the target device requests GNSS-NavigationModel; otherwise it is not present.
RTIReq
The field is mandatory present if the target device requests GNSS-RealTimeIntegrity; otherwise it is not present.
DataBitsReq
The field is mandatory present if the target device requests GNSS-DataBitAssistance; otherwise it is not present.
AcquAssistReq
The field is mandatory present if the target device requests GNSS-AcquisitionAssistance; otherwise it is not present.
AlmanacReq
The field is mandatory present if the target device requests GNSS-Almanac; otherwise it is not present.
UTCModReq
The field is mandatory present if the target device requests GNSS-UTCModel; otherwise it is not present.
AuxInfoReq
The field is mandatory present if the target device requests GNSS-AuxiliaryInformation; otherwise it is not present.
DBDS-Req
The field is mandatory present if the target device requests BDS-DifferentialCorrections; otherwise it is not present. This field may only be present if gnss-ID indicates 'bds'.
BDS-GridModReq
The field is mandatory present if the target device requests BDS-GridModel; otherwise it is not present. This field may only be present if gnss-ID indicates 'bds'.
RTK-OSR-Req
The field is mandatory present if the target device requests GNSS-RTK-Observations; otherwise it is not present.
GLO-CPB-Req
The field is mandatory present if the target device requests GLO-RTK-BiasInformation; otherwise it is not present.
MAC-Req
The field is mandatory present if the target device requests GNSS‑RTK‑MAC‑CorrectionDifferences; otherwise it is not present.
Res-Req
The field is mandatory present if the target device requests GNSS-RTK-Residuals; otherwise it is not present.
FKP-Req
The field is mandatory present if the target device requests GNSS-RTK-FKP-Gradients; otherwise it is not present.
OC-Req
The field is mandatory present if the target device requests GNSS-SSR-OrbitCorrections; otherwise it is not present.
CC-Req
The field is mandatory present if the target device requests GNSS-SSR-ClockCorrections; otherwise it is not present.
CB-Req
The field is mandatory present if the target device requests GNSS-SSR-CodeBias; otherwise it is not present.

–	GNSS-PeriodicAssistDataReq
The IE GNSS-PeriodicAssistDataReq is used by the target device to request periodic assistance data delivery from a location server.
-- ASN1START

GNSS-PeriodicAssistDataReq-r15 ::= SEQUENCE {
	gnss-RTK-PeriodicObservationsReq-r15	GNSS-PeriodicControlParam-r15	OPTIONAL, -- Cond pOSR
	glo-RTK-PeriodicBiasInformationReq-r15	GNSS-PeriodicControlParam-r15	OPTIONAL, -- Cond pCPB
	gnss-RTK-MAC-PeriodicCorrectionDifferencesReq-r15
											GNSS-PeriodicControlParam-r15	OPTIONAL, -- Cond pMAC
	gnss-RTK-PeriodicResidualsReq-r15		GNSS-PeriodicControlParam-r15	OPTIONAL, -- Cond pRes
	gnss-RTK-FKP-PeriodicGradientsReq-r15	GNSS-PeriodicControlParam-r15	OPTIONAL, -- Cond pFKP
	gnss-SSR-PeriodicOrbitCorrectionsReq-r15
											GNSS-PeriodicControlParam-r15	OPTIONAL, -- Cond pOC
	gnss-SSR-PeriodicClockCorrectionsReq-r15
											GNSS-PeriodicControlParam-r15	OPTIONAL, -- Cond pCC
	gnss-SSR-PeriodicCodeBiasReq-r15		GNSS-PeriodicControlParam-r15	OPTIONAL, -- Cond pCB
	...
}

-- ASN1STOP

Conditional presence
Explanation
pOSR
The field is mandatory present if the target device requests periodic GNSS‑RTK‑Observations; otherwise it is not present.
pCPB
The field is mandatory present if the target device requests periodic GLO‑RTK‑BiasInformation; otherwise it is not present.
pMAC
The field is mandatory present if the target device requests periodic GNSS‑RTK‑MAC‑CorrectionDifferences; otherwise it is not present.
pRes
The field is mandatory present if the target device requests periodic GNSS‑RTK‑Residuals; otherwise it is not present.
pFKP
The field is mandatory present if the target device requests periodic GNSS‑RTK‑FKP‑Gradients; otherwise it is not present.
pOC
The field is mandatory present if the target device requests periodic GNSS‑SSR‑OrbitCorrections; otherwise it is not present.
pCC
The field is mandatory present if the target device requests periodic GNSS‑SSR‑ClockCorrections; otherwise it is not present.
pCB
The field is mandatory present if the target device requests periodic GNSS‑SSR‑CodeBias; otherwise it is not present.

6.5.2.4	GNSS Assistance Data Request Elements
–	GNSS-ReferenceTimeReq
The IE GNSS-ReferenceTimeReq is used by the target device to request the GNSS-ReferenceTime assistance from the location server.
-- ASN1START

GNSS-ReferenceTimeReq ::= SEQUENCE {
	gnss-TimeReqPrefList	SEQUENCE (SIZE (1..8)) OF GNSS-ID,			
	gps-TOW-assistReq		BOOLEAN								OPTIONAL, -- Cond gps
	notOfLeapSecReq			BOOLEAN								OPTIONAL, -- Cond glonass
	...
}

-- ASN1STOP

Conditional presence
Explanation
gps
The field is mandatory present if gnss-TimeReqPrefList includes a GNSS-ID= 'gps'; otherwise it is not present.
glonass
The field is mandatory present if gnss-TimeReqPrefList includes a GNSS-ID= 'glonass'; otherwise it is not present.

GNSS-ReferenceTimeReq field descriptions
gnss-TimeReqPrefList
This field is used by the target device to request the system time for a specific GNSS, specified by GNSS-ID in the order of preference. The first GNSS-ID in the list is the most preferred GNSS for reference time, the second GNSS-ID is the second most preferred, etc.
gps-TOW-assistReq
This field is used by the target device to request the gps-TOW-Assist field in GNSS-SystemTime. TRUE means requested.
notOfLeapSecReq
This field is used by the target device to request the notificationOfLeapSecond field in GNSS-SystemTime. TRUE means requested.

–	GNSS-ReferenceLocationReq
The IE GNSS-ReferenceLocationReq is used by the target device to request the GNSS-ReferenceLocation assistance from the location server.
-- ASN1START

GNSS-ReferenceLocationReq ::=	SEQUENCE {
	...
}

-- ASN1STOP

–	GNSS-IonosphericModelReq
The IE GNSS-IonosphericModelReq is used by the target device to request the GNSS-IonosphericModel assistance from the location server.
-- ASN1START

GNSS-IonosphericModelReq ::=	SEQUENCE {
	klobucharModelReq		BIT STRING (SIZE(2))	OPTIONAL,	-- Cond klobuchar
	neQuickModelReq			NULL					OPTIONAL,	-- Cond	nequick
	...
}

-- ASN1STOP

Conditional presence
Explanation
klobuchar
The field is mandatory present if the target device requests klobucharModel; otherwise it is not present. The BIT STRING defines the dataID requested, defined in IE KlobucharModelParameter. 
nequick
The field is mandatory present if the target device requests neQuickModel; otherwise it is not present. 

–	GNSS-EarthOrientationParametersReq
The IE GNSS-EarthOrientationParametersReq is used by the target device to request the GNSS-EarthOrientationParameters assistance from the location server.
-- ASN1START

GNSS-EarthOrientationParametersReq ::=	SEQUENCE {
	...
}

-- ASN1STOP

–	GNSS-RTK-ReferenceStationInfoReq
The IE GNSS-RTK-ReferenceStationInfoReq is used by the target device to request the GNSS‑RTK‑ReferenceStationInfo assistance from the location server.
-- ASN1START

GNSS-RTK-ReferenceStationInfoReq-r15 ::= SEQUENCE {
	antennaDescriptionReq-r15			BOOLEAN,
	antennaHeightReq-r15				BOOLEAN,
	physicalReferenceStationReq-r15		BOOLEAN,
	stationID-r15						GNSS-ReferenceStationID-r15		OPTIONAL,
	...
}

-- ASN1STOP

GNSS-RTK-ReferenceStationInfoReq field descriptions
antennaDescriptionReq
This field specifies whether or not the location server is requested to include the field AntennaDescription in the GNSS-RTK-ReferenceStationInfo IE. TRUE means requested. 
antennaHeightReq
This field specifies whether or not the location server is requested to include the field antennaHeight in the GNSS‑RTK-ReferenceStationInfo IE. TRUE means requested.
physicalReferenceStationReq
This field specifies whether or not the location server is requested to include the field physical-reference-station-info in the GNSS‑RTK-ReferenceStationInfo IE. TRUE means requested.
stationID
This field specifies the Station ID for which the GNSS-RTK-ReferenceStationInfo is requested.

–	GNSS-RTK-AuxiliaryStationDataReq
The IE GNSS-RTK-AuxiliaryStationDataReq is used by the target device to request the GNSS‑RTK‑AuxiliaryStationData assistance from the location server.
-- ASN1START

GNSS-RTK-AuxiliaryStationDataReq-r15 ::= SEQUENCE {
	master-referenceStationID-r15		GNSS-ReferenceStationID-r15		OPTIONAL,
	...
}

-- ASN1STOP

GNSS-RTK-AuxiliaryStationDataReq field descriptions
master-referenceStationID
This field specifies the Master Reference Station ID for which the Auxiliary Stations are requested.

–	GNSS-TimeModelListReq
The IE GNSS-TimeModelListReq is used by the target device to request the GNSS-TimeModelElement assistance from the location server.
-- ASN1START

GNSS-TimeModelListReq ::= SEQUENCE (SIZE(1..15)) OF GNSS-TimeModelElementReq

GNSS-TimeModelElementReq ::= SEQUENCE {
	gnss-TO-IDsReq	INTEGER (1..15),
	deltaTreq		BOOLEAN,
	...
}

-- ASN1STOP

GNSS-TimeModelElementReq field descriptions
gnss-TO-IDsReq
This field specifies the requested gnss-TO-ID. The meaning and encoding is the same as the gnss-TO-ID field in the GNSS-TimeModelElement IE.
deltaTreq
This field specifies whether or not the location server is requested to include the deltaT field in the GNSS-TimeModelElement IE. TRUE means requested.

–	GNSS-DifferentialCorrectionsReq
The IE GNSS-DifferentialCorrectionsReq is used by the target device to request the GNSS-DifferentialCorrections assistance from the location server.
-- ASN1START

GNSS-DifferentialCorrectionsReq ::=	SEQUENCE {
	dgnss-SignalsReq			GNSS-SignalIDs,
	dgnss-ValidityTimeReq		BOOLEAN,
	...
}

-- ASN1STOP

GNSS-DifferentialCorrectionsReq field descriptions
dgnss-SignalsReq
This field specifies the GNSS Signal(s) for which the GNSS-DifferentialCorrections are requested. A one‑value at a bit position means DGNSS corrections for the specific signal are requested; a zero‑value means not requested. The target device shall set a maximum of three bits to value 'one'.
dgnss-ValidityTimeReq
This field specifies whether the udreGrowthRate and udreValidityTime in GNSS-DifferentialCorrections are requested or not. TRUE means requested.

–	GNSS-NavigationModelReq
The IE GNSS-NavigationModelReq is used by the target device to request the GNSS-NavigationModel assistance from the location server.
-- ASN1START

GNSS-NavigationModelReq ::=	CHOICE {
	storedNavList		StoredNavListInfo,
	reqNavList			ReqNavListInfo,
	...
}


StoredNavListInfo ::= SEQUENCE {
	gnss-WeekOrDay			INTEGER (0..4095),
	gnss-Toe				INTEGER (0..255),
	t-toeLimit				INTEGER (0..15),
	satListRelatedDataList	SatListRelatedDataList	OPTIONAL,
	...
}

SatListRelatedDataList ::= SEQUENCE (SIZE (1..64)) OF SatListRelatedDataElement

SatListRelatedDataElement ::= SEQUENCE {
	svID				SV-ID,
	iod				BIT STRING (SIZE(11)),
	clockModelID		INTEGER (1..8)			OPTIONAL,
orbitModelID		INTEGER (1..8)			OPTIONAL,			
	...
}

ReqNavListInfo ::=	SEQUENCE {
	svReqList				BIT STRING (SIZE (64)),
	clockModelID-PrefList	SEQUENCE (SIZE (1..8)) OF	INTEGER (1..8)		OPTIONAL,
	orbitModelID-PrefList	SEQUENCE (SIZE (1..8)) OF	INTEGER (1..8)		OPTIONAL,	
	addNavparamReq			BOOLEAN				OPTIONAL,	-- Cond orbitModelID-2
	...
}


-- ASN1STOP

Conditional presence
Explanation
orbitModelID-2
The field is mandatory present if orbitModelID-PrefList is absent or includes a Model-ID = '2'; otherwise it is not present.

GNSS-NavigationModelReq field descriptions
storedNavList
This list provides information to the location server about which GNSS-NavigationModel data the target device has currently stored for the particular GNSS indicated by GNSS-ID. 
reqNavList
This list provides information to the location server which GNSS-NavigationModel data are requested by the target device.
gnss-WeekOrDay
If GNSS-ID does not indicate 'glonass', this field defines the GNSS Week number of the assistance currently held by the target device.
If GNSS-ID is set to 'glonass', this field defines the calendar number of day within the four-year interval starting from 1st of January in a leap year, as defined by the parameter NT in [9] of the assistance currently held by the target device.
gnss-Toe
If GNSS-ID does not indicate 'glonass', this field defines the GNSS time of ephemeris in hours of the latest ephemeris set contained by the target device.
If GNSS-ID is set to 'glonass', this field defines the time of ephemeris in units of 15 minutes of the latest ephemeris set contained by the target device (range 0 to 95 representing time values between 0 and 1425 minutes). In this case, values 96 to 255 shall not be used by the sender.
t-toeLimit
If GNSS-ID does not indicate 'glonass', this IE defines the ephemeris age tolerance of the target device in units of hours.
If GNSS-ID is set to 'glonass', this IE defines the ephemeris age tolerance of the target device in units of 30 minutes. 
satListRelatedDataList
This list defines the clock and orbit models currently held by the target device for each SV. This field is not included if the target device does not have any stored clock and orbit models for any SV.
svID
This field identifies the particular GNSS satellite.
iod
This field identifies the issue of data currently held by the target device.
clockModelID, orbitModelID
These fields define the clock and orbit model number currently held by the target device. If these fields are absent, the default interpretation of the table GNSS-ID to clockModelID & orbitModelID relation below applies. 
svReqList
This field defines the SV for which the navigation model assistance is requested. Each bit position in this BIT STRING represents a SV-ID. Bit 0 represents SV-ID=0 and bit 63 represents SV-ID=63. A one-value at a bit position means the navigation model data for the corresponding SV-ID is requested, a zero-value means not requested.
clockModelIDPrefList, orbitModelID-PrefList
These fields define the Model-IDs of the clock and orbit models that the target device wishes to obtain in the order of preference. The first Model-ID in the list is the most preferred model, the second Model-ID the second most preferred, etc. If these fields are absent, the default interpretation of the table GNSS-ID to clockModelID-PrefList & orbitModelIDPrefList relation below applies. 
addNavparamReq
This field specifies whether the location server is requested to include the addNAVparam fields in GNSS-NavigationModel IE (NavModel-NAVKeplerianSet field) or not. TRUE means requested. 

GNSS-ID to clockModelID & orbitModelID relation
GNSS-ID
clockModelID
orbitModelID
gps
2
2
sbas
5
5
qzss
2
2
galileo
1
1
glonass
4
4
bds
6
6

GNSS-ID to clockModelID-PrefList & orbitModelID-PrefList relation
GNSS-ID
clockModelID-PrefList
orbitModelID-PrefList
gps
Model-2
Model-2
sbas
Model-5
Model-5
qzss
Model-2
Model-2
galileo
Model-1
Model-1
glonass
Model-4
Model-4
bds
Model-6
Model-6

–	GNSS-RealTimeIntegrityReq
The IE GNSS-RealTimeIntegrityReq is used by the target device to request the GNSS-RealTimeIntegrity assistance from the location server.
-- ASN1START

GNSS-RealTimeIntegrityReq ::=	SEQUENCE {
	...
}

-- ASN1STOP

–	GNSS-DataBitAssistanceReq
The IE GNSS-DataBitAssistanceReq is used by the target device to request the GNSS-DataBitAssistance assistance from the location server.
-- ASN1START

GNSS-DataBitAssistanceReq ::=	SEQUENCE {
	gnss-TOD-Req		INTEGER (0..3599),
	gnss-TOD-FracReq	INTEGER (0..999)		OPTIONAL,
	dataBitInterval		INTEGER (0..15),
	gnss-SignalType		GNSS-SignalIDs,
	gnss-DataBitsReq	GNSS-DataBitsReqSatList	OPTIONAL,
	...
}

GNSS-DataBitsReqSatList ::= SEQUENCE (SIZE(1..64)) OF GNSS-DataBitsReqSatElement

GNSS-DataBitsReqSatElement ::= SEQUENCE {
	svID				SV-ID,
	...
}

-- ASN1STOP

GNSS-DataBitAssistanceReq field descriptions
gnss-TOD-Req
This field specifies the reference time for the first data bit requested in GNSS specific system time, modulo 1 hour.
Scale factor 1 second.
gnss-TOD-FracReq
This field specifies the fractional part of gnss-TOD-Req in 1-milli‑second resolution.
Scale factor 1 millisecond.
dataBitInterval
This field specifies the time length for which the Data Bit Assistance is requested. The GNSS-DataBitAssistance shall be relative to the time interval (gnss-TOD-Req, gnss-TOD-Req + dataBitInterval).
The dataBitInterval r, expressed in seconds, is mapped to a binary number K with the following formula:
													r =0.1  2 K
Value K=15 means that the time interval is not specified.
gnss-SignalType
This field specifies the GNSS Signal(s) for which the GNSS-DataBitAssistance are requested. A one‑value at a bit position means GNSS-DataBitAssistance for the specific signal is requested; a zero‑value means not requested. 
gnss-DataBitsReq
This list contains the SV-IDs for which the GNSS-DataBitAssistance is requested.

–	GNSS-AcquisitionAssistanceReq
The IE GNSS-AcquisitionAssistanceReq is used by the target device to request the GNSS-AcquisitionAssistance assistance from the location server.
-- ASN1START

GNSS-AcquisitionAssistanceReq ::=	SEQUENCE {
	gnss-SignalID-Req		GNSS-SignalID,
	...
}

-- ASN1STOP

GNSS-AcquisitionAssistanceReq field descriptions
gnss-SignalID-Req
This field specifies the GNSS signal type for which GNSSAcquisitionAssistance is requested.

–	GNSS-AlmanacReq
The IE GNSS-AlmanacReq is used by the target device to request the GNSS-Almanac assistance from the location server.
-- ASN1START

GNSS-AlmanacReq ::= SEQUENCE {
	modelID				INTEGER(1..8)	OPTIONAL,
	...
}

-- ASN1STOP

GNSS-AlmanacReq field descriptions
modelID
This field specifies the Almanac Model ID requested. If this field is absent, the default interpretation as in the table GNSS-ID to modelID relation below applies.

GNSS-ID to modelID relation
GNSS-ID
modelID
gps
2
sbas
6
qzss
2
galileo
1
glonass
5
bds
7

–	GNSS-UTC-ModelReq
The IE GNSS-UTC-ModelReq is used by the target device to request the GNSS-UTC-Model assistance from the location server.
-- ASN1START

GNSS-UTC-ModelReq ::=	SEQUENCE {
	modelID				INTEGER(1..8)	OPTIONAL,
	...
}

-- ASN1STOP

GNSS-UTC-ModelReq field descriptions
modelID
This field specifies the GNSS-UTCModel set requested. If this field is absent, the default interpretation as in the table GNSS-ID to modelID relation below applies.

GNSS-ID to modelID relation
GNSS-ID
modelID
gps
1
sbas
4
qzss
1
galileo
1
glonass
3
bds
5

–	GNSS-AuxiliaryInformationReq
The IE GNSS-AuxiliaryInformationReq is used by the target device to request the GNSS-AuxiliaryInformation assistance from the location server.
-- ASN1START

GNSS-AuxiliaryInformationReq ::=	SEQUENCE {
	...
}

-- ASN1STOP

–	BDS-DifferentialCorrectionsReq
The IE BDS-DifferentialCorrectionsReq is used by the target device to request the BDS-DifferentialCorrections assistance from the location server.
-- ASN1START

BDS-DifferentialCorrectionsReq-r12 ::=	SEQUENCE {
	dgnss-SignalsReq			GNSS-SignalIDs,
	...
}

-- ASN1STOP

BDS-DifferentialCorrectionsReq field descriptions
dgnss-SignalsReq
This field specifies the BDS Signal(s) for which the BDS-DifferentialCorrections are requested. A one‑value at a bit position means BDS differential corrections for the specific signal are requested; a zero‑value means not requested. The target device shall set a maximum of three bits to value 'one'.

–	BDS-GridModelReq
The IE BDS-GridModelReq is used by the target device to request the BDS-GridModel assistance from the location server.
-- ASN1START

BDS-GridModelReq-r12 ::=	SEQUENCE {
	...
}

-- ASN1STOP

–	GNSS-RTK-ObservationsReq
The IE GNSS-RTK-ObservationsReq is used by the target device to request the GNSS-RTK-Observations assistance from the location server.
-- ASN1START

GNSS-RTK-ObservationsReq-r15::= 	SEQUENCE {
	gnss-RTK-SignalsReq-r15				GNSS-SignalIDs,
	gnss-RTK-Integer-ms-Req-r15			BOOLEAN,
	gnss-RTK-PhaseRangeRateReq-r15		BOOLEAN,
	gnss-RTK-CNR-Req-r15				BOOLEAN,
	stationID-r15						GNSS-ReferenceStationID-r15		OPTIONAL,
	...
}

-- ASN1STOP

GNSS-RTK-ObservationsReq field descriptions
gnss-RTK-SignalsReq
This field specifies the GNSS Signal(s) for which the GNSS-RTK-Observations are requested. A one‑value at a bit position means RTK observations for the specific signal are requested; a zero‑value means not requested. 
gnss-RTK-Integer-ms-Req
This field specifies whether the integer-ms is requested or not. TRUE means requested.
gnss-RTK-PhaseRangeRateReq
This field specifies whether the rough-phase-range-rate and fine-PhaseRangeRate are requested or not. TRUE means requested.
gnss-RTK-CNR-Req
This field specifies whether the carrier-to-noise-ratio is requested or not. TRUE means requested.
stationID
This field specifies the Station ID for which the GNSS-RTK-Observations are requested. 

–	GLO-RTK-BiasInformationReq
The IE GLO-RTK-BiasInformationReq is used by the target device to request the GLO-RTK-BiasInformation assistance from the location server.
-- ASN1START

GLO-RTK-BiasInformationReq-r15 ::= 	SEQUENCE {
	stationID-r15						GNSS-ReferenceStationID-r15		OPTIONAL,
	...
}

-- ASN1STOP

GLO-RTK-BiasInformationReq field descriptions
stationID
This field specifies the Station ID for which the GLO-RTK-BiasInformation is requested. 

–	GNSS-RTK-MAC-CorrectionDifferencesReq
The IE GNSS-RTK-MAC-CorrectionDifferencesReq is used by the target device to request the GNSS‑RTK‑MAC‑CorrectionDifferences assistance from the location server.
-- ASN1START

GNSS-RTK-MAC-CorrectionDifferencesReq-r15 ::= 	SEQUENCE {
	master-ReferenceStationID-r15		GNSS-ReferenceStationID-r15				OPTIONAL,
	aux-ReferenceStationList-r15		AUX-ReferenceStationList-r15			OPTIONAL,
	linkCombinations-PrefList-r15		GNSS-Link-CombinationsList-r15			OPTIONAL,
	...
}

AUX-ReferenceStationList-r15 ::= SEQUENCE (SIZE (1..32)) OF AUX-ReferenceStationID-Element-r15

AUX-ReferenceStationID-Element-r15 ::= SEQUENCE {
	aux-stationID-r15		GNSS-ReferenceStationID-r15,
	...
}

-- ASN1STOP

GNSS-RTK-MAC-CorrectionDifferencesReq field descriptions
master-ReferenceStationID, aux-ReferenceStationList
These fields specify the Master and Auxiliary Reference Station IDs for which the GNSS‑RTK‑MAC‑CorrectionDifferences are requested. 
linkCombinations-PrefList
This field specifies the dual-frequency combination of L1 and L2 link/frequencies for which the target device wishes to obtain the GNSS‑RTK‑MAC‑CorrectionDifferences in the order of preference. The first GNSS‑Link‑Combinations in GNSS-Link-CombinationsList is the most preferred combination, the second GNSS‑Link‑Combinations in GNSS‑Link‑CombinationsList is the second most preferred, etc.

–	GNSS-RTK-ResidualsReq
The IE GNSS-RTK-ResidualsReq is used by the target device to request the GNSS-RTK-Residuals assistance from the location server.
-- ASN1START

GNSS-RTK-ResidualsReq-r15 ::= 	SEQUENCE {
	stationID-r15						GNSS-ReferenceStationID-r15		OPTIONAL,
	linkCombinations-PrefList-r15		GNSS-Link-CombinationsList-r15	OPTIONAL,
	...
}

-- ASN1STOP

GNSS-RTK-ResidualsReq field descriptions
stationID
This field specifies the Station ID for which the GNSS-RTK-Residuals are requested.
linkCombinations-PrefList
This field specifies the dual-frequency combination of L1 and L2 link/frequencies for which the target device wishes to obtain the GNSS-RTK-Residuals in the order of preference. The first GNSS‑Link‑Combinations in GNSS‑Link‑CombinationsList is the most preferred combination, the second GNSS‑Link‑Combinations in GNSS‑Link‑CombinationsList is the second most preferred, etc.

–	GNSS-RTK-FKP-GradientsReq
The IE GNSS-RTK-FKP-GradientsReq is used by the target device to request the GNSS-RTK-FKP-Gradients assistance from the location server.
-- ASN1START

GNSS-RTK-FKP-GradientsReq-r15 ::= 	SEQUENCE {
	stationID-r15						GNSS-ReferenceStationID-r15		OPTIONAL,
	linkCombinations-PrefList-r15		GNSS-Link-CombinationsList-r15	OPTIONAL,
	...
}

-- ASN1STOP

GNSS-RTK-FKP-GradientsReq field descriptions
stationID
This field specifies the Station ID for which the GNSS-RTK-FKP-Gradients are requested.
linkCombinations-PrefList
This field specifies the dual-frequency combination of L1 and L2 link/frequencies for which the target device wishes to obtain the GNSS-RTK-FKP-Gradients in the order of preference. The first GNSS‑Link‑Combinations in GNSS‑Link‑CombinationsList is the most preferred combination, the second GNSS‑Link‑Combinations in GNSS‑Link‑CombinationsList is the second most preferred, etc.

–	GNSS-SSR-OrbitCorrectionsReq
The IE GNSS-SSR-OrbitCorrectionsReq is used by the target device to request the GNSS-SSR-OrbitCorrections assistance from the location server.
-- ASN1START

GNSS-SSR-OrbitCorrectionsReq-r15 ::= SEQUENCE {
	storedNavList-r15				GNSS-NavListInfo-r15				OPTIONAL,
	...
}

-- ASN1STOP

GNSS-SSR-OrbitCorrectionsReq field descriptions
storedNavList
This list provides information to the location server about which NAV data the target device has currently stored for the particular GNSS indicated by GNSS-ID.

–	GNSS-SSR-ClockCorrectionsReq
The IE GNSS-SSR-ClockCorrectionsReq is used by the target device to request the GNSS-SSR-ClockCorrections assistance from the location server.
-- ASN1START

GNSS-SSR-ClockCorrectionsReq-r15 ::= SEQUENCE {
	storedNavList-r15				GNSS-NavListInfo-r15				OPTIONAL,
	...
}

-- ASN1STOP

GNSS-SSR-ClockCorrectionsReq field descriptions
storedNavList
This list provides information to the location server about which NAV data the target device has currently stored for the particular GNSS indicated by GNSS-ID.

–	GNSS-SSR-CodeBiasReq
The IE GNSS-SSR-CodeBiasReq is used by the target device to request the GNSS-SSR-CodeBias assistance from the location server.
-- ASN1START

GNSS-SSR-CodeBiasReq-r15 ::= SEQUENCE {
	signal-and-tracking-mode-ID-Map-r15		GNSS-SignalIDs,
	storedNavList-r15						GNSS-NavListInfo-r15				OPTIONAL,
	...
}

-- ASN1STOP

GNSS-SSR-CodeBiasReq field descriptions
signal-and-tracking-mode-ID-Map
This field specifies the GNSS signal(s) for which the GNSS-SSR-CodeBias is requested. 
storedNavList
This list provides information to the location server about which NAV data the target device has currently stored for the particular GNSS indicated by GNSS-ID.

6.5.2.5	GNSS Location Information
–	A-GNSS-ProvideLocationInformation
The IE A-GNSS-ProvideLocationInformation is used by the target device to provide location measurements (e.g., pseudo‑ranges, location estimate, velocity) to the location server, together with time information. It may also be used to provide GNSS positioning specific error reason.
-- ASN1START

A-GNSS-ProvideLocationInformation ::= SEQUENCE {
	gnss-SignalMeasurementInformation	GNSS-SignalMeasurementInformation		OPTIONAL,
	gnss-LocationInformation			GNSS-LocationInformation				OPTIONAL,
	gnss-Error							A-GNSS-Error							OPTIONAL,
	...
}

-- ASN1STOP

6.5.2.6	GNSS Location Information Elements
–	GNSS-SignalMeasurementInformation
The IE GNSS-SignalMeasurementInformation is used by the target device to provide GNSS signal measurement information to the location server and GNSS‑network time association if requested by the location server. This information includes the measurements of code phase, Doppler, C/No and optionally accumulated carrier phase, also called accumulated deltarange (ADR), which enable the UE‑assisted GNSS method where position is computed in the location server. Figure 6.5.2.6-1 illustrates the relation between some of the fields.
-- ASN1START

GNSS-SignalMeasurementInformation ::= SEQUENCE {
	measurementReferenceTime		MeasurementReferenceTime,
	gnss-MeasurementList			GNSS-MeasurementList,
	...
}

-- ASN1STOP

GNSS-SignalMeasurementInformation field descriptions
measurementReferenceTime
This field specifies the GNSS system time for which the information provided in gnss-MeasurementList is valid. It may also include network time, if requested by the location server and supported by the target device.
gnss-MeasurementList
This field provides GNSS signal measurement information for up to 16 GNSSs. 

–	MeasurementReferenceTime
The IE MeasurementReferenceTime is used to specify the time when the measurements provided in A-GNSS-ProvideLocationInformation are valid. It may also include GNSS-network time association, in which case reported measurements shall be valid for the cellular frame boundary defined in the network time association.
-- ASN1START

MeasurementReferenceTime ::= SEQUENCE {
	gnss-TOD-msec		INTEGER (0..3599999),
	gnss-TOD-frac		INTEGER (0..3999)			OPTIONAL,		
	gnss-TOD-unc		INTEGER (0..127)			OPTIONAL,		
	gnss-TimeID			GNSS-ID,
	networkTime			CHOICE {
		eUTRA	SEQUENCE {
				physCellId			INTEGER (0..503),
				cellGlobalId		CellGlobalIdEUTRA-AndUTRA		OPTIONAL,
				systemFrameNumber	BIT STRING (SIZE (10)),
				...
				},
		uTRA	SEQUENCE {
				mode					CHOICE {
										fdd			SEQUENCE {
													primary-CPICH-Info	INTEGER (0..511),
													...
													},
										tdd			SEQUENCE {
													cellParameters		INTEGER (0..127),
													...
													}
										},
				cellGlobalId			CellGlobalIdEUTRA-AndUTRA		OPTIONAL,
				referenceSystemFrameNumber
										INTEGER (0..4095),
				...
				},
		gSM		SEQUENCE {
				bcchCarrier			INTEGER (0..1023),
				bsic				INTEGER (0..63),
				cellGlobalId		CellGlobalIdGERAN					OPTIONAL,
				referenceFrame		SEQUENCE {
									referenceFN		INTEGER (0..65535),
									referenceFNMSB		INTEGER (0..63)		OPTIONAL,
									...
									},
				deltaGNSS-TOD		INTEGER (0 .. 127)		OPTIONAL,
				...
				},
		...,
		nbIoT-r14
				SEQUENCE {
				nbPhysCellId-r14	INTEGER (0..503),
				nbCellGlobalId-r14	ECGI						OPTIONAL,
				sfn-r14				BIT STRING (SIZE (10)),
				hyperSFN-r14		BIT STRING (SIZE (10))		OPTIONAL,
				...
				},
		nr-r15	SEQUENCE {
				nrPhysCellId-r15	INTEGER (0..1007),
				nrCellGlobalID-r15	NCGI-r15					OPTIONAL,
				nr-sfn-r15			BIT STRING (SIZE (10)),
				...
				}
		}		OPTIONAL,												
	...
}

-- ASN1STOP

MeasurementReferenceTime field descriptions
gnss-TOD-msec
This field specifies the GNSS TOD for which the measurements and/or location estimate are valid. The 22 bits of GNSS TOD are the least significant bits. The most significant bits shall be derived by the location server to unambiguously derive the GNSS TOD.
The value for GNSS TOD is derived from the GNSS specific system time indicated in gnss-TimeID rounded down to the nearest millisecond unit.
Scale factor 1 millisecond.
gnss-TOD-frac
This field specifies the fractional part of the GNSS TOD in 250 ns resolution. The total GNSS TOD is given by gnss-TOD-msec + gnss-TOD-frac.
Scale factor 250 nanoseconds.
gnss-TOD-unc
This field provides the accuracy of the relation GNSS-network time when GNSS-network time association is provided. When GNSS-network time association is not provided, this element can be included to provide the accuracy of the reported gnss-TOD-msec.
If GNSS TOD is the given GNSS time, then the true GNSS time, corresponding to the provided network time if applicable, as observed at the target device location, lies in the interval [GNSS TOD – gnss-TOD-unc, GNSS TOD + gnss-TOD-unc].
The uncertainty r, expressed in microseconds, is mapped to a number K, with the following formula:
												r = C*(((1+x)K)-1)
with C = 0.5 and x = 0.14. To encode any higher value of uncertainty than that corresponding in the above formula to K=127, the same value, K=127, shall also be used. The uncertainty is then coded on 7 bits, as the binary encoding of K. Examples of gnss-TOD-unc value are as in the table Value of K to Value of uncertainty relation below.
This field shall be included if the target device provides GNSS-network time relationship.
gnss-TimeID
This field specifies the GNSS system time for which the gnss-TOD-msec (and gnss-TOD-frac if applicable) is provided.
networkTime
These fields specify the network time event which the GNSS TOD time stamps.
This field shall be included if the target device provides GNSS-network time relationship.
physCellId
This field identifies the reference cell (E-UTRA), as defined in TS 36.331 [12], that is used for the GNSS-network time relation.
cellGlobalId
This field specifies the globally unique cell identifier (Evolved Cell Global Identifier (ECGI) in E-UTRA, global UTRAN Cell Identifier in UTRA, or Cell Global Identification (CGI) in GERAN) of the reference cell, as defined in TS 36.331 [12] for E-UTRA and in TS 25.331 [13] for UTRA, for which the GNSS network time relation is provided. 
systemFrameNumber
This field specifies the system frame number in E-UTRA which the GNSS time time stamps, as defined in TS 36.331 [12].
mode
This field identifies the reference cell for the GNSS-network time relation, as defined in TS 25.331 [13].
referenceSystemFrameNumber
This field specifies the system frame number in UTRA, as defined in TS 25.331 [13], which is used for time stamping.
bcchCarrier, bsic
This field identifies the reference cell for the GNSS-network time relation in GERAN, as defined in TS 44.031 [14].
referenceFN, referenceFNMSB
These fields specify the frame number in GERAN which the GNSS time time stamps, as defined in TS 44.031 [14]. The time of the reference frame boundary is as observed by the target device, i.e. without Timing Advance compensation. The referenceFNMSB field indicates the most significant bits of the frame number of the reference BTS corresponding to the GNSS-MeasurementList. Starting from the complete GSM frame number denoted FN, the target device calculates Reference FN MSB as
									Reference FN MSB = floor(FN/42432)
The complete GSM frame number FN can then be reconstructed in the location server by combining the fields referenceFN with referenceFNMSB in the following way
								FN = referenceFNMSB *42432 + referenceFN
deltaGNSS-TOD
This field specifies the difference in milliseconds between gnss-TOD-msec reported and the milli-second part of the SV time tsv_1 of the first SV in the list reported from the target device, as defined in TS 44.031 [14]. The deltaGNSS-TOD is defined as
										deltaGNSS-TOD = gnss-TOD-msec - fix(tsv_1)
where fix() denotes rounding to the nearest integer towards zero.
nbPhysCellId
This field identifies the reference cell, as defined in TS 36.331 [12] that is used for the GNSS-network time relation.
nbCellGlobalId
This field specifies the global cell identifier of the NB-IoT reference cell, as defined in TS 36.331 [12], for which the GNSS network time relation is provided.
sfn
This field specifies the system frame number in NB-IoT which the GNSS time time stamps, as defined in TS 36.331 [12].
hyperSFN
This field specifies the hyper-SFN in NB-IoT which the GNSS time time stamps, as defined in TS 36.331 [12].
nrPhysCellId
This field identifies the reference cell (NR), as defined in TS 38.331 [35], that is used for the GNSS-network time relation.
nrCellGlobalID
This field specifies the NR Cell Global Identifier (NCGI) of the reference cell, as defined in TS 38.331 [35], for which the GNSS network time relation is provided.
nr-sfn
This field specifies the system frame number in NR which the GNSS time time stamps, as defined in TS 38.331 [35],

Value of K to Value of uncertainty relation
Value of K
Value of uncertainty
0
0 microseconds
1
0.07 microseconds
2
0.1498 microseconds
-
-
50
349.62 microseconds
-
-
127
≥ 8430000 microseconds

–	GNSS-MeasurementList
The IE GNSS-MeasurementList is used by the target device to provide measurements of code phase, Doppler, C/No and optionally accumulated carrier phase, also called accumulated deltarange (ADR).
-- ASN1START

GNSS-MeasurementList ::= SEQUENCE (SIZE(1..16)) OF GNSS-MeasurementForOneGNSS

GNSS-MeasurementForOneGNSS ::= SEQUENCE {
	gnss-ID					GNSS-ID,
	gnss-SgnMeasList		GNSS-SgnMeasList,
	...
}

GNSS-SgnMeasList ::= SEQUENCE (SIZE(1..8)) OF GNSS-SgnMeasElement

GNSS-SgnMeasElement ::= SEQUENCE {
	gnss-SignalID			GNSS-SignalID,
	gnss-CodePhaseAmbiguity	INTEGER (0..127)		OPTIONAL,
	gnss-SatMeasList		GNSS-SatMeasList,
	...
}

GNSS-SatMeasList ::= SEQUENCE (SIZE(1..64)) OF GNSS-SatMeasElement

GNSS-SatMeasElement ::= SEQUENCE {
	svID				SV-ID,
	cNo					INTEGER (0..63),
	mpathDet			ENUMERATED {notMeasured (0), low (1), medium (2), high (3), ...},
	carrierQualityInd	INTEGER (0..3)				OPTIONAL,	
	codePhase			INTEGER (0..2097151),
	integerCodePhase	INTEGER (0..127)			OPTIONAL,
	codePhaseRMSError	INTEGER (0..63),						
	doppler				INTEGER (-32768..32767)	OPTIONAL,
	adr					INTEGER (0..33554431)		OPTIONAL,
	...,
	[[
		adrMSB-r15			INTEGER (0..15)						OPTIONAL,
		adrSign-r15			ENUMERATED {positive, negative}		OPTIONAL,
		adrRMSerror-r15		INTEGER (0..127)					OPTIONAL,
		delta-codePhase-r15	INTEGER (0..7)						OPTIONAL
	]]
}

-- ASN1STOP

GNSS-MeasurementList field descriptions
gnss-ID
This field identifies the GNSS constellation on which the GNSS signal measurements were measured. Measurement information for up to 16 GNSSs can be included.
gnss-SgnMeasList
This list provides GNSS signal measurement information for up to 8 GNSS signal types per GNSS.
gnss-SignalID
This field identifies the signal on which GNSS signal measurement parameters were measured. 
gnss-CodePhaseAmbiguity
This field provides the ambiguity of the code phase measurement. It is given in units of milli-seconds in the range between between 0 and 127 milli-seconds.
The total code phase for a satellite k (Satk) is given modulo this gnss-CodePhaseAmbiguity and is reconstructed with:
Code_Phase_Tot(Satk) = codePhase(Satk) + integerCodePhase(Satk) + n * gnss-CodePhaseAmbiguity, n= 0,1,2,...
If there is no code phase ambiguity, the gnss-CodePhaseAmbiguity shall be set to 0.
The field is optional. If gnss-CodePhaseAmbiguity is absent, the default value is 1 milli-second.
gnss-SatMeasList
This list provides GNSS signal measurement information for up to 64 GNSS satellites.
svID
This field identifies the satellite on which the GNSS signal measurements were measured.
cNo
This field provides an estimate of the carrier‑to‑noise ratio of the received signal from the particular satellite. The target device shall set this field to the value of the satellite C/N0, as referenced to the antenna connector, in units of 1 dB‑Hz, in the range from 0 to 63 dB‑Hz.
Scale factor 1 dB‑Hz.
mpathDet
This field contains the multipath indicator value, defined in the table Value of mpathDet to Multipath Indication relation below.
carrierQualityInd
If the fields adrMSB, adrSign, adrRMSerror, and delta-codePhase are not present:
This field indicates the quality of a carrier phase measurement. The LSB indicates the data polarity, that is, if the data from a specific satellite is received inverted, this is indicated by setting the LSB value to '1'. In the case the data is not inverted, the LSB is set to '0'. The MSB indicates if accumulation of the carrier phase has been continuous, that is, without cycle slips since the previous measurement report. If the carrier phase accumulation has been continuous, the MSB value is set to '1X'. Otherwise, the MSB is set to '0X'.
This field is optional but shall be included if the adr field is included. See table Bit to Polarity Indication relation below.
If any of the fields adrMSB, adrSign, adrRMSerror, or delta-codePhase are present:
This field indicates the quality of a carrier phase measurement. The LSB indicates the half-cycle ambiguity, that is, if there are no half-cycle ambiguities present in the ADR measurement report the LSB is set to '0'. In case there are half-cycle ambiguities present in the ADR measurement report the LSB is set to '1'. When reporting ADR with unresolved polarity encoding the target device shall set this bit to 1.
The MSB indicates if accumulation of the carrier phase has been continuous, that is, without cycle slips since the previous measurement report. If the carrier phase accumulation has been continuous (no cycle slips), the MSB value is set to '1X'. Otherwise, the MSB is set to '0X'. If polarity resolution forced the ADR measurement to be corrected by half-a-cycle, then the MSB must be set to '0', indicating that despite continuous tracking the reported ADR experienced non-continuity. See table Bit to Ambiguity Indication relation below.
The target device shall include this field if the adr field is included.
codePhase
This field contains the whole and fractional value of the code-phase measurement made by the target device for the particular satellite signal at the time of measurement in the units of ms. GNSS specific code phase measurements (e.g. chips) are converted into unit of ms by dividing the measurements by the nominal values of the measured signal chipping rate.
Scale factor 2-21 milli‑seconds, in the range from 0 to (1-2-21) milli‑seconds.
integerCodePhase
This field indicates the integer milli‑second part of the code phase that is expressed modulo the gnss-CodePhaseAmbiguity. The value of the ambiguity is given in the gnss-CodePhaseAmbiguity field.
The integerCodePhase is optional. If integerCodePhase is absent, the default value is 0 milli-second.
Scale factor 1 milli-second, in the range from 0 to 127 milli‑seconds.
codePhaseRMSError
This field contains the pseudorange RMS error value. This parameter is specified according to a floating-point representation shown in the table below.
doppler
This field contains the Doppler measured by the target device for the particular satellite signal. This information can be used to compute the 3-D velocity of the target device. Doppler measurements are converted into unit of m/s by multiplying the Doppler measurement in Hz by the nominal wavelength of the measured signal.
Scale factor 0.04 meter/seconds. This field is optional, but shall be included, if the velocityRequest in CommonIEsRequestLocationInformation is set to TRUE.
adr
This field contains the absolute value of the ADR measurement measured by the target device for the particular satellite signal. This information can be used to compute the 3-D velocity or high-accuracy position of the target device. ADR measurements are converted into units of meter by multiplying the ADR measurement by the nominal wavelength of the measured signal.
Scale factor 2-10 meters, in the range from 0 to 32767.5 meters. This field is optional, but shall be included, if the adrMeasReq in GNSS-PositioningInstructions is set to TRUE and if ADR measurements are supported by the target device (i.e., adr-Support is set to TRUE in A-GNSS-ProvideCapabilities).
adrMSB
This field contains the 4-MSBs of the ADR measurement in case the ADR measurement is outside the range of the field adr alone. Scale factor 32768 meters.
If present, the full ADR measurement is constructed as adrMSB × 32768 + adr × 2-10 meters, representing measurements in the range from 0 to 524287.9990234375 meters.
This field is optional, but shall be included, if the capability adrEnhancementsSupport is set to TRUE and the ADR measurement is outside the range of the adr field.
adrSign
This field indicates the sign of the ADR measurement. 
adrRMSerror
This field contains the ADR root mean squared error value. Scale factor 2-10 meters.
delta-codePhase
This field specifies the higher resolution of the codePhase measurement. Scale factor 2-24 milli‑seconds.
The full code phase measurement is constructed as codePhase × 2-21 + delta-codePhase × 2-24 milli-seconds, in the range from 0 to (1-2-24) milli‑seconds.

Value of mpathDet to Multipath Indication relation
Value of mpathDet
Multipath Indication
00
Not measured
01
Low, MP error < 5m
10
Medium, 5m < MP error < 43m
11
High, MP error > 43m

Bit to Polarity Indication relation
Value
Polarity Indication
0
Data Direct, carrier phase not continuous
1
Data Inverted, carrier phase not continuous
2
Data Direct, carrier phase continuous
3
Data Inverted, carrier phase continuous

Bit to Ambiguity Indication relation
Value
Value MSB, LSB
Polarity Indication
0
00
carrier phase not continuous, no half-cycle ambiguity
1
01
carrier phase not continuous, half-cycle ambiguity
2
10
carrier phase continuous, no half-cycle ambiguity
3
11
carrier phase continuous, half-cycle ambiguity

floating-point representation
Index
Mantissa
Exponent
Floating-Point value, xi
Pseudorange value, P
0
000
000
0.5
P < 0.5
1
001
000
0.5625
0.5 <= P < 0.5625
I
x
y
0.5 * (1 + x/8) * 2y
xi-1 <= P < xi
62
110
111
112
104 <= P < 112
63
111
111
--
112 <= P


Figure 6.5.2.6-1: Exemplary calculation of some GNSS Signal Measurement Information fields.
–	GNSS-LocationInformation
The IE GNSS-LocationInformation is included by the target device when location and optionally velocity information derived using GNSS or hybrid GNSS and other measurements is provided to the location server.
-- ASN1START

GNSS-LocationInformation ::= SEQUENCE {
	measurementReferenceTime		MeasurementReferenceTime,
	agnss-List						GNSS-ID-Bitmap,					
	...
}

-- ASN1STOP

GNSS-LocationInformation field descriptions
measurementReferenceTime
This field specifies the GNSS system time for which the location estimate and optionally velocity are valid. It may also include GNSS-network time relationship, if requested by the location server and supported by the target device.
agnss-List
This field provides a list of satellite systems used by the target device to calculate the location estimate and velocity estimate, if included. This is represented by a bit string in GNSS-ID-Bitmap, with a one‑value at the bit position means the particular method has been used; a zero‑value means not used.

6.5.2.7	GNSS Location Information Request
–	A-GNSS-RequestLocationInformation
The IE A-GNSS-RequestLocationInformation is used by the location server to request location information from the target device using GNSS.
-- ASN1START

A-GNSS-RequestLocationInformation ::= SEQUENCE {
	gnss-PositioningInstructions		GNSS-PositioningInstructions,
	...
}

-- ASN1STOP

6.5.2.8	GNSS Location Information Request Elements
–	GNSS-PositioningInstructions
The IE GNSS-PositioningInstructions is used to provide GNSS measurement instructions.
-- ASN1START

GNSS-PositioningInstructions ::= SEQUENCE {
	gnss-Methods				GNSS-ID-Bitmap,	
	fineTimeAssistanceMeasReq	BOOLEAN,
	adrMeasReq					BOOLEAN,
	multiFreqMeasReq			BOOLEAN,
	assistanceAvailability		BOOLEAN,
	...,
	[[
		ha-GNSS-Req-r15			ENUMERATED { true }		OPTIONAL	-- Cond UEB
	]]
}

-- ASN1STOP

Conditional presence
Explanation
UEB
The field is optionally present, need OP, if the locationInformationType is set to locationEstimateRequired, locationEstimatePreferred, or locationMeasurementsPreferred; oltherwise it is not present.

GNSS-PositioningInstructions field descriptions
gnssMethods
This field indicates the satellite systems allowed by the location server. This is represented by a bit string in GNSS-ID-Bitmap, with a one‑value at the bit position means the particular GNSS is allowed; a zero‑value means not allowed. The target device shall not request assistance data or report or obtain measurements for systems that are not indicated in this bit map. At least one of the bits in this bit map shall be set to value one.
fineTimeAssistanceMeasReq
This field indicates whether the target device is requested to report GNSS-network time association. TRUE means requested.
adrMeasReq
This field indicates whether the target device is requested to include ADR measurements in GNSS-MeasurementList IE or not. TRUE means requested.
multiFreqMeasReq
This field indicates whether the target device is requested to report measurements on multiple supported GNSS signal types in GNSS-MeasurementList IE or not. TRUE means requested. 
assistanceAvailability
This field indicates whether the target device may request additional GNSS assistance data from the server. TRUE means allowed and FALSE means not allowed.
ha-GNSS-Req
This field, if present, indicates that any location estimate provided by the target device should be obtained using high accuracy RTK/PPP methods.

6.5.2.9	GNSS Capability Information
–	A-GNSS-ProvideCapabilities
The IE A-GNSS-Provide-Capabilities is used by the target device to indicate its capability to support A-GNSS and to provide its A-GNSS location capabilities (e.g., GNSSs and assistance data supported) to the location server.
-- ASN1START

A-GNSS-ProvideCapabilities ::= SEQUENCE {
	gnss-SupportList			GNSS-SupportList				OPTIONAL,
	assistanceDataSupportList	AssistanceDataSupportList		OPTIONAL,
	locationCoordinateTypes		LocationCoordinateTypes			OPTIONAL,
	velocityTypes				VelocityTypes					OPTIONAL,
	...,
	[[ periodicalReportingNotSupported-r14
								PositioningModes				OPTIONAL,
		idleStateForMeasurements-r14		
								ENUMERATED { required }			OPTIONAL
	]],
	[[ periodicAssistanceData-r15
								BIT STRING { solicited 	 (0),
											 unsolicited (1)	} (SIZE (1..8))		OPTIONAL
	]]
}

GNSS-SupportList ::= SEQUENCE (SIZE(1..16)) OF GNSS-SupportElement

GNSS-SupportElement ::= SEQUENCE {
	gnss-ID							GNSS-ID,
	sbas-IDs						SBAS-IDs					OPTIONAL,	-- Cond GNSS-ID-SBAS
	agnss-Modes						PositioningModes,
	gnss-Signals					GNSS-SignalIDs,
	fta-MeasSupport					SEQUENCE {
										cellTime	AccessTypes,
										mode		PositioningModes,
										...
									}							OPTIONAL,	-- Cond fta
	adr-Support						BOOLEAN,
	velocityMeasurementSupport		BOOLEAN,
	...,
	[[
		adrEnhancementsSupport-r15	ENUMERATED { true }			OPTIONAL,
		ha-gnss-Modes-r15			PositioningModes			OPTIONAL
	]]
}

AssistanceDataSupportList ::= SEQUENCE {
	gnss-CommonAssistanceDataSupport	GNSS-CommonAssistanceDataSupport,
	gnss-GenericAssistanceDataSupport	GNSS-GenericAssistanceDataSupport,
	...
}


-- ASN1STOP

Conditional presence
Explanation
GNSS‑ID‑SBAS
The field is mandatory present if the GNSS‑ID = sbas; otherwise it is not present.
fta
The field is mandatory present if the target device supports the reporting of fine time assistance measurements; otherwise it is not present.

A-GNSS-ProvideCapabilities field descriptions
gnss-SupportList
This field specifies the list of GNSS supported by the target device and the target device capabilities associated with each of the supported GNSS. This field shall be present if the gnss-SupportListReq in the A-GNSS -RequestCapabilities IE is set to TRUE and if the target device supports the A-GNSS positioning method. If the IE A-GNSS-Provide-Capabilities is provided unsolicited, this field shall be included if the target device supports the assisted GNSS positioning method.
gnss-ID
This field specifies the GNSS supported by the target device for which the capabilities in GNSS-SupportElement are provided.
sbas-IDs
This field specifies the SBAS(s) supported by the target device. This is represented by a bit string, with a one‑value at the bit position means the particular SBAS is supported; a zero‑value means not supported.
agnss-Modes
This field specifies the GNSS mode(s) supported by the target device for the GNSS indicated by gnss-ID. This is represented by a bit string, with a one‑value at the bit position means the particular GNSS mode is supported; a zero‑value means not supported.
gnss-Signals
This field specifies the GNSS signal(s) supported by the target device for the GNSS indicated by gnss-ID. This is represented by a bit string, with a one‑value at the bit position means the particular GNSS signal type is supported; a zero‑value means not supported.
fta-MeasSupport
This field specifies that the target device is capable of performing fine time assistance measurements (i.e., GNSS‑cellular time association reporting). The cellTime field specifies for which cellular network(s) this capability is supported. This is represented by a bit string, with a one‑value at the bit position means FTA measurements for the specific cellular network time is supported; a zero‑value means not supported. The mode field specifies for which GNSS mode(s) FTA measurements are supported by the target device. This is represented by a bit string, with a one‑value at the bit position means FTA measurements for the GNSS mode is supported; a zero‑value means not supported.
adr-Support
This field specifies whether the target device supports ADR measurement reporting. TRUE means supported.
velocityMeasurementSupport
This field specifies whether the target device supports measurement reporting related to velocity. TRUE means supported.
assistanceDataSupportList
This list defines the assistance data and assistance data choices supported by the target device. This field shall be present if the assistanceDataSupportListReq in the A-GNSS-RequestCapabilities IE is set to TRUE and if the target device supports GNSS assistance data. If the IE A-GNSS-Provide-Capabilities is provided unsolicited, this field shall be included if the target device supports any GNSS assistance data.
locationCoordinateTypes
This parameter identifies the geographical location coordinate types that a target device supports for GNSS. TRUE indicates that a location coordinate type is supported and FALSE that it is not. This field shall be present if the locationVelocityTypesReq in the A-GNSS-RequestCapabilities IE is set to TRUE and if the target device supports UE-based or standalone GNSS positioning method. If the IE A-GNSS-Provide-Capabilities is provided unsolicited, this field shall be included if the target device supports UE-based or standalone GNSS positioning method.
velocityTypes
This parameter identifies the velocity types that a target device supports for GNSS. TRUE indicates that a velocity type is supported and FALSE that it is not. FALSE for all velocity types indicates that velocity reporting is not supported. This field shall be present if the locationVelocityTypesReq in the A-GNSS-RequestCapabilities IE is set to TRUE and if the target device supports UE-based or standalone GNSS positioning method. If the IE A-GNSS-Provide-Capabilities is provided unsolicited, this field shall be included if the target device supports UE-based or standalone GNSS positioning method.
periodicalReportingNotSupported
This field, if present, specifies the positioning modes for which the target device does not support periodicalReporting. This is represented by a bit string, with a one‑value at the bit position means periodicalReporting for the positioning mode is not supported; a zero‑value means supported. If this field is absent, the location server may assume that the target device supports periodicalReporting in CommonIEsRequestLocationInformation for each supported positioning mode.
idleStateForMeasurements
This field, if present, indicates that the target device requires idle state to perform GNSS measurements.
periodicAssistanceData
This field identifies the periodic assistance data delivery procedures supported by the target device. This is represented by a bit string, with a one value at the bit position means the periodic assistance data delivery procedure is supported; a zero value means not supported. Bit 0 (solicited) represents the procedure according to clause 5.2.1a; bit (1) (unsolicited) represents the procedure according to clause 5.2.2a.
adrEnhancementsSupport
This field, if present, indicates that the target device supports the fields adrMSB, adrSign, adrRMSerror, and delta‑codePhase in IE GNSS-MeasurementList.
This field may only be present if adr-Support is set to TRUE, and shall be absent if adr-Support is set to FALSE.
ha-gnss-Modes
This field specifies the High-Accuracy GNSS mode(s) supported by the target device for the GNSS indicated by gnss‑ID. This is represented by a bit string, with a one‑value at the bit position means the particular GNSS mode is supported; a zero‑value means not supported.

6.5.2.10	GNSS Capability Information Elements
–	GNSS-CommonAssistanceDataSupport
The IE GNSS-CommonAssistanceDataSupport is used by the target device to provide information on supported GNSS common assistance data types to the location server.
-- ASN1START

GNSS-CommonAssistanceDataSupport ::= SEQUENCE {
	gnss-ReferenceTimeSupport				GNSS-ReferenceTimeSupport				
																OPTIONAL, -- Cond RefTimeSup
	gnss-ReferenceLocationSupport			GNSS-ReferenceLocationSupport			
																OPTIONAL, -- Cond RefLocSup
	gnss-IonosphericModelSupport			GNSS-IonosphericModelSupport				
																OPTIONAL, -- Cond IonoModSup
	gnss-EarthOrientationParametersSupport	GNSS-EarthOrientationParametersSupport	
																OPTIONAL, -- Cond EOPSup
	...,
	[[
		gnss-RTK-ReferenceStationInfoSupport-r15	
											GNSS-RTK-ReferenceStationInfoSupport-r15
																OPTIONAL, -- Cond ARPSup
		gnss-RTK-AuxiliaryStationDataSupport-r15
											GNSS-RTK-AuxiliaryStationDataSupport-r15
																OPTIONAL -- Cond AuxARPSup
	]]
}

-- ASN1STOP

Conditional presence
Explanation
RefTimeSup
The field is mandatory present if the target device supports GNSS-ReferenceTime; otherwise it is not present.
RefLocSup
This field is mandatory present if the target device supports GNSS-ReferenceLocation; otherwise it is not present.
IonoModSup
This field is mandatory present if the target device supports GNSS-IonosphericModel; otherwise it is not present.
EOPSup
This field is mandatory present if the target device supports GNSS-EarthOrientationParameters; otherwise it is not present.
ARPSup
This field is mandatory present if the target device supports GNSS‑RTK‑ReferenceStationInfo; otherwise it is not present.
AuxARPSup
This field is mandatory present if the target device supports GNSS‑RTK‑AuxiliaryStationData; otherwise it is not present.

–	GNSS-ReferenceTimeSupport
-- ASN1START

GNSS-ReferenceTimeSupport ::=	SEQUENCE {
	gnss-SystemTime		GNSS-ID-Bitmap,
	fta-Support			AccessTypes										OPTIONAL, -- Cond fta
	...
}

-- ASN1STOP

Conditional presence
Explanation
fta
The field is mandatory present if the target device supports fine time assistance in GNSSReferenceTime IE; otherwise it is not present.

GNSS-ReferenceTimeSupport field descriptions
gnss-SystemTime
This field specifies the GNSS system time(s) supported by the target device. This is represented by a bit string in GNSS-ID-Bitmap, with a one‑value at the bit position means the particular GNSS system time is supported; a zero‑value means not supported.
fta-Support
This field specifies that the target device supports fine time assistance (i.e., GNSS‑cellular time association) in GNSS-ReferenceTime IE. This is represented by a bit string in AccessTypes, with a one‑value at the bit position means FTA for the specific cellular network time is supported; a zero‑value means not supported. 

–	GNSS-ReferenceLocationSupport
-- ASN1START

GNSS-ReferenceLocationSupport ::=	SEQUENCE {
	...
}

-- ASN1STOP

–	GNSS-IonosphericModelSupport
-- ASN1START

GNSS-IonosphericModelSupport ::=	SEQUENCE {
	ionoModel		BIT STRING {	klobuchar	(0),
									neQuick		(1) } (SIZE (1..8)),
	...
}

-- ASN1STOP

GNSS-IonosphericModelSupport field descriptions
ionoModel
This field specifies the ionospheric model(s) supported by the target device. This is represented by a bit string, with a one‑value at the bit position means the particular ionospheric model is supported; a zero‑value means not supported.

–	GNSS-EarthOrientationParametersSupport
-- ASN1START

GNSS-EarthOrientationParametersSupport ::=	SEQUENCE {
	...
}

-- ASN1STOP

–	GNSS-RTK-ReferenceStationInfoSupport
-- ASN1START

GNSS-RTK-ReferenceStationInfoSupport-r15 ::= 	SEQUENCE {
	...
}

-- ASN1STOP

–	GNSS-RTK-AuxiliaryStationDataSupport
-- ASN1START

GNSS-RTK-AuxiliaryStationDataSupport-r15 ::= 	SEQUENCE {
	...
}

-- ASN1STOP

–	GNSS-GenericAssistanceDataSupport
The IE GNSS-GenericAssistanceDataSupport is used by the target device to provide information on supported GNSS generic assistance data types to the location server for each supported GNSS.
-- ASN1START

GNSS-GenericAssistanceDataSupport ::=
								SEQUENCE (SIZE (1..16)) OF GNSS-GenericAssistDataSupportElement

GNSS-GenericAssistDataSupportElement ::= SEQUENCE {
	gnss-ID								GNSS-ID,
	sbas-ID								SBAS-ID						OPTIONAL, -- Cond GNSS‑ID‑SBAS
	gnss-TimeModelsSupport				GNSS-TimeModelListSupport
																	OPTIONAL, -- Cond TimeModSup
	gnss-DifferentialCorrectionsSupport	GNSS-DifferentialCorrectionsSupport
																	OPTIONAL, -- Cond DGNSS-Sup
	gnss-NavigationModelSupport			GNSS-NavigationModelSupport
																	OPTIONAL, -- Cond NavModSup
	gnss-RealTimeIntegritySupport		GNSS-RealTimeIntegritySupport
																	OPTIONAL, -- Cond RTISup
	gnss-DataBitAssistanceSupport		GNSS-DataBitAssistanceSupport
																	OPTIONAL, -- Cond DataBitsSup
	gnss-AcquisitionAssistanceSupport	GNSS-AcquisitionAssistanceSupport
																	OPTIONAL, -- Cond AcquAssistSup
	gnss-AlmanacSupport					GNSS-AlmanacSupport
																	OPTIONAL, -- Cond AlmanacSup
	gnss-UTC-ModelSupport				GNSS-UTC-ModelSupport
																	OPTIONAL, -- Cond UTCModSup
	gnss-AuxiliaryInformationSupport	GNSS-AuxiliaryInformationSupport
																	OPTIONAL, -- Cond AuxInfoSup
	...,
	[[
		bds-DifferentialCorrectionsSupport-r12
										BDS-DifferentialCorrectionsSupport-r12
																	OPTIONAL, -- Cond DBDS-Sup
		bds-GridModelSupport-r12		BDS-GridModelSupport-r12
																	OPTIONAL	-- Cond BDS-GridModSup
	]],
	[[
		gnss-RTK-ObservationsSupport-r15
										GNSS-RTK-ObservationsSupport-r15
																	OPTIONAL,	-- Cond RTK-OSR-Sup
		glo-RTK-BiasInformationSupport-r15	
										GLO-RTK-BiasInformationSupport-r15	
																	OPTIONAL,	-- Cond GLO-CPB-Sup
		gnss-RTK-MAC-CorrectionDifferencesSupport-r15
										GNSS-RTK-MAC-CorrectionDifferencesSupport-r15
																	OPTIONAL,	-- Cond MAC-Sup
		gnss-RTK-ResidualsSupport-r15	GNSS-RTK-ResidualsSupport-r15
																	OPTIONAL,	-- Cond Res-Sup
		gnss-RTK-FKP-GradientsSupport-r15
										GNSS-RTK-FKP-GradientsSupport-r15
																	OPTIONAL,	-- Cond FKP-Sup
		gnss-SSR-OrbitCorrectionsSupport-r15
										GNSS-SSR-OrbitCorrectionsSupport-r15
																	OPTIONAL, -- Cond OC-Sup
		gnss-SSR-ClockCorrectionsSupport-r15
										GNSS-SSR-ClockCorrectionsSupport-r15
																	OPTIONAL, -- Cond CC-Sup
		gnss-SSR-CodeBiasSupport-r15	GNSS-SSR-CodeBiasSupport-r15
																	OPTIONAL -- Cond CB-Sup
	]]
}

-- ASN1STOP

Conditional presence
Explanation
GNSS‑ID‑SBAS
The field is mandatory present if the GNSS‑ID = sbas; otherwise it is not present.
TimeModSup
The field is mandatory present if the target device supports GNSS-TimeModelList; otherwise it is not present.
DGNSS-Sup
The field is mandatory present if the target device supports GNSS-DifferentialCorrections; otherwise it is not present.
NavModSup
The field is mandatory present if the target device supports GNSS-NavigationModel; otherwise it is not present.
RTISup
The field is mandatory present if the target device supports GNSS-RealTimeIntegrity; otherwise it is not present.
DataBitsSup
The field is mandatory present if the target device supports GNSS-DataBitAssistance; otherwise it is not present.
AcquAssistSup
The field is mandatory present if the target device supports GNSS-AcquisitionAssistance; otherwise it is not present.
AlmanacSup
The field is mandatory present if the target device supports GNSS-Almanac; otherwise it is not present.
UTCModSup
The field is mandatory present if the target device supports GNSS-UTC-Model; otherwise it is not present.
AuxInfoSup
The field is mandatory present if the target device supports GNSS-AuxiliaryInformation; otherwise it is not present.
DBDS-Sup
The field is mandatory present if the target device supports BDS-DifferentialCorrections; otherwise it is not present. This field may only be present if gnss-ID indicates 'bds'.
BDS-GridModSup
The field is mandatory present if the target device supports BDS-GridModel; otherwise it is not present. This field may only be present if gnss-ID indicates 'bds'.
RTK-OSR-Sup
The field is mandatory present if the target device supports GNSS-RTK-Observations; otherwise it is not present. Note, support for GNSS-RTK-Observations implies support for GNSS-RTK-CommonObservationInfo as well.
GLO-CPB-Sup
The field is mandatory present if the target device supports GLO‑RTK‑BiasInformation; otherwise it is not present. This field may only be present if gnss-ID indicates 'glonass'.
MAC-Sup
The field is mandatory present if the target device supports GNSS‑RTK‑MAC‑CorrectionDifferences; otherwise it is not present.
Res-Sup
The field is mandatory present if the target device supports GNSS‑RTK‑Residuals; otherwise it is not present.
FKP-Sup
The field is mandatory present if the target device supports GNSS‑RTK‑FKP‑Gradients; otherwise it is not present.
OC-Sup
The field is mandatory present if the target device supports GNSS‑SSR‑OrbitCorrections; otherwise it is not present.
CC-Sup
The field is mandatory present if the target device supports GNSS‑SSR‑ClockCorrections; otherwise it is not present.
CB-Sup
The field is mandatory present if the target device supports GNSS‑SSR‑CodeBias; otherwise it is not present.

–	GNSS-TimeModelListSupport
-- ASN1START

GNSS-TimeModelListSupport ::=	SEQUENCE {
	...
}

-- ASN1STOP

–	GNSS-DifferentialCorrectionSupport
-- ASN1START

GNSS-DifferentialCorrectionsSupport ::=	SEQUENCE {
	gnssSignalIDs			GNSS-SignalIDs,
	dgnss-ValidityTimeSup	BOOLEAN,
	...
}

-- ASN1STOP

GNSS-DifferentialCorrectionsSupport field descriptions
gnssSignalIDs
This field specifies the GNSS signal types for which differential corrections are supported by the target device. This is represented by a bit string in GNSS-SignalIDs, with a one‑value at the bit position means differential corrections for the particular GNSS signal type is supported; a zero‑value means not supported.
dgnss-ValidityTimeSup
This field specifies if the target device supports estimation of UDRE based on growth rate and validity time for differential corrections. TRUE means supported.

–	GNSS-NavigationModelSupport
-- ASN1START

GNSS-NavigationModelSupport ::= SEQUENCE {
	clockModel		BIT STRING {	model-1		(0),
									model-2		(1),
									model-3		(2),
									model-4		(3),
									model-5		(4),
									model-6		(5) } (SIZE (1..8))		OPTIONAL,
	orbitModel		BIT STRING {	model-1		(0),
									model-2		(1),
									model-3		(2),
									model-4		(3),
									model-5		(4),
									model-6		(5) } (SIZE (1..8))		OPTIONAL,
	...
}

-- ASN1STOP

GNSS-NavigationModelSupport field descriptions
clockModel
This field specifies the gnss-ClockModel choice(s) in GNSS-NavigationModel IE supported by the target device for the GNSS indicated by GNSS‑ID. This is represented by a bit string, with a one‑value at the bit position means the particular clock model is supported; a zero‑value means not supported.
If the target device supports GPS and GNSS-NavigationModel assistance, it shall support clockModel Model-2.
If the target device supports SBAS and GNSS-NavigationModel assistance, it shall support clockModel Model-5.
If the target device supports QZSS and GNSS-NavigationModel assistance, it shall support clockModel Model-2.
If the target device supports Galileo and GNSS-NavigationModel assistance, it shall support clockModel Model-1.
If the target device supports GLONASS and GNSS-NavigationModel assistance, it shall support clockModel Model-4.
If the target device supports BDS and GNSS-NavigationModel assistance, it shall support clockModel Model-6.
If this field is absent, the target device supports the mandatory (native) clockModel choice only as listed above for the GNSS indicated by GNSS‑ID. 
orbitModel
This field specifies the gnss-OrbitModel choice(s) in GNSS-NavigationModel IE supported by the target device for the GNSS indicated by GNSS‑ID. This is represented by a bit string, with a one‑value at the bit position means the particular orbit model is supported; a zero‑value means not supported.
If the target device supports GPS and GNSS-NavigationModel assistance, it shall support orbitModel Model-2.
If the target device supports SBAS and GNSS-NavigationModel assistance, it shall support orbitModel Model-5.
If the target device supports QZSS and GNSS-NavigationModel assistance, it shall support orbitModel Model-2.
If the target device supports Galileo and GNSS-NavigationModel assistance, it shall supportorbitModel Model-1.
If the target device supports GLONASS and GNSS-NavigationModel assistance, it shall support orbitModel Model-4.
If the target device supports BDS and GNSS-NavigationModel assistance, it shall support orbitModel Model-6.
If this field is absent, the target device supports the mandatory (native) orbitModel choice only as listed above for the GNSS indicated by GNSS‑ID.

–	GNSS-RealTimeIntegritySupport
-- ASN1START

GNSS-RealTimeIntegritySupport ::=	SEQUENCE {
	...
}

-- ASN1STOP

–	GNSS-DataBitAssistanceSupport
-- ASN1START

GNSS-DataBitAssistanceSupport ::=	SEQUENCE {
	...
}

-- ASN1STOP

–	GNSS-AcquisitionAssistanceSupport
-- ASN1START

GNSS-AcquisitionAssistanceSupport ::=	SEQUENCE {
	...,
	confidenceSupport-r10					ENUMERATED { true }		OPTIONAL,
	dopplerUncertaintyExtSupport-r10		ENUMERATED { true }		OPTIONAL
}

-- ASN1STOP

GNSS-AcquisitionAssistanceSupport field descriptions
confidenceSupport
If this field is present, the target device supports the confidence field in GNSS-AcquisitionAssistance. 
dopplerUncertaintyExtSupport
If this field is present, the target device supports the dopplerUncertaintyExt field in GNSS-AcquisitionAssistance.

–	GNSS-AlmanacSupport
-- ASN1START

GNSS-AlmanacSupport ::=	SEQUENCE {
	almanacModel		BIT STRING {	model-1		(0),
										model-2		(1),
										model-3		(2),
										model-4		(3),
										model-5		(4),
										model-6		(5),
										model-7		(6) } (SIZE (1..8))		OPTIONAL,
	...
}

-- ASN1STOP

GNSS-AlmanacSupport field descriptions
almanacModel
This field specifies the almanacModel choice(s) in GNSS-Almanac IE supported by the target device for the GNSS indicated by GNSS‑ID. This is represented by a bit string, with a one‑value at the bit position means the particular almanac model is supported; a zero‑value means not supported.
If the target device supports GPS and GNSS-Almanac assistance, it shall support Model-2.
If the target device supports SBAS and GNSS-Almanac assistance, it shall support Model-6.
If the target device supports QZSS and GNSS-Almanac assistance, it shall support Model-2.
If the target device supports Galileo and GNSS-Almanac assistance, it shall support Model-1.
If the target device supports GLONASS and GNSS-Almanac assistance, it shall support Model-5.
If the target device supports BDS and GNSS-Almanac assistance, it shall support Model-7.
If this field is absent, the target device supports the mandatory (native) almanacModel choice only as listed above for the GNSS indicated by GNSS‑ID.

–	GNSS-UTC-ModelSupport
-- ASN1START

GNSS-UTC-ModelSupport ::=	SEQUENCE {
	utc-Model		BIT STRING {	model-1		(0),
									model-2		(1),
									model-3		(2),
									model-4		(3),
									model-5		(4) } (SIZE (1..8))		OPTIONAL,
	...
}

-- ASN1STOP

GNSS-UTC-ModelSupport field descriptions
utc-Model
This field specifies the GNSS-UTC-Model choice(s) in GNSS-UTC-Model IE supported by the target device for the GNSS indicated by GNSS‑ID. This is represented by a bit string, with a one‑value at the bit position means the particular UTC model is supported; a zero‑value means not supported.
If the target device supports GPS and GNSS-UTC-Model assistance, it shall support Model-1.
If the target device supports SBAS and GNSS-UTC-Model assistance, it shall support Model-4.
If the target device supports QZSS and GNSS-UTC-Model assistance, it shall support Model-1.
If the target device supports Galileo and GNSS-UTC-Model assistance, it shall support Model-1.
If the target device supports GLONASS and GNSS-UTC-Model assistance, it shall support Model-3.
If the target device supports BDS and GNSS-UTC-Model assistance, it shall support Model-5.
If this field is absent, the target device supports the mandatory (native) utc-Model choice only as listed above for the GNSS indicated by GNSS‑ID.

–	GNSS-AuxiliaryInformationSupport
-- ASN1START

GNSS-AuxiliaryInformationSupport ::=	SEQUENCE {
	...
}

-- ASN1STOP

–	BDS-DifferentialCorrectionsSupport
-- ASN1START

BDS-DifferentialCorrectionsSupport-r12 ::=	SEQUENCE {
	gnssSignalIDs			GNSS-SignalIDs,
	...
}

-- ASN1STOP

BDS-DifferentialCorrectionsSupport field descriptions
gnssSignalIDs
This field specifies the BDS signal types for which differential corrections are supported by the target device. This is represented by a bit string in GNSS-SignalIDs, with a one‑value at the bit position means differential corrections for the particular BDS signal type is supported; a zero‑value means not supported.

–	BDS-GridModelSupport
-- ASN1START

BDS-GridModelSupport-r12 ::=	SEQUENCE {
	...
}

-- ASN1STOP

–	GNSS-RTK-ObservationsSupport
-- ASN1START

GNSS-RTK-ObservationsSupport-r15 ::= 	SEQUENCE {
	gnssSignalIDs-r15			GNSS-SignalIDs,
	...
}

-- ASN1STOP

GNSS-RTK-ObservationsSupport field descriptions
gnssSignalIDs
This field specifies the GNSS signal types for which GNSS-RTK-Observations are supported by the target device. This is represented by a bit string in GNSS-SignalIDs, with a one‑value at the bit position means GNSS‑RTK‑Observations for the particular GNSS signal type is supported; a zero‑value means not supported.

–	GLO-RTK-BiasInformationSupport
-- ASN1START

GLO-RTK-BiasInformationSupport-r15 ::= 	SEQUENCE {
	...
}

-- ASN1STOP

–	GNSS-RTK-MAC-CorrectionDifferencesSupport
-- ASN1START

GNSS-RTK-MAC-CorrectionDifferencesSupport-r15 ::= 	SEQUENCE {
	link-combinations-support-r15		GNSS-Link-CombinationsList-r15,
	...
}

-- ASN1STOP

GNSS-RTK-MAC-CorrectionDifferencesSupport field descriptions
link-combinations-support
This field specifies the GNSS link/frequency combinations for which GNSS-RTK-MAC-CorrectionDifferences are supported by the target device for the GNSS indicated by GNSS-ID.

–	GNSS-RTK-ResidualsSupport
-- ASN1START

GNSS-RTK-ResidualsSupport-r15 ::= 	SEQUENCE {
	link-combinations-support-r15		GNSS-Link-CombinationsList-r15,
	...
}

-- ASN1STOP

GNSS-RTK-ResidualsSupport field descriptions
link-combinations-support
This field specifies the GNSS link/frequency combinations for which GNSS-RTK-Residuals are supported by the target device for the GNSS indicated by GNSS-ID.

–	GNSS-RTK-FKP-GradientsSupport
-- ASN1START

GNSS-RTK-FKP-GradientsSupport-r15 ::= 	SEQUENCE {
	link-combinations-support-r15		GNSS-Link-CombinationsList-r15,
	...
}

-- ASN1STOP

GNSS-RTK-FKP-GradientsSupport field descriptions
link-combinations-support
This field specifies the GNSS link/frequency combinations for which GNSS-RTK-FKP-Gradients are supported by the target device for the GNSS indicated by GNSS-ID.

–	GNSS-SSR-OrbitCorrectionsSupport
-- ASN1START

GNSS-SSR-OrbitCorrectionsSupport-r15 ::= 	SEQUENCE {
	...
}

-- ASN1STOP

–	GNSS-SSR-ClockCorrectionsSupport
-- ASN1START

GNSS-SSR-ClockCorrectionsSupport-r15 ::= 	SEQUENCE {
	...
}

-- ASN1STOP

–	GNSS-SSR-CodeBiasSupport
-- ASN1START

GNSS-SSR-CodeBiasSupport-r15 ::= SEQUENCE {
	signal-and-tracking-mode-ID-Sup-r15		GNSS-SignalIDs,
	...
}

-- ASN1STOP

GNSS-SSR-CodeBiasSupport field descriptions
signal-and-tracking-mode-ID-Sup
This field specifies the GNSS signal(s) for which the GNSS-SSR-CodeBias is supported by the target device. 

6.5.2.11	GNSS Capability Information Request
–	A-GNSS-RequestCapabilities
The IE A-GNSS-Request-Capabilities is used by the location server to request A-GNSS location capabilities (e.g., GNSSs and assistance data supported) from the target device.
-- ASN1START

A-GNSS-RequestCapabilities ::= SEQUENCE {
	gnss-SupportListReq				BOOLEAN,
	assistanceDataSupportListReq	BOOLEAN,
	locationVelocityTypesReq		BOOLEAN,
	...
}

-- ASN1STOP

A-GNSS-RequestCapabilities field descriptions
gnss-SupportListReq
This field specifies whether the target device is requested to include the gnss-SupportList field in the A-GNSS-ProvideCapabilities IE or not. TRUE means requested.
assistanceDataSupportListReq
This field specifies whether the target device is requested to include the assistanceDataSupportList field in the A‑GNSS‑ProvideCapabilities IE or not. TRUE means requested.
locationVelocityTypesReq
This field specifies whether the target device is requested to include the locationCoordinateTypes field and velocityTypes field in the A-GNSS-ProvideCapabilities IE or not. TRUE means requested.

6.5.2.12	GNSS Error Elements
–	A-GNSS-Error
The IE A-GNSS-Error is used by the location server or target device to provide GNSS error reasons.
-- ASN1START

A-GNSS-Error ::= CHOICE {
	locationServerErrorCauses		GNSS-LocationServerErrorCauses,
	targetDeviceErrorCauses			GNSS-TargetDeviceErrorCauses,
	...
}

-- ASN1STOP

–	GNSS-LocationServerErrorCauses
The IE GNSS-LocationServerErrorCauses is used by the location server to provide GNSS error reasons to the target device.
-- ASN1START

GNSS-LocationServerErrorCauses ::= SEQUENCE {
	cause		ENUMERATED	{	
					undefined,
					undeliveredAssistanceDataIsNotSupportedByServer,
					undeliveredAssistanceDataIsSupportedButCurrentlyNotAvailableByServer,								undeliveredAssistanceDataIsPartlyNotSupportedAndPartlyNotAvailableByServer,
					...,
				unconfirmedPeriodicAssistanceDataIsNotSupported-v1510,
				unconfirmedPeriodicAssistanceDataIsSupportedButCurrentlyNotAvailable-v1510,
				unconfirmedPeriodicAssistanceDataIsPartlyNotSupportedAndPartlyNotAvailable-v1510,
				undeliveredPeriodicAssistanceDataIsCurrentlyNotAvailable-v1510
					},
	...
}

-- ASN1STOP

GNSS-LocationServerErrorCauses field descriptions
cause
This field provides a GNSS specific error cause. The cause values 'unconfirmedPeriodicAssistanceDataIsNotSupported', 'unconfirmedPeriodicAssistanceDataIsSupportedButCurrentlyNotAvailable' and 'unconfirmedPeriodicAssistanceDataIsPartlyNotSupportedAndPartlyNotAvailable' may only be included in the control transaction of a periodic assistance data transfer procedure, as described in clause 5.2.1a.
The cause value 'undeliveredPeriodicAssistanceDataIsCurrentlyNotAvailable' may only be included in the data transaction of a periodic assistance data transfer procedure when periodic assistance data are not available when the periodicity condition occurs, as described in clauses 5.2.1a and 5.2.2a.

–	GNSS-TargetDeviceErrorCauses
The IE GNSS-TargetDeviceErrorCauses is used by the target device to provide GNSS error reasons to the location server.
-- ASN1START

GNSS-TargetDeviceErrorCauses ::= SEQUENCE {
	cause		ENUMERATED {	undefined,
								thereWereNotEnoughSatellitesReceived,
								assistanceDataMissing,
								notAllRequestedMeasurementsPossible,
								...
							},
	fineTimeAssistanceMeasurementsNotPossible		NULL		OPTIONAL,
	adrMeasurementsNotPossible						NULL		OPTIONAL,
	multiFrequencyMeasurementsNotPossible			NULL		OPTIONAL,
	...
}

-- ASN1STOP

GNSS-TargetDeviceErrorCauses field descriptions
cause
This field provides a GNSS specific error cause. If the cause value is 'notAllRequestedMeasurementsPossible', the target device was not able to provide all requested GNSS measurements (but may be able to report a location estimate or location measurements). In this case, the target device should include any of the fineTimeAssistanceMeasurementsNotPossible, adrMeasurementsNotPossible, or multiFrequenceMeasurementsNotPossible fields, as applicable.

6.5.2.13	Common GNSS Information Elements
–	GNSS-FrequencyID
The IE GNSS-FrequencyID is used to indicate a specific GNSS link/frequency. The interpretation of GNSS‑FrequencyID depends on the GNSS‑ID.
-- ASN1START

GNSS-FrequencyID-r15	::= SEQUENCE {
	gnss-FrequencyID-r15		INTEGER (0 .. 7),
	...
}

-- ASN1STOP

GNSS-FrequencyID field descriptions
gnss-FrequencyID
This field specifies a particular GNSS link/frequency. The interpretation of gnss-FrequencyID depends on the GNSS‑ID and is as shown in the table Value & Explanation relation below.

Value & Explanation relation
System
Value
Explanation


Link
Centre Frequency
[MHz]
GPS
0
L1
1575.42

1
L2
1227.60

2
L5
1176.45

3-7
reserved
SBAS
0
L1
1575.42

1
L5
1176.45

2-7
reserved
QZSS
0
L1
1575.42

1
L2
1227.60

2
L5
1176.45

3-7
reserved
GLONASS
k = -7..13
0
G1
1602+k×0.5625

1
G2
1246+k×0.4375

2
G3
1202.025

3-7
reserved
Galileo
0
E1
1575.420

1
E6
1278.750

2
E5a
1176.450

3
E5b
1207.140

4
E5
1191.795

5-7
reserved
BDS
0
B1 (Phase II)
1561.098

1
B1 (Phase III)
1575.420

2
B2
1207.140

3
B3
1268.520

4-7
reserved

–	GNSS-ID
The IE GNSS-ID is used to indicate a specific GNSS.
-- ASN1START

GNSS-ID ::= SEQUENCE {
	gnss-id				ENUMERATED{ gps, sbas, qzss, galileo, glonass, ..., bds },
	...
}

-- ASN1STOP

–	GNSS-ID-Bitmap
The IE GNSS-ID-Bitmap is used to indicate several GNSSs using a bit map.
-- ASN1START

GNSS-ID-Bitmap ::= SEQUENCE {
	gnss-ids			BIT STRING {	gps			(0),	
										sbas		(1),
										qzss		(2),
										galileo		(3),
										glonass		(4),
										bds			(5) } (SIZE (1..16)),
	...
}

-- ASN1STOP

GNSS-ID-Bitmap field descriptions
gnss‑ids
This field specifies the GNSS(s). This is represented by a bit string, with a one‑value at the bit position means the particular GNSS is addressed; a zero‑value means not addressed.

–	GNSS-Link-CombinationsList
-- ASN1START

GNSS-Link-CombinationsList-r15 ::= SEQUENCE (SIZE(1..8)) OF GNSS-Link-Combinations-r15

GNSS-Link-Combinations-r15 ::= SEQUENCE {
	l1-r15		GNSS-FrequencyID-r15,
	l2-r15		GNSS-FrequencyID-r15,
	...
}

-- ASN1STOP

–	GNSS-NavListInfo
-- ASN1START

GNSS-NavListInfo-r15 ::= SEQUENCE (SIZE (1..64)) OF SatListElement-r15

SatListElement-r15 ::= SEQUENCE {
	svID-r15		SV-ID,
	iod-r15			BIT STRING (SIZE(11)),
	...
}

-- ASN1STOP

–	GNSS-NetworkID
The IE GNSS-NetworkID defines the reference network and the source of the particular set of reference stations and their observation information. This IE is used for MAC Network RTK as described in [30].
-- ASN1START

GNSS-NetworkID-r15 ::= SEQUENCE {
	networkID-r15					INTEGER (0..255),
	...
}

-- ASN1STOP

–	GNSS-PeriodicControlParam
The IE GNSS-PeriodicControlParam is used to specify control parameters for a periodic assistance data delivery.
-- ASN1START

GNSS-PeriodicControlParam-r15 ::= SEQUENCE {
	deliveryAmount-r15			INTEGER (1..32),
	deliveryInterval-r15		INTEGER (1..64),
	...
}

-- ASN1STOP

GNSS-PeriodicControlParam field descriptions
deliveryAmount
This field specifies the number of periodic assistance data deliveries. Integer values N=1…31 correspond to an amount of 2N. Integer value N=32 indicates an 'infinite/indefinite' amount, which means that the assistance data delivery should continue until a LPP Abort message is received. 
deliveryInterval
This field specifies the interval between assistance data deliveries in seconds. 

–	GNSS-ReferenceStationID
The IE GNSS-ReferenceStationID is used to identify a specific GNSS Reference Station.
-- ASN1START

GNSS-ReferenceStationID-r15 ::= SEQUENCE {
	referenceStationID-r15			INTEGER (0..65535),
	providerName-r15				VisibleString (SIZE (1..32))		OPTIONAL,
	...
}

-- ASN1STOP

GNSS-ReferenceStationID field descriptions
referenceStationID
This field provides the reference station identity. 
providerName
This field is associated to a GNSS correction data provider to ensure that the referenceStationID's are unique from a target device perspective.

–	GNSS-SignalID
The IE GNSS-SignalID is used to indicate a specific GNSS signal type. The interpretation of GNSS-SignalID depends on the GNSS‑ID.
-- ASN1START

GNSS-SignalID	::= SEQUENCE {
	gnss-SignalID		INTEGER (0 .. 7),
	...,
	[[
		gnss-SignalID-Ext-r15	INTEGER (8..23)			OPTIONAL
	]]
}

-- ASN1STOP

GNSS-SignalID field descriptions
gnss-SignalID, gnss-SignalID-Ext
This field specifies a particular GNSS signal. The interpretation of gnss-SignalID and gnss-SignalID-Ext depends on the GNSS‑ID and is as shown in the table System to Value & Explanation relation below.
If the field gnss-SignalID-Ext is present, the gnss-SignalID should be set to value 7 and shall be ignored by the receiver.

System to Value & Explanation relation
System
Value
Explanation
GPS
0
GPS L1 C/A

1
GPS L1C

2
GPS L2C

3
GPS L5

4
GPS L1 P

5
GPS L1 Z-tracking

6
GPS L2 C/A

7
GPS L2 P

8
GPS L2 Z-tracking

9
GPS L2 L2C(M)

10
GPS L2 L2C(L)

11
GPS L2 L2C(M+L)

12
GPS L5 I

13
GPS L5 Q

14
GPS L5 I+Q

15
GPS L1 L1C(D)

16
GPS L1 L1C(P)

17
GPS L1 L1C(D+P)

18-23
Reserved
SBAS
0
L1 C/A

1
L5 I

2
L5 Q

3
L5 I+Q

4-7
Reserved
QZSS
0
QZS-L1 C/A

1
QZS-L1C

2
QZS-L2C

3
QZS-L5

4
QZS-LEX S

5
QZS-LEX L

6
QZS-LEX S+L

7
QZS-L2 L2C(M)

8
QZS-L2 L2C(L)

9
QZS-L2 L2C(M+L)

10
QZS-L5 I

11
QZS-L5 Q

12
QZS-L5 I+Q

13
QZS L1 L1C(D)

14
QZS L1 L1C(P)

15
QZS L1 L1C(D+P)

16-23
Reserved
GLONASS
0
GLONASS G1 C/A

1
GLONASS G2 C/A

2
GLONASS G3 

3
GLONASS G1 P

4
GLONASS G2 P

5-23
Reserved
Galileo
0
Galileo E1

1
Galileo E5A

2
Galileo E5B

3
Galileo E6

4
Galileo E5A + E5B

5
Galileo E1 C No data

6
Galileo E1 A

7
Galileo E1 B I/NAV OS/CS/SoL

8
Galileo E1 B+C

9
Galileo E1 A+B+C

10
Galileo E6 C

11
Galileo E6 A

12
Galileo E6 B

13
Galileo E6 B+C

14
Galileo E6 A+B+C

15
Galileo E5B I

16
Galileo E5B Q

17
Galileo E5B I+Q

18
Galileo E5(A+B) I

19
Galileo E5(A+B) Q

20
Galileo E5(A+B) I+Q

21
Galileo E5A I

22
Galileo E5A Q

23
Galileo E5A I+Q
BDS
0
B1 I

1
B1 Q

2
B1 I+Q

3
B3 I

4
B3 Q

5
B3 I+Q

6
B2 I

7
B2 Q

8
B2 I+Q

9-23
Reserved

–	GNSS-SignalIDs
The IE GNSSSignal‑IDs is used to indicate several GNSS signals using a bit map. The interpretation of GNSSSignal‑IDs depends on the GNSS‑ID.
-- ASN1START

GNSS-SignalIDs	::= SEQUENCE {
	gnss-SignalIDs		BIT STRING (SIZE(8)),
	...,
	[[
		gnss-SignalIDs-Ext-r15	BIT STRING (SIZE(16))			OPTIONAL
	]]
}

-- ASN1STOP

GNSS-SignalIDs field descriptions
gnss-SignalIDs, gnss-SignalIDs-Ext
This field specifies one or several GNSS signals using a bit map. A one‑value at the bit position means the particular signal is addressed; a zero‑value at the particular bit position means the signal is not addressed. The interpretation of the bit map in gnssSignalIDs and gnss-SignalIDs-Ext depends on the GNSS‑ID and is shown in the table below.
Unfilled table entries indicate no assignment and shall be set to zero.

interpretation of the bit map in gnssSignalIDs
GNSS 
Bit 1
(MSB)
Bit 2
Bit 3
Bit 4
Bit 5
Bit 6
Bit 7
Bit 8
(LSB)
GPS
L1 C/A
L1C
L2C
L5
L1P
L1 Z
L2 C/A
L2 P
SBAS
L1 C/A
 L5 I
L5 Q
L5 I+Q




QZSS
QZS-L1 C/A
QZS-L1C
QZS-L2C
QZS-L5
LEX S
LEX L
LEX S+L
L2C(M)
GLONASS
G1 C/A
G2 C/A
G3
G1 P
G2 P



Galileo
E1
E5a
E5b
E6
E5a+E5b
E1 C No Data
E1 A
E1 B I/NAV OS/CS/SoL
BDS
B1 I
B1 Q
B1 I+Q
B3 I
B3 Q
B3 I+Q
B2 I
B2 Q

interpretation of the bit map in gnssSignalIDs-Ext
GNSS 
Bit 1
(MSB)
Bit 2
Bit 3
Bit 4
Bit 5
Bit 6
Bit 7
Bit 8

GPS
L2 Z
L2C(M)
L2C(L)
L2C(M+L)
L5 I
L5 Q
L5 I+Q
L1C(D)
SBAS








QZSS
L2C(L)
L2C(M+L)
L5 I
L5 Q
L5 I+Q
L1C(D)
L1C(P)
L1C(D+P)
GLONASS








Galileo
E1 B+C
E1 A+B+C
E6C
E6A
E6B
E6 B+C
E6 A+B+C
E5B I
BDS
B2 I+Q








GNSS 
Bit 9
Bit 10
Bit 11
Bit 12
Bit 13
Bit 14
Bit 15
Bit 16
(LSB)
GPS
L1C(P)
L1C(D+P)






SBAS








QZSS








GLONASS








Galileo
E5B Q
E5B I+Q
E5(A+B) I
E5(A+B) Q
E5(A+B) I+Q
E5A I
E5A Q
E5A I+Q
BDS









–	GNSS-SubNetworkID
The IE GNSS-SubNetworkID defines the subnetwork of a network identified by GNSS-NetworkID. This IE is used for MAC Network RTK as described in [30].
-- ASN1START

GNSS-SubNetworkID-r15 ::= SEQUENCE {
	subNetworkID-r15				INTEGER (0..15),
	...
}

-- ASN1STOP

–	SBAS-ID
The IE SBAS‑ID is used to indicate a specific SBAS.
-- ASN1START

SBAS-ID ::= SEQUENCE {
	sbas-id				ENUMERATED { waas, egnos, msas, gagan, ...},
	...
}

-- ASN1STOP

–	SBAS-IDs
The IE SBAS‑IDs is used to indicate several SBASs using a bit map.
-- ASN1START

SBAS-IDs ::= SEQUENCE {
	sbas-IDs		BIT STRING {	waas		(0),	
									egnos		(1),
									msas		(2),
									gagan		(3)	} (SIZE (1..8)),
	...
}

-- ASN1STOP

SBAS‑IDs field descriptions
sbas-IDs
This field specifies one or several SBAS(s) using a bit map. A one‑value at the bit position means the particular SBAS is addressed; a zero‑value at the particular bit position means the SBAS is not addressed. 

–	SV-ID
The IE SV‑ID is used to indicate a specific GNSS satellite. The interpretation of SV‑ID depends on the GNSS‑ID.
-- ASN1START

SV-ID ::= SEQUENCE {
	satellite-id		INTEGER(0..63),
	...
}

-- ASN1STOP

SV‑ID field descriptions
satellite‑id
This field specifies a particular satellite within a specific GNSS. The interpretation of satellite‑id depends on the GNSS‑ID see the table below. 

interpretation of satellite‑id
System
Value of satellite‑id
Interpretation of satellite‑id
GPS
'0' – '62'
'63'
Satellite PRN Signal No. 1 to 63
Reserved
SBAS
'0' – '38'
'39' – '63'
Satellite PRN Signal No. 120 to 158
Reserved
QZSS
'0' – '4'
'5 – '63'
Satellite PRN Signal No. 193 to 197
Reserved
GLONASS
'0' – '23'
'24 – '63'
Slot Number 1 to 24
Reserved
Galileo
'0' – '35'
'36' – '63'
Code No. 1 to 36
Reserved
BDS
'0' – '36'

'37' – '63'
Satellite ranging code number signal No.1 to 37 [23]
Reserved

6.5.3	Enhanced Cell ID Positioning
6.5.3.1	E‑CID Location Information
–	ECID-ProvideLocationInformation
The IE ECID-ProvideLocationInformation is used by the target device to provide E‑CID location measurements to the location server. It may also be used to provide ECID positioning specific error reason.
-- ASN1START

ECID-ProvideLocationInformation ::= SEQUENCE {
	ecid-SignalMeasurementInformation	ECID-SignalMeasurementInformation		OPTIONAL,
	ecid-Error							ECID-Error								OPTIONAL,
	...
}

-- ASN1STOP

6.5.3.2	E‑CID Location Information Elements
–	ECID-SignalMeasurementInformation
The IE ECID-SignalMeasurementInformation is used by the target device to provide various UE‑measurements to the location server.
-- ASN1START

ECID-SignalMeasurementInformation ::= SEQUENCE {
	primaryCellMeasuredResults	MeasuredResultsElement	OPTIONAL,
	measuredResultsList			MeasuredResultsList,
	...
}

MeasuredResultsList ::= SEQUENCE (SIZE(1..32)) OF MeasuredResultsElement

MeasuredResultsElement ::= SEQUENCE {
	physCellId						INTEGER (0..503),
	cellGlobalId					CellGlobalIdEUTRA-AndUTRA	OPTIONAL,
	arfcnEUTRA						ARFCN-ValueEUTRA,
	systemFrameNumber				BIT STRING (SIZE (10))		OPTIONAL,
	rsrp-Result						INTEGER (0..97)				OPTIONAL,
	rsrq-Result						INTEGER (0..34)				OPTIONAL,
	ue-RxTxTimeDiff					INTEGER (0..4095)			OPTIONAL,
	...,
	[[	arfcnEUTRA-v9a0				ARFCN-ValueEUTRA-v9a0		OPTIONAL		-- Cond EARFCN-max
	]],
	[[	nrsrp-Result-r14			INTEGER (0..113)			OPTIONAL,
		nrsrq-Result-r14			INTEGER (0..74)				OPTIONAL,
		carrierFreqOffsetNB-r14		CarrierFreqOffsetNB-r14		OPTIONAL,		-- Cond NB-IoT
		hyperSFN-r14				BIT STRING (SIZE (10))		OPTIONAL
	]],
	[[
		rsrp-Result-v1470			INTEGER (-17..-1)			OPTIONAL,
		rsrq-Result-v1470			INTEGER (-30..46)			OPTIONAL
	]]
}

-- ASN1STOP

Conditional presence
Explanation
EARFCN-max
The field is mandatory present if the corresponding arfcnEUTRA (i.e. without suffix) is set to maxEARFCN. Otherwise the field is not present.
NB-IoT
The field is mandatory present if the measured cell is a NB-IoT cell. Otherwise it is not present.

ECID-SignalMeasurementInformation field descriptions
primaryCellMeasuredResults
This field contains measurements for the primary cell (if the primary cell is a E-UTRA or NB-IoT cell), when the target device reports measurements for both primary cell (E-UTRA or NB-IoT) and neighbour cells. This field shall be omitted when the target device reports measurements for the primary cell (E-UTRA or NB-IoT) only, in which case the measurements for the primary cell (E-UTRA or NB-IoT) is reported in the measuredResultsList. This field shall be omitted when the primary cell is not a E-UTRA or NB-IoT cell.
measuredResultsList
This list contains the E‑CID measurements for up to 32 E-UTRA or NB-IoT cells.
physCellId
This field specifies the physical cell identity of the measured cell.
cellGlobalId
This field specifies cell global ID of the measured cell. The target device shall provide this field if it was able to determine the ECGI of the measured cell at the time of measurement.
arfcnEUTRA
This field specifies the ARFCN of the measured E-UTRA carrier frequency, as defined in TS 36.331 [12]. In case the target device includes arfcnEUTRA-v9a0, the target device shall set the corresponding arfcnEUTRA (i.e. without suffix) to maxEARFCN.
systemFrameNumber
This field specifies the system frame number of the measured cell during which the measurements have been performed. The target device shall include this field if it was able to determine the SFN of the cell at the time of measurement.
rsrp-Result
This field specifies the reference signal received power (RSRP) measurement, as defined in TS 36.331 [12], TS 36.214 [17]. In case the target device includes rsrp-Result-v1470, the target device shall set the corresponding rsrp-Result (i.e. without suffix) to value 0.
rsrq-Result
This field specifies the reference signal received quality (RSRQ) measurement, as defined in TS 36.331 [12], TS 36.214 [17]. In case the target device includes rsrq-Result-v1470, the target device shall set the corresponding rsrq-Result (i.e. without suffix) to value 0 or 34.
ue-RxTxTimeDiff
This field specifies the UE Rx–Tx time difference measurement, as defined in TS 36.214 [17]. It is provided only for measurements on the UE's primary cell.
Measurement report mapping is according to TS 36.133 [18]. 
nrsrp-Result
This field specifies the narrowband reference signal received power (NRSRP) measurement, as defined in TS 36.214 [17]. Measurement report mapping is according to TS 36.133 [18].
nrsrq-Result
This field specifies the narrowband reference signal received quality (NRSRQ) measurement, as defined in TS 36.214 [17].
Measurement report mapping to the value defined in TS 36.133 [18]. Values 0..29 map to values
NRSRQ_-30..NRSRQ_-1. Values 30..62 map to NRSRQ_01..NRSRQ_33. Values 63..74 map to NRSRQ_35..NRSRQ_46. The UE does not report NRSRQ_00 nor NRSRQ_34.
carrierFreqOffsetNB
This field specifies the offset of the NB-IoT channel number to ARFCN given by arfcnEUTRA as defined in TS 36.101 [21].
hyperSFN
This field specifies the hyper-SFN of the measured cell during which the measurements have been performed. The target device shall include this field if it was able to determine the hyper-SFN of the cell at the time of measurement.

6.5.3.3	E‑CID Location Information Request
–	ECID-RequestLocationInformation
The IE ECID-RequestLocationInformation is used by the location server to request E‑CID location measurements from a target device.
-- ASN1START

ECID-RequestLocationInformation ::= SEQUENCE {
	requestedMeasurements		BIT STRING {	rsrpReq		(0),
												rsrqReq		(1),
												ueRxTxReq	(2),
												nrsrpReq-r14	(3),
												nrsrqReq-r14	(4)} (SIZE(1..8)),
	...
}

-- ASN1STOP

ECID-RequestLocationInformation field descriptions
requestedMeasurements
This field specifies the E‑CID measurements requested. This is represented by a bit string, with a one‑value at the bit position means the particular measurement is requested; a zero‑value means not requested.

6.5.3.4	E‑CID Capability Information
–	ECID-ProvideCapabilities
The IE ECID-ProvideCapabilities is used by the target device to indicate its capability to support E‑CID and to provide its E‑CID location capabilities to the location server.
-- ASN1START

ECID-ProvideCapabilities ::= SEQUENCE {
	ecid-MeasSupported	BIT STRING {	rsrpSup		(0),
										rsrqSup		(1),
										ueRxTxSup	(2),
										nrsrpSup-r14	(3),
										nrsrqSup-r14	(4)} (SIZE(1..8)),
	...,
	[[	ueRxTxSupTDD-r13					ENUMERATED { true }				OPTIONAL
	]],
	[[	periodicalReporting-r14				ENUMERATED { supported }		OPTIONAL,
		triggeredReporting-r14				ENUMERATED { supported }		OPTIONAL,
		idleStateForMeasurements-r14		ENUMERATED { required }			OPTIONAL
	]]
}

-- ASN1STOP

ECID-Provide-Capabilities field descriptions
ecid-MeasSupported
This field specifies the E‑CID measurements supported by the target device. This is represented by a bit string, with a one‑value at the bit position means the particular measurement is supported; a zero‑value means not supported. A zero-value in all bit positions in the bit string means only the basic Cell ID positioning method is supported by the target device.
If the UE Rx-Tx time difference measurement is supported by the target device (i.e., ueRxTxSup field is set to one), it means that the UE supports the UE Rx-Tx time difference measurement reporting via both LPP signaling and RRC signalling.
If a target device doesn't support LPP, the E-SMLC may assume the target device can not report the UE Rx-Tx time difference measurement results via RRC signalling.
ueRxTxSupTDD
This field, if present, indicates that any UE Rx-Tx time difference measurement reporting for TDD from the target device includes the NTAoffset according to TS 36.211 [16], TS 36.214 [17] and uses the UE Rx-Tx time difference measurement report mapping for TDD as specified in TS 36.133 [18]. This field may only be included if the ueRxTxSup field in ecid‑MeasSupported is set to value one.
periodicalReporting
This field, if present, indicates that the target device supports periodicalReporting of ECID measurements. If this field is absent, the location server may assume that the target device does not support periodicalReporting in CommonIEsRequestLocationInformation.
triggeredReporting
This field, if present, indicates that the target device supports triggeredReporting for the cellChange event. If this field is absent, the location server may assume that the target device does not support triggeredReporting in CommonIEsRequestLocationInformation.
idleStateForMeasurements
This field, if present, indicates that the target device requires idle state to perform ECID measurements.

6.5.3.5	E‑CID Capability Information Request
–	ECID-RequestCapabilities
The IE ECID-RequestCapabilities is used by the location server to request E‑CID positioning capabilities from a target device.
-- ASN1START

ECID-RequestCapabilities ::= SEQUENCE {
	...
}

-- ASN1STOP

6.5.3.6	E‑CID Error Elements
–	ECID-Error
The IE ECID-Error is used by the location server or target device to provide E‑CID error reasons to the target device or location server, respectively.
-- ASN1START

ECID-Error ::= CHOICE {
	locationServerErrorCauses		ECID-LocationServerErrorCauses,
	targetDeviceErrorCauses			ECID-TargetDeviceErrorCauses,
	...
}

-- ASN1STOP

–	ECID-LocationServerErrorCauses
The IE ECID-LocationServerErrorCauses is used by the location server to provide E‑CID error reasons to the target device.
-- ASN1START

ECID-LocationServerErrorCauses ::= SEQUENCE {
	cause		ENUMERATED	{	undefined,								
								...
							},
	...
}

-- ASN1STOP

–	ECID-TargetDeviceErrorCauses
The IE ECID-TargetDeviceErrorCauses is used by the target device to provide E-CID error reasons to the location server.
-- ASN1START

ECID-TargetDeviceErrorCauses ::= SEQUENCE {
	cause		ENUMERATED {	undefined,
								requestedMeasurementNotAvailable,
								notAllrequestedMeasurementsPossible,
								...
							},
	rsrpMeasurementNotPossible				NULL		OPTIONAL,
	rsrqMeasurementNotPossible				NULL		OPTIONAL,
	ueRxTxMeasurementNotPossible			NULL		OPTIONAL,
	...,
	[[
	 nrsrpMeasurementNotPossible-r14		NULL		OPTIONAL,
	 nrsrqMeasurementNotPossible-r14		NULL		OPTIONAL
	]]
}

-- ASN1STOP

ECID-TargetDeviceErrorCauses field descriptions
cause
This field provides a ECID specific error cause. If the cause value is 'notAllRequestedMeasurementsPossible', the target device was not able to provide all requested ECID measurements (but may be able to provide some measurements). In this case, the target device should include any of the rsrpMeasurementNotPossible, rsrqMeasurementNotPossible, ueRxTxMeasurementNotPossible, nrsrpMeasurementNotPossible, or nrsrqMeasurementNotPossible fields, as applicable.

6.5.4	Terrestrial Beacon System Positioning
6.5.4.1	TBS Location Information
–	TBS-ProvideLocationInformation
The IE TBS-ProvideLocationInformation is used by the target device to provide TBS location measurements to the location server. It may also be used to provide TBS positioning specific error reason.
-- ASN1START

TBS-ProvideLocationInformation-r13 ::= SEQUENCE {
	tbs-MeasurementInformation-r13			TBS-MeasurementInformation-r13		OPTIONAL,
	tbs-Error-r13							TBS-Error-r13						OPTIONAL,
	...
}

-- ASN1STOP

6.5.4.2	TBS Location Information Elements
–	TBS-MeasurementInformation
The IE TBS-MeasurementInformation is used by the target device to provide TBS location measurements to the location server.
-- ASN1START

TBS-MeasurementInformation-r13 ::= SEQUENCE {
	measurementReferenceTime-r13	UTCTime						OPTIONAL,
	mbs-SgnMeasList-r13				MBS-BeaconMeasList-r13		OPTIONAL,	-- Cond MBS
	...
}

-- ASN1STOP

Conditional presence
Explanation
MBS
The field is mandatory present if the TBS-MeasurementInformation is provided for an MBS system; otherwise it is not present.

TBS-MeasurementInformation field descriptions
measurementReferenceTime
This field provides the UTC time when the TBS measurements are performed and should take the form of YYMMDDhhmmssZ.
mbs-SgnMeasList
This field provides the MBS measurements for up to 64 MBS beacons.

–	MBS-BeaconMeasList
The IE MBS-BeaconMeasList is used by the target device to provide MBS location measurements to the location server, as defined in the MBS ICD [24].
-- ASN1START

MBS-BeaconMeasList-r13 ::= SEQUENCE (SIZE(1..64)) OF MBS-BeaconMeasElement-r13

MBS-BeaconMeasElement-r13 ::= SEQUENCE {
	transmitterID-r13				INTEGER (0..32767),
	codePhase-r13					INTEGER (0..2097151),
	codePhaseRMSError-r13			INTEGER (0..63),
	...,
	[[ rssi-r14						INTEGER (-130..-30)		OPTIONAL
	]]
}

-- ASN1STOP

MBS-BeaconMeasList field descriptions
transmitterID
This field contains the MBS transmitter identifier.
codePhase
This field contains the value of the code-phase measurement made by the target device for the particular beacon signal at the time of measurement in the units of ms. MBS specific code phase measurements (e.g. chips) are converted into unit of ms by dividing the measurements by the nominal values of the measured signal chipping rate.
Scale factor 2-21 milli‑seconds, in the range from 0 to (1-2-21) milli‑seconds.
codePhaseRMSError
This field contains the pseudorange RMS error value. This parameter is specified according to a floating-point representation shown in the table below.
rssi
This field provides an estimate of the received signal strength from the MBS beacon as referenced to the UE antenna connector.
If the estimated received signal strength for the MBS beacon is less than -130 dBm, the UE shall report an RSSI value of -130. If the estimated received signal strength for the MBS beacon is greater than -30 dBm, the UE shall report an RSSI value of -30.

Scale factor 1 dBm.

floating-point representation
Index
Mantissa
Exponent
Floating-Point value, xi
Pseudorange value, P [m]
0
000
000
0.5
P < 0.5
1
001
000
0.5625
0.5 <= P < 0.5625
i
x
y
0.5 * (1 + x/8) * 2y
xi-1 <= P < xi
62
110
111
112
104 <= P < 112
63
111
111
--
112 <= P

6.5.4.3	TBS Location Information Request
–	TBS-RequestLocationInformation
The IE TBS-RequestLocationInformation is used by the location server to request location information for TBS-based methods from the target device.
-- ASN1START

TBS-RequestLocationInformation-r13 ::= SEQUENCE {
	mbsSgnMeasListReq-r13				BOOLEAN,
	...,
	[[	mbsAssistanceAvailability-r14	BOOLEAN							OPTIONAL,	-- Need ON
		mbsRequestedMeasurements-r14	BIT STRING {
										rssi		(0)} (SIZE(1..8))	OPTIONAL	-- Need ON
	]]
}

-- ASN1STOP

TBS-RequestLocationInformation field descriptions
mbsSgnMeasListReq
This field indicates whether the target device is requested to report MBS measurements in TBS‑MeasurementInformation IE or not. TRUE means requested.
mbsAssistanceAvailability
This field indicates whether the target device may request additional MBS assistance data from the server. TRUE means allowed and FALSE means not allowed.
mbsRequestedMeasurements
This field indicates the additional MBS measurements requested and may only be included if mbsSgnMeasListReq is set to TRUE. This field is represented by a bit string, with a one‑value at the bit position means the particular measurement is requested; a zero‑value means not requested. The following measurement requests can be included.

rssi:	Beacon signal strength at the target


6.5.4.4	TBS Capability Information
–	TBS-ProvideCapabilities
The IE TBS-ProvideCapabilities is used by the target device to indicate its capability to support TBS and to provide its TBS location capabilities to the location server.
-- ASN1START

TBS-ProvideCapabilities-r13 ::= SEQUENCE {
	tbs-Modes-r13			BIT STRING {	standalone		(0),
											ue-assisted		(1),
											ue-based		(2)} (SIZE (1..8)),
	...,
	[[	mbs-AssistanceDataSupportList-r14	MBS-AssistanceDataSupportList-r14		OPTIONAL,
		periodicalReportingSupported-r14	PositioningModes						OPTIONAL,
		mbs-ConfigSupport-r14	BIT STRING {	tb1		(0),
												tb2		(1),
												tb3		(2),
												tb4		(3)} (SIZE (1..8))			OPTIONAL,
		mbs-IdleStateForMeasurements-r14		ENUMERATED { required }				OPTIONAL
	]]
}

-- ASN1STOP

TBS-ProvideCapabilities field descriptions
tbs-Modes
This field specifies the TBS mode(s) supported by the target device. This is represented by a bit string, with a one‑value at the bit position means the particular TBS mode is supported; a zero‑value means not supported.
mbs-AssistanceDataSupportList
This list defines the MBS assistance data supported by the target device. This field shall be present if the target device supports MBS assistance data.
periodicalReportingSupported
This field, if present, specifies the positioning modes for which the target device supports periodicalReporting. This is represented by a bit string, with a one‑value at the bit position means periodicalReporting for the positioning mode is supported; a zero‑value means not supported. If this field is absent, the location server may assume that the target device does not support periodicalReporting in CommonIEsRequestLocationInformation.
mbs-ConfigSupport
This field specifies the MBS configurations supported by the target device. This field shall be present if the target device supports MBS [24].
mbs-IdleStateForMeasurements
This field, if present, indicates that the target device requires idle state to perform MBS measurements.

-	MBS-AssistanceDataSupportList
The IE MBS-AssistanceDataSupportList is used by the target device to indicate its capability to support MBS Assistance Data and to provide its capabilities to the location server.
-- ASN1START

MBS-AssistanceDataSupportList-r14 ::= SEQUENCE {
	mbs-AcquisitionAssistanceDataSupport-r14	BOOLEAN,
	mbs-AlmanacAssistanceDataSupport-r14		BOOLEAN,
	...
}

-- ASN1STOP

MBS-AssistanceDataSupportList field descriptions
mbs-AcquisitionAssistanceDataSupport
This field specifies whether the target device supports MBS Acquisition Assistance Data. TRUE means supported.
mbs-AlmanacAssistanceDataSupport
This field specifies whether the target device supports MBS Almanac Assistance Data. TRUE means supported. 

6.5.4.5	TBS Capability Information Request
–	TBS-RequestCapabilities
The IE TBS-RequestCapabilities is used by the location server to request TBS positioning capabilities from a target device.
-- ASN1START

TBS-RequestCapabilities-r13 ::= SEQUENCE {
	...
}

-- ASN1STOP

6.5.4.6	TBS Error Elements
–	TBS-Error
The IE TBS-Error is used by the location server or target device to provide TBS error reasons to the target device or location server, respectively.
-- ASN1START

TBS-Error-r13 ::= CHOICE {
	locationServerErrorCauses-r13		TBS-LocationServerErrorCauses-r13,
	targetDeviceErrorCauses-r13			TBS-TargetDeviceErrorCauses-r13,
	...
}

-- ASN1STOP

–	TBS-LocationServerErrorCauses
The IE TBS-LocationServerErrorCauses is used by the location server to provide error reasons for TBS positioning to the target device.
-- ASN1START

TBS-LocationServerErrorCauses-r13 ::= SEQUENCE {
	cause-r13		ENUMERATED	{	undefined,
									...,
									assistanceDataNotSupportedByServer-v1420,
									assistanceDataSupportedButCurrentlyNotAvailableByServer-v1420
								},
	...
}

-- ASN1STOP

–	TBS-TargetDeviceErrorCauses
The IE TBS-TargetDeviceErrorCauses is used by the target device to provide error reasons for TBS positioning to the location server.
-- ASN1START

TBS-TargetDeviceErrorCauses-r13 ::= SEQUENCE {
	cause-r13		ENUMERATED {	undefined,
									thereWereNotEnoughMBSBeaconsReceived,
									...,
									assistanceDataMissing-v1420
								},
	...
}

-- ASN1STOP

TBS-TargetDeviceErrorCauses field descriptions
cause
This field provides a TBS specific error cause.

6.5.4.7	TBS Assistance Data
–	TBS-ProvideAssistanceData
The IE TBS-ProvideAssistanceData is used by the location server to provide assistance data to assist in position estimation at the UE (e.g. for UE‑based mode) and/or to expedite the acquisition of TBS signals. It may also be used to provide TBS positioning specific error reasons.
-- ASN1START

TBS-ProvideAssistanceData-r14 ::= SEQUENCE {
	tbs-AssistanceDataList-r14	TBS-AssistanceDataList-r14	OPTIONAL,	-- Need ON
	tbs-Error-r14				TBS-Error-r13				OPTIONAL,	-- Need ON
	...
}

-- ASN1STOP

6.5.4.8	TBS Assistance Data Elements
–	TBS-AssistanceDataList
The IE TBS-AssistanceDataList is used by the location server to provide the TBS specific assistance data to the UE.
-- ASN1START

TBS-AssistanceDataList-r14 ::= SEQUENCE {
	mbs-AssistanceDataList-r14		MBS-AssistanceDataList-r14		OPTIONAL,	-- Need ON
	...
}

MBS-AssistanceDataList-r14 ::= SEQUENCE (SIZE (1..maxMBS-r14)) OF MBS-AssistanceDataElement-r14

MBS-AssistanceDataElement-r14 ::= SEQUENCE {
	mbs-AlmanacAssistance-r14		MBS-AlmanacAssistance-r14			OPTIONAL,	-- Need ON
	mbs-AcquisitionAssistance-r14	MBS-AcquisitionAssistance-r14		OPTIONAL,	-- Need ON
	...
}

maxMBS-r14		INTEGER ::= 64

-- ASN1STOP

–	MBS-AlmanacAssistance
The IE MBS-AlmanacAssistance is used by the location server to provide LLA of MBS transmitters to enable position estimation at the UE.
-- ASN1START

MBS-AlmanacAssistance-r14 ::= SEQUENCE {
	transmitterID-r14			INTEGER (0..32767),
	transmitterLatitude-r14		BIT STRING (SIZE (26)),
	transmitterLongitude-r14	BIT STRING (SIZE (27)),
	transmitterAltitude-r14		BIT STRING (SIZE (15)),
	timeCorrection-r14			INTEGER (0..25)		OPTIONAL,	-- Need ON
	...
}

-- ASN1STOP

MBS-AlmanacAssistance field descriptions
transmitterID
This field specifies the MBS transmitter ID [24].
transmitterLatitude
This field specifies latitude of the MBS transmitter, degrees. Scale factor 4/220 decimal degrees, added to -90°. Valid range -90° to 90° [24].
transmitterLongitude
This field specifies longitude of the MBS transmitter, degrees. Scale factor 4/220 decimal degrees, added to -180°. Valid range -180° to 180° [24].
transmitterAltitude
This field specifies altitude of the MBS transmitter, meters. Scale factor 0.29 meters, added to -500 meters.
Valid range -500 to 9002.43 meters [24].
timeCorrection
This field contains the residual timing error for a particular beacon, in units of nano-seconds, in the range from 0 to 25. This field is used for UE-based mode only, by subtracting from the codePhase measurement made by the target device [24].

–	MBS-AcquisitionAssistance
The IE MBS-AcquisitionAssistance is used by the location server to provide parameters that support acquisition of the MBS signals [24].
-- ASN1START

MBS-AcquisitionAssistance-r14 ::= SEQUENCE {
	transmitterID-r14				INTEGER (0..32767)						OPTIONAL,	-- Need ON
	mbsConfiguration-r14			ENUMERATED {tb1, tb2, tb3, tb4, ...}	OPTIONAL,	-- Need ON
	pnCodeIndex-r14					INTEGER (1..128)						OPTIONAL,	-- Need ON
	freq-r14						INTEGER (919750000..927250000)			OPTIONAL,	-- Need ON
	...
}

-- ASN1STOP

MBS-AcquisitionAssistance field descriptions
transmitterID
This field contains the MBS transmitter identifier [24].
mbsConfiguration
This field specifies MBS configuration as defined in the MBS ICD [24].
pnCodeIndex
This field specifies the index of the MBS PN code [24].
freq
This field specifies the MBS signal center frequency in units of Hz [24].

6.5.4.9	TBS Assistance Data Request
–	TBS-RequestAssistanceData
The IE TBS-RequestAssistanceData is used by the target device to request TBS assistance data from a location server.
-- ASN1START

TBS-RequestAssistanceData-r14 ::= SEQUENCE {
	mbs-AlmanacAssistanceDataReq-r14		BOOLEAN,
	mbs-AcquisitionAssistanceDataReq-r14	BOOLEAN,
	...
}

-- ASN1STOP

6.5.5	Sensor based Positioning
6.5.5.0	Introduction
This clause defines support for sensor-based positioning. The supported sensor methods are "Barometric pressure sensor" and "Motion sensor" as described in TS 36.305, clauses 8.6 and 8.10 respectively [2].
6.5.5.1	Sensor Location Information
–	Sensor-ProvideLocationInformation
The IE Sensor-ProvideLocationInformation is used by the target device to provide location information for sensor-based methods to the location server. It may also be used to provide sensor specific error reason.
-- ASN1START

Sensor-ProvideLocationInformation-r13 ::= SEQUENCE {
	sensor-MeasurementInformation-r13		Sensor-MeasurementInformation-r13		OPTIONAL,
	sensor-Error-r13						Sensor-Error-r13						OPTIONAL,
	...,
	[[
	sensor-MotionInformation-r15			Sensor-MotionInformation-r15			OPTIONAL
	]]
}

-- ASN1STOP

6.5.5.2	Sensor Location Information Elements
–	Sensor-MeasurementInformation
The IE Sensor-MeasurementInformation is used by the target device to provide UE sensor measurements to the location server.
-- ASN1START

Sensor-MeasurementInformation-r13 ::= SEQUENCE {
	measurementReferenceTime-r13		UTCTime						OPTIONAL,
	uncompensatedBarometricPressure-r13	INTEGER (30000..115000)		OPTIONAL, -- Cond Barometer
	...,
	[[
	uncertainty-r14					SEQUENCE {
									range-r14		INTEGER (0..1000),
									confidence-r14	INTEGER (1..100)
									}									OPTIONAL
	]]
}

-- ASN1STOP

Conditional presence
Explanation
Barometer
The field is mandatory present if the Sensor-MeasurementInformation is provided for barometric pressure; otherwise it is not present.

Sensor-MeasurementInformation field descriptions
measurementReferenceTime
This field provides the UTC time when the sensor measurements are performed and should take the form of YYMMDDhhmmssZ.
uncompensatedBarometricPressure
This field provides the uncompensated barometric pressure as measured by the UE sensor, in units of Pa.
uncertainty
This field provides the expected range for the pressure measurement in units of Pa and the confidence as a percentage that the true pressure lies in a range of (measurement – range) to (measurement + range).

–	Sensor-MotionInformation
The IE Sensor-MotionInformation is used by the target device to provide UE movement information to the location server. The movement information comprises an ordered series of points. This information may be obtained by the target device using one or more motion sensors.
-- ASN1START

Sensor-MotionInformation-r15 ::= SEQUENCE {
	refTime-r15					DisplacementTimeStamp-r15,
	displacementInfoList-r15	DisplacementInfoList-r15,
	...
}

DisplacementInfoList-r15 ::= SEQUENCE (SIZE (1..128)) OF DisplacementInfoListElement-r15

DisplacementInfoListElement-r15 ::= SEQUENCE {
	deltaTimeStamp-r15			DeltaTime-r15,
	displacement-r15			Displacement-r15			OPTIONAL,
	...
}

DisplacementTimeStamp-r15 ::= CHOICE {
	utcTime-r15					UTC-Time-r15,
	gnssTime-r15				MeasurementReferenceTime,
	systemFrameNumber-r15		SFN-r15,
	measurementSFN-r15			INTEGER(-8192..9214),
	...
}

DeltaTime-r15 ::= CHOICE {
	deltaTimeSec-r15			INTEGER (1..16384),
	deltaTimeSFN-r15			INTEGER (1..4096),
	...
}

SFN-r15 ::= SEQUENCE {
	sfn-r15						BIT STRING (SIZE (10)),
	hyperSFN-r15				BIT STRING (SIZE (10))		OPTIONAL,
	...
}

Displacement-r15 ::= SEQUENCE {
	bearing-r15					INTEGER (0..3599),
	bearingUncConfidence-r15	INTEGER (0..100)				OPTIONAL,
	bearingRef-r15				ENUMERATED { geographicNorth, magneticNorth, local },
	horizontalDistance-r15		INTEGER (0..8191),
	horizontalDistanceUnc-r15	INTEGER (0..255)				OPTIONAL,
	horizontalUncConfidence-r15	INTEGER (0..100)				OPTIONAL,
	verticalDirection-r15		ENUMERATED{upward, downward}	OPTIONAL,
	verticalDistance-r15		INTEGER(0..8191)				OPTIONAL,
	verticalDistanceUnc-r15		INTEGER (0..255)				OPTIONAL,
	verticalUncConfidence-r15	INTEGER (0..100)				OPTIONAL,
	...
}

UTC-Time-r15 ::= SEQUENCE {
	utcTime-r15					UTCTime,
	utcTime-ms-r15				INTEGER (0..999),
	...
}

-- ASN1STOP

Sensor-MotionInformation field descriptions
refTime
This field provides the reference time t0 associated to the starting position of the first displacement in the displacement list.
displacementInfoList
This field provides an ordered series of direction and distance travelled by the target device and comprises the following subfields:
-	deltaTimeStamp specifies the time between tn-1 and tn, were n corresonds to the order of entry in the DispacementInfoList (n=0 correspond to the time provided in refTime).
-	displacement provides the direction and distance travelled between time tn-1 and tn.
utcTime
This field provides the time stamp of the refTime in UTC time and comprises the following subfields:
-	utcTime in the form of YYMMDDhhmmssZ.
-	utcTime-ms specifies the fractional part of the UTC time in ms resolution.
gnssTime
This field provides the time stamp of the refTime in GNSS time.
systemFrameNumber
This field provides the time stamp of the refTime in serving cell SFN time.
measurementSFN
This field provides the time stamp of the refTime in form of the measurement SFN as defined in deltaSFN in IE OTDOA-SignalMeasurementInformation. This field may be included when OTDOA measurements are included.
deltaTimeSec
This field provides the time between tn-1 and tn in units of milliseconds.
deltaTimeSFN
This field provides the time between tn-1 and tn in units of system frame numbers.
bearing
This field specifies the direction (heading) of the horizontal displacement measured clockwise from bearingRef.
Scale factor 0.1 degree.
bearingRef
This field specifies the reference direction for the bearing. Enumerated value 'geographicNorth' indicates that the bearing is measured clockwise from the Geographic North; 'magneticNorth' indicates that the bearing is measured clockwise from the Magnetic North; 'local' indicates that the bearing is measured clockwise from an arbitrary (undefined) reference direction. 
horizontalDistance
This field specifies the horizonal distance travelled between time tn-1 and tn.
Scale factor 1 cm.
horizontalDistanceUnc, horizontalUncConfidence
This field specifies the horizontal uncertainty of the displacement (corresponding to tn). horizontalDistanceUnc correspond to the encoded high accuracy uncertainty as defined in TS 23.032 [15]. horizontalUncConfidence corresponds to confidence as defined in TS 23.032 [15].
verticalDistance
This field specifies the vertical distance travelled between time tn-1 and tn.
Scale factor 1 cm.
verticalDistanceUnc, verticalUncConfidence
This field specifies the vertical uncertainty of the displacement (corresponding to tn). verticalDistanceUnc correspond to the encoded high accuracy uncertainty as defined in TS 23.032 [15]. verticalUncConfidence corresponds to confidence as defined in TS 23.032 [15].

6.5.5.3	Sensor Location Information Request
–	Sensor-RequestLocationInformation
The IE Sensor-RequestLocationInformation is used by the location server to request location information for sensor-based methods from a target device.
-- ASN1START

Sensor-RequestLocationInformation-r13 ::= SEQUENCE {
	uncompensatedBarometricPressureReq-r13		BOOLEAN,
	...,
	[[	assistanceAvailability-r14				BOOLEAN		OPTIONAL	-- Need ON
	]],
	[[	sensor-MotionInformationReq-r15			BOOLEAN		OPTIONAL	-- Need ON
	]]
}

-- ASN1STOP

Sensor-RequestLocationInformation field descriptions
uncompensatedBarometricPressureReq
This field indicates whether the target device is requested to report Barometric pressure measurements in Sensor‑MeasurementInformation IE or not. TRUE means requested.
assistanceAvailability
This field indicates whether the target device may request additional Sensor assistance data from the server. TRUE means allowed and FALSE means not allowed.
sensor-MotionInformationReq
This field indicates whether the target device is requested to report movement information in IE Sensor‑MotionInformation or not. TRUE means requested.

6.5.5.4	Sensor Capability Information
–	Sensor-ProvideCapabilities
The IE Sensor-ProvideCapabilities is used by the target device to provide capabilities for sensor-based methods from to the location server.
-- ASN1START

Sensor-ProvideCapabilities-r13 ::= SEQUENCE {
	sensor-Modes-r13			BIT STRING {	standalone	(0),
												ue-assisted	(1),
												ue-based	(2)} (SIZE (1..8)),
	...,
	[[	sensor-AssistanceDataSupportList-r14	Sensor-AssistanceDataSupportList-r14	OPTIONAL,
		periodicalReportingSupported-r14		PositioningModes						OPTIONAL,
		idleStateForMeasurements-r14			ENUMERATED { required }					OPTIONAL
	]],
	[[	sensor-MotionInformationSup-r15			ENUMERATED { true }						OPTIONAL
	]]
}

Sensor-AssistanceDataSupportList-r14 ::= SEQUENCE {
	...,
	[[	validityPeriodSupported-v1520			ENUMERATED { true }		OPTIONAL,
		validityAreaSupported-v1520				ENUMERATED { true }		OPTIONAL
	]]
}

-- ASN1STOP

Sensor-ProvideCapabilities field descriptions
sensor-Modes
This field specifies the sensor mode(s) supported by the target device. This is represented by a bit string, with a one‑value at the bit position means the particular sensor mode is supported; a zero‑value means not supported.
sensor-AssistanceDataSupportList
This field specifies a list of sensor assistance data supported by the target device. This field shall be present if the target device supports assistance data for Barometric pressure sensor.
validityPeriodSupported
This field, if present, indicates that the target device supports period i.e. pressure validity period and pressure rate as part of the Sensor-AssistanceDataList.
valitidyAreaSupported
This field, if present, indicates that the target device supports area i.e. pressure validity area and North/East pressure gradient as part of the Sensor-AssistanceDataList.
periodicalReportingSupported
This field, if present, specifies the positioning modes for which the target device supports periodicalReporting. This is represented by a bit string, with a one‑value at the bit position means periodicalReporting for the positioning mode is supported; a zero‑value means not supported. If this field is absent, the location server may assume that the target device does not support periodicalReporting in CommonIEsRequestLocationInformation.
idleStateForMeasurements
This field, if present, indicates that the target device requires idle state to perform sensor measurements.
sensor-MotionInformationSup
This field, if present, indicates that the target device supports displacement reporting in IE Sensor-MotionInformation.

6.5.5.5	Sensor Capability Information Request
–	Sensor-RequestCapabilities
The IE Sensor-RequestCapabilities is used by the location server to request capabilities for sensor-based methods from the target device.
-- ASN1START

Sensor-RequestCapabilities-r13 ::= SEQUENCE {
	...
}

-- ASN1STOP

6.5.5.6	Sensor Error Elements
–	Sensor-Error
The IE Sensor-Error is used by the location server or target device to provide Sensor Error Reasons to the target device or location server, respectively.
-- ASN1START

Sensor-Error-r13 ::= CHOICE {
	locationServerErrorCauses-r13		Sensor-LocationServerErrorCauses-r13,
	targetDeviceErrorCauses-r13			Sensor-TargetDeviceErrorCauses-r13,
	...
}

-- ASN1STOP

–	Sensor-LocationServerErrorCauses
The IE Sensor-LocationServerErrorCauses is used by the location server to provide error reasons for Sensor positioning to the target device.
-- ASN1START

Sensor-LocationServerErrorCauses-r13 ::= SEQUENCE {
	cause-r13		ENUMERATED	{	undefined,
									...,
									assistanceDataNotSupportedByServer-v1420,
									assistanceDataSupportedButCurrentlyNotAvailableByServer-v1420
									},
	...
}

-- ASN1STOP

–	Sensor-TargetDeviceErrorCauses
The IE Sensor-TargetDeviceErrorCauses is used by the target device to provide error reasons for Sensor positioning to the location server.
-- ASN1START

Sensor-TargetDeviceErrorCauses-r13 ::= SEQUENCE {
	cause-r13			ENUMERATED		{	undefined,
											...,
											assistanceDataMissing-v1420
										},
	...
}

-- ASN1STOP

6.5.5.7	Sensor Assistance Data
–	Sensor-ProvideAssistanceData
The IE Sensor-ProvideAssistanceData is used by the location server to provide assistance data to assist in altitude computation at the UE (e.g. for UE‑based mode). It may also be used to provide Sensor positioning specific error reasons.
-- ASN1START

Sensor-ProvideAssistanceData-r14 ::= SEQUENCE {
	sensor-AssistanceDataList-r14		Sensor-AssistanceDataList-r14		OPTIONAL,	-- Need ON
	sensor-Error-r14					Sensor-Error-r13					OPTIONAL,	-- Need ON
	...
}

-- ASN1STOP

6.5.5.8	Sensor Assistance Data Elements
–	Sensor-AssistanceDataList
The IE Sensor-AssistanceDataList is used by the location server to provide the Sensor specific assistance data to the UE.
-- ASN1START

Sensor-AssistanceDataList-r14::= SEQUENCE {
	refPressure-r14		INTEGER (-20000..10000),
	refPosition-r14		EllipsoidPointWithAltitudeAndUncertaintyEllipsoid	OPTIONAL,	-- Need ON
	refTemperature-r14	INTEGER (-64..63)									OPTIONAL,	-- Need ON
	...,
	[[
	period-v1520		SEQUENCE {
		pressureValidityPeriod-v1520	PressureValidityPeriod-v1520,
		referencePressureRate-v1520		INTEGER	(-128..127)					OPTIONAL,	-- Need ON
		...
	}																		OPTIONAL,	-- Need ON
	area-v1520			SEQUENCE {
		pressureValidityArea-v1520		PressureValidityArea-v1520,
		gN-pressure-v1520				INTEGER (-1024..1023)				OPTIONAL,	-- Need ON
		gE-pressure-v1520				INTEGER (-1024..1023)				OPTIONAL,	-- Need ON
		...
	}																		OPTIONAL	-- Need ON
	]]
}

PressureValidityArea-v1520 ::= SEQUENCE {
	centerPoint-v1520				Ellipsoid-Point,
	validityAreaWidth-v1520			INTEGER (1..128),
	validityAreaHeight-v1520		INTEGER (1..128),
	...
}

PressureValidityPeriod-v1520 ::= SEQUENCE {
	beginTime-v1520					GNSS-SystemTime,
	beginTimeAlt-v1520				INTEGER (0..2881)						OPTIONAL,	-- Need ON
	duration-v1520					INTEGER (1..2881),
	...
}

-- ASN1STOP

Sensor-AssistanceDataList field descriptions
refPressure
This field specifies the atmospheric pressure (Pa) nominal at sea level, EGM96 [29] to the target.
The scale factor is 1 Pa. The value is added to the nominal pressure of 101325 Pa.
refPosition
This field specifies the reference position at which the pressure measurement is made, as an ellipsoid point with altitude and uncertainty ellipsoid. 
refTemperature
Local temperature measurement at the reference where the pressure measurement is made.
The scale factor 1K. The value is added to 273K.
period
This field specifies the pressure validity period and reference pressure rate.
pressureValidityPeriod
-	beginTime: this field specifies the start time of the pressure validity period in GNSS System Time.
-	beginTimeAlt: this field specifies an alternative start time. It may be used by the target device if GNSS-System Time is not available. The alternative start time is relative to the time the message was received. The scale factor is 15 min. The range is from 0 minutes to 43215 minutes = 30 days.
-	duration: this field specifies the duration of the validity period after the begin time. The scale factor is 15 minutes. The range is from 15 minutes to 43215 minutes = 30 days.
referencePressureRate
This field specifies the rate of change of pressure. When this field is included, the reference pressure applies only at the start of the pressure validity period. The scale factor is 10Pa/hour. 
area
This field specifies the area within which the provided atmospheric reference pressure is valid and any spatial drift.
pressureValidityArea
-	centerPoint: this field specifies the coordinates of the center of the rectangular validity area.
-	validityAreaWidth: this field specifies the width of the rectangular validity area. Width is measured from the center along the latitude and is measured as the total width of the rectangle. The scale factor is 1km. The range is from 1km to 128km.
-	validityAreaHeight: this fields specifies the height of the rectangular validity area. Height is measured from the center along the longitude and is measured as the total height of the rectangle. The scale factor is 1km. The range is from 1km to 128km.
If this field is present, refPosition should not be provided by the location server and if provided, shall be ignored by the target device.
gN-pressure
This field specifies the northward gradient of the reference pressure calculated from the center of the pressureValidityArea. The scale factor is 1 Pa/Km. If this field is not provided, the gradient is assumed to be zero. 
gE-pressure
This field specifies the eastward gradient of the reference pressure calculated from the center of the pressureValidityArea. The scale factor is 1 Pa/Km. If this field is not provided, the gradient is assumed to be zero. 

6.5.5.9	Sensor Assistance Data Request
–	Sensor-RequestAssistanceData
The IE Sensor-RequestAssistanceData is used by the target device to request Sensor assistance data from a location server.
-- ASN1START

Sensor-RequestAssistanceData-r14 ::= SEQUENCE {
	...
}

-- ASN1STOP

6.5.6	WLAN-based Positioning
This clause defines support for positioning using measurements related to WLAN access points.
6.5.6.1	WLAN Location Information
–	WLAN-ProvideLocationInformation
The IE WLAN-ProvideLocationInformation is used by the target device to provide measurements for one or more WLANs to the location server. It may also be used to provide WLAN positioning specific error reason.
-- ASN1START

WLAN-ProvideLocationInformation-r13 ::= SEQUENCE {
	wlan-MeasurementInformation-r13		WLAN-MeasurementInformation-r13		OPTIONAL,
	wlan-Error-r13						WLAN-Error-r13						OPTIONAL,
	...
}

-- ASN1STOP

6.5.6.2	WLAN Location Information Elements
–	WLAN-MeasurementInformation
-- ASN1START

WLAN-MeasurementInformation-r13 ::= SEQUENCE {
	measurementReferenceTime-r13		UTCTime						OPTIONAL,
	wlan-MeasurementList-r13			WLAN-MeasurementList-r13	OPTIONAL,
	...
}

WLAN-MeasurementList-r13 ::= SEQUENCE (SIZE(1..maxWLAN-AP-r13)) OF WLAN-MeasurementElement-r13

WLAN-MeasurementElement-r13 ::= SEQUENCE {
	wlan-AP-Identifier-r13		WLAN-AP-Identifier-r13,
	rssi-r13					INTEGER (-127..128)					OPTIONAL,
	rtt-r13						WLAN-RTT-r13						OPTIONAL,
	apChannelFrequency-r13		INTEGER (0..256)					OPTIONAL,
	servingFlag-r13				BOOLEAN								OPTIONAL,
	...
}

WLAN-AP-Identifier-r13 ::= SEQUENCE {
	bssid-r13					OCTET STRING (SIZE (6)),
	ssid-r13					OCTET STRING (SIZE (1..32))			OPTIONAL,
	...
}

WLAN-RTT-r13 ::= SEQUENCE {
	rttValue-r13	INTEGER (0..16777215),
	rttUnits-r13	ENUMERATED {	microseconds,
									hundredsofnanoseconds,
									tensofnanoseconds,
									nanoseconds,
									tenthsofnanoseconds,
									... },
	rttAccuracy-r13	INTEGER (0..255)								OPTIONAL,
	...
}

maxWLAN-AP-r13			INTEGER ::= 64

-- ASN1STOP

WLAN-MeasurementInformation field descriptions
measurementReferenceTime
This field provides the UTC time when the WLAN measurements are performed and should take the form of YYMMDDhhmmssZ.
wlan-MeasurementList
This field provides the WLAN measurements for up to 64 WLAN APs.
wlan-AP-Identifier
This field provides the BSSID and optionally the SSID of the wireless network served by the WLAN AP [26].
rssi
This field provides the AP signal strength (RSSI) of a beacon frame, probe response frame or measurement pilot frame measured at the target in dBm as defined in Table 6-7 of [26].
rtt
This field provides the measured round trip time between the target device and WLAN AP and optionally the accuracy expressed as the standard deviation of the delay. Units for each of these are 1000ns, 100ns, 10ns, 1ns, and 0.1ns.
apChannelFrequency
This field provides the AP channel number identification of the reported WLAN AP.
servingFlag
This parameter indicates whether a set of WLAN AP measurements were obtained for a serving WLAN AP (TRUE) or a non-serving WLAN AP (FALSE). A target device with multiple radio support may indicate more than one type of serving access for the same time instant.
rttValue
This field specifies the Round Trip Time (RTT) measurement between the target device and WLAN AP in units given by the field rttUnits. 
rttUnits
This field specifies the Units for the fields rttValue and rttAccuracy. The available Units are 1000ns, 100ns, 10ns, 1ns, and 0.1ns.
rttAccuracy
This field provides the estimated accuracy of the provided rttValue expressed as the standard deviation in units given by the field rttUnits.

6.5.6.3	WLAN Location Information Request
–	WLAN-RequestLocationInformation
The IE WLAN-RequestLocationInformation is used by the location server to request WLAN measurements from a target device.
-- ASN1START

WLAN-RequestLocationInformation-r13 ::= SEQUENCE {
	requestedMeasurements-r13	BIT STRING {	
											rssi		(0),
											rtt			(1)} (SIZE(1..8)),
	...,
	[[	assistanceAvailability-r14	BOOLEAN			OPTIONAL	-- Need ON
	]]
}

-- ASN1STOP

WLAN-RequestLocationInformation field descriptions
requestedMeasurements
This field specifies the WLAN measurements requested. This is represented by a bit string, with a one‑value at the bit position means the particular measurement is requested; a zero‑value means not requested. The following measurement requests can be included.

rssi:	AP signal strength at the target
rtt:	Round Trip Time between target and AP
assistanceAvailability
This field indicates whether the target device may request additional WLAN assistance data from the server. TRUE means allowed and FALSE means not allowed.

6.5.6.4	WLAN Capability Information
–	WLAN-ProvideCapabilities
The IE WLAN-ProvideCapabilites is used by the target device to provide its capabilities for WLAN positioning to the location server.
-- ASN1START

WLAN-ProvideCapabilities-r13 ::= SEQUENCE {
	wlan-Modes-r13			BIT STRING	{	standalone		(0),
											ue-assisted		(1),
											ue-based		(2)}	(SIZE (1..8)),
	wlan-MeasSupported-r13	BIT STRING	{	
											rssi-r13		(0),
											rtt-r13			(1)}	(SIZE(1..8)),
	...	,
	[[	wlan-AP-AD-Supported-r14	
							BIT STRING {	ap-identifier	(0),
											ap-location		(1)}	(SIZE (1..8))
																					OPTIONAL,
		periodicalReportingSupported-r14	PositioningModes						OPTIONAL,
		idleStateForMeasurements-r14
							ENUMERATED {	required	}							OPTIONAL
	]]
}

-- ASN1STOP

WLAN-ProvideCapabilities field descriptions
wlan-Modes
This field specifies the WLAN mode(s) supported by the target device. This is represented by a bit string, with a one value at the bit position means the WLAN mode is supported; a zero value means not supported.
wlan-MeasSupported
This field specifies the measurements supported by the target device when accessing a WLAN. This is represented by a bit string, with a one‑value at the bit position means the particular measurement is supported; a zero‑value means not supported. A zero-value in all bit positions in the bit string means only the basic WLAN positioning method is supported by the target device which is reporting of the WLAN identity. The following bits are assigned for the indicated measurements.

rssi:	AP signal strength at the target
rtt:	Round Trip Time between target and AP
wlan-AP-AD-Supported
This field specifies the WLAN AP assistance data supported by the target device. This is represented by a bit string, with a
one-value at the bit position means the particular assistance data is supported; a zero-value means not supported. A zero-value in all bit positions or absence of this field means no assistance data is supported. The following bits are assigned for the indicated assistance data.

ap-identifier: WLAN AP identity information
ap-location: WLAN AP location information
periodicalReportingSupported
This field, if present, specifies the positioning modes for which the target device supports periodicalReporting. This is represented by a bit string, with a one value at the bit position means periodicalReporting for the positioning mode is supported; a zero value means not supported. If this field is absent, the location server may assume that the target device does not support periodicalReporting in CommonIEsRequestLocationInformation.
idleStateForMeasurements
This field, if present, indicates that the target device requires idle state to perform WLAN measurements.

6.5.6.5	WLAN Capability Information Request
–	WLAN-RequestCapabilities
The IE WLAN-RequestCapabilities is used by the location server to request WLAN positioning capabilities information from a target device.
-- ASN1START

WLAN-RequestCapabilities-r13 ::= SEQUENCE {
	...
}

-- ASN1STOP

6.5.6.6	WLAN Error Elements
–	WLAN-Error
The IE WLAN-Error is used by the location server or target device to provide error reasons for WLAN positioning to the target device or location server, respectively.
-- ASN1START

WLAN-Error-r13 ::= CHOICE {
	locationServerErrorCauses-r13		WLAN-LocationServerErrorCauses-r13,
	targetDeviceErrorCauses-r13			WLAN-TargetDeviceErrorCauses-r13,
	...
}

-- ASN1STOP

–	WLAN-LocationServerErrorCauses
The IE WLAN-LocationServerErrorCauses is used by the location server to provide error reasons for WLAN positioning to the target device.
-- ASN1START

WLAN-LocationServerErrorCauses-r13 ::= SEQUENCE {
	cause-r13								ENUMERATED	{undefined,	
														...,
														requestedADNotAvailable-v1420,
														notAllrequestedADAvailable-v1420
														},
	...,
	[[	apLocationDataUnavailable-r14		NULL	OPTIONAL		-- Need ON
	]]
}

-- ASN1STOP

WLAN-LocationServerErrorCauses field descriptions
cause
This field provides a WLAN AP specific error cause for the server applicable to provision of assistance data. If the cause value is 'requestedADNotAvailable', none of the requested assistance data could be provided and no further information needs to be included. If the cause value is 'notAllRequestedADAvailable', the server was able to provide some but not all requested WLAN AP assistance data. In this case, the server should include any of the specific error indications as applicable. Note that inclusion of these fields is applicable when some of the associated information can be provided for some WLAN APs but not for all WLAN APs.

–	WLAN-TargetDeviceErrorCauses
The IE WLAN-TargetDeviceErrorCauses is used by the target device to provide error reasons for WLAN positioning to the location server.
-- ASN1START

WLAN-TargetDeviceErrorCauses-r13 ::= SEQUENCE {
	cause-r13								ENUMERATED {undefined,
														requestedMeasurementsNotAvailable,
														notAllrequestedMeasurementsPossible,
														...
														},
	wlan-AP-RSSI-MeasurementNotPossible-r13				NULL		OPTIONAL,
	wlan-AP-RTT-MeasurementNotPossible-r13				NULL		OPTIONAL,
	...
}

-- ASN1STOP

WLAN-TargetDeviceErrorCauses field descriptions
cause
This field provides a WLAN specific error cause. If the cause value is 'notAllRequestedMeasurementsPossible', the target device was not able to provide all requested WLAN measurements (but may be able to provide some measurements). In this case, the target device should include any of the wlan‑AP‑RSSI‑MeasurementNotPossible, or wlan‑AP‑RTT‑MeasurementNotPossible fields, as applicable.

6.5.6.7	WLAN Assistance Data
–	WLAN-ProvideAssistanceData
The IE WLAN-ProvideAssistanceData is used by the location server to provide assistance data to enable UE‑based and UE-assisted WLAN positioning. It may also be used to provide WLAN positioning specific error reason.
-- ASN1START

WLAN-ProvideAssistanceData-r14 ::= SEQUENCE {
	wlan-DataSet-r14	SEQUENCE (SIZE (1..maxWLAN-DataSets-r14)) OF WLAN-DataSet-r14
																			OPTIONAL,	-- Need ON
	wlan-Error-r14		WLAN-Error-r13										OPTIONAL,	-- Need ON
	...
}

maxWLAN-DataSets-r14		INTEGER ::= 8

-- ASN1STOP

WLAN-ProvideAssistanceData field descriptions
wlan-DataSet
This field provides data for sets of WLAN APs.
wlan-Error
This field provides error information and may be included when a Provide Assistance Data is sent in response to a Request Assistance Data. It is allowed to include both a wlan-DataSet field and a wlan-Error field (e.g. when only some requested WLAN assistance data is provided).

6.5.6.8	WLAN Assistance Data Elements
–	WLAN-DataSet
The IE WLAN-DataSet is used by the location server to provide WLAN AP information for one set of WLAN APs.
-- ASN1START

WLAN-DataSet-r14 ::= SEQUENCE {
	wlan-AP-List-r14				SEQUENCE (SIZE (1..maxWLAN-AP-r14)) OF WLAN-AP-Data-r14,
	supportedChannels-11a-r14		SupportedChannels-11a-r14		OPTIONAL,	-- Need ON
	supportedChannels-11bg-r14		SupportedChannels-11bg-r14		OPTIONAL,	-- Need ON
	...
}

SupportedChannels-11a-r14 ::= SEQUENCE {
	ch34-r14		BOOLEAN,
	ch36-r14		BOOLEAN,
	ch38-r14		BOOLEAN,
	ch40-r14		BOOLEAN,
	ch42-r14		BOOLEAN,
	ch44-r14		BOOLEAN,
	ch46-r14		BOOLEAN,
	ch48-r14		BOOLEAN,
	ch52-r14		BOOLEAN,
	ch56-r14		BOOLEAN,
	ch60-r14		BOOLEAN,
	ch64-r14		BOOLEAN,
	ch149-r14		BOOLEAN,
	ch153-r14		BOOLEAN,
	ch157-r14		BOOLEAN,
	ch161-r14		BOOLEAN
}

SupportedChannels-11bg-r14 ::= SEQUENCE {
	ch1-r14			BOOLEAN,
	ch2-r14			BOOLEAN,
	ch3-r14			BOOLEAN,
	ch4-r14			BOOLEAN,
	ch5-r14			BOOLEAN,
	ch6-r14			BOOLEAN,
	ch7-r14			BOOLEAN,
	ch8-r14			BOOLEAN,
	ch9-r14			BOOLEAN,
	ch10-r14		BOOLEAN,
	ch11-r14		BOOLEAN,
	ch12-r14		BOOLEAN,
	ch13-r14		BOOLEAN,
	ch14-r14		BOOLEAN
}

maxWLAN-AP-r14		INTEGER ::= 128


-- ASN1STOP

WLAN-DataSet field descriptions
wlan-AP-List
This field provides information for WLAN APs in the data set.
supportedChannels-11a
This field defines the superset of all channels supported by all WLAN APs in the data set of type 801.11a (5GHz band). 
supportedChannels-11bg
This field defines the superset of all channels supported by all WLAN APs in the data set of type 801.11b or
802.11g (2.4 GHz band).

–	WLAN-AP-Data
The IE WLAN-AP-Data is used by the location server to provide information for one WLAN AP as part of WLAN AP assistance data.
-- ASN1START

WLAN-AP-Data-r14 ::= SEQUENCE {
	wlan-AP-Identifier-r14				WLAN-AP-Identifier-r13,
	wlan-AP-Location-r14				WLAN-AP-Location-r14		OPTIONAL,	-- Need ON
	...
}

WLAN-AP-Location-r14 ::= SEQUENCE {
	locationDataLCI-r14					LocationDataLCI-r14,
	...
}

LocationDataLCI-r14 ::= SEQUENCE {
	latitudeUncertainty-r14				BIT STRING (SIZE (6)),
	latitude-r14						BIT STRING (SIZE (34)),
	longitudeUncertainty-r14			BIT STRING (SIZE (6)),
	longitude-r14						BIT STRING (SIZE (34)),
	altitudeUncertainty-r14				BIT STRING (SIZE (6))		OPTIONAL,	-- Need ON
	altitude-r14						BIT STRING (SIZE (30))		OPTIONAL,	-- Need ON
	datum-r14							BIT STRING (SIZE (8)),
	...
}

-- ASN1STOP

WLAN-AP-Data field descriptions
wlan-AP-Location

-	locationDataLCI
This field provides the location of the WLAN AP in the form of Location Configuration Information (LCI) defined in [27] and includes the following subfields:
latitudeUncertainty:	6-bits quantifying the amount of uncertainty in latitude. A value of 0 is reserved to indicate that the uncertainty is unknown; values greater than 34 are reserved. Its relation with the corresponding value in degrees is expressed with the following formula:
latitudeUncertainty = 8 - ceil(log2(uncertainty in degrees))
latitude:	A 34-bits fixed point value consisting of 9-bits of integer and 25-bits of fraction indicating the Latitude (+/- 90 degrees) of the AP.
longitudeUncertainty:	6-bits quantifying the amount of uncertainty in longitude. A value of 0 is reserved to indicate that the uncertainty is unknown; values greater than 34 are reserved. Its relation with the corresponding value in degrees is expressed with the following formula:
longitudeUncertainty = 8 - ceil(log2(uncertainty in degrees))
longitude:	A 34-bits fixed point value consisting of 9-bits of integer and 25-bits of fraction indicating the Longitude (+/- 180 degrees) of the AP.
altitudeUncertainty:	6-bits value quantifying the amount of uncertainty in the altitude value. A value of 0 is reserved to indicate that the uncertainty is unknown; values greater than 30 are reserved. Its relation with the corresponding value in meters is expressed with the following formula:
altitudeUncertainty = 21 - ceil(log2( uncertainty in meters))
altitude:	A 30-bit fixed point value consisting of 22-bits of integer and 8-bits of fraction indicating the altitude of the AP in meters.
datum:	8-bits indicating the map datum used for the coordinates. Defined codes are:
Bit 1: World Geodetic System 1984 (WGS-84)
Bit 2: North American Datum 1983 (NAD-83) with North American Vertical Datum 1988 (NAVD-88)
Bit 3: North American Datum 1983 (NAD-83) with Mean Lower Low Water (MLLW) vertical datum. 
Bits 4 – 8 are reserved.

6.5.6.9	WLAN Assistance Data Request
–	WLAN-RequestAssistanceData
The IE WLAN-RequestAssistanceData is used by the target device to request WLAN assistance data from a location server.
-- ASN1START

WLAN-RequestAssistanceData-r14 ::= SEQUENCE {
	requestedAD-r14			BIT STRING {	ap-identifier		(0),
											ap-location			(1)}	(SIZE (1..8)),
	visibleAPs-r14			SEQUENCE (SIZE (1..maxVisibleAPs-r14)) OF WLAN-AP-Identifier-r13	OPTIONAL,
	wlan-AP-StoredData-r14	SEQUENCE (SIZE (1..maxKnownAPs-r14)) OF WLAN-AP-Identifier-r13	OPTIONAL,
	...
}

maxVisibleAPs-r14			INTEGER ::= 32
maxKnownAPs-r14				INTEGER ::= 2048

-- ASN1STOP

WLAN-RequestAssistanceData field descriptions
requestedAD
This field specifies the WLAN AP assistance data requested. This is represented by a bit string, with a one-value at the bit position means the particular assistance data is requested; a zero-value means not requested. The following assistance data types are included:

ap-identifier: WLAN AP identity information
ap-location: WLAN AP location information
visibleAPs
This field enables a target to indicate to a server the identities of currently visible WLAN APs. This may assist a server to provide assistance data for WLAN APs nearby to the target. A target shall provide visible APs in order of received signal strength with the AP with the highest signal strength provided first. 
wlan-AP-StoredData
This field enables a target to indicate to a server the identities of WLAN APs for which the target has stored assistance data received previously from the server. This may enable the server to avoid resending data for the same APs.

6.5.7	Bluetooth-based Positioning
6.5.7.1	Bluetooth Location Information
–	BT-ProvideLocationInformation
The IE BT-ProvideLocationInformation is used by the target device to provide measurements for one or more Bluetooth beacons to the location server. It may also be used to provide Bluetooth positioning specific error reason.
-- ASN1START

BT-ProvideLocationInformation-r13 ::= SEQUENCE {
	bt-MeasurementInformation-r13		BT-MeasurementInformation-r13	OPTIONAL,
	bt-Error-r13						BT-Error-r13					OPTIONAL,
	...	
}

-- ASN1STOP

6.5.7.2	Bluetooth Location Information Elements
–	BT-MeasurementInformation
-- ASN1START

BT-MeasurementInformation-r13 ::= SEQUENCE {
	measurementReferenceTime-r13		UTCTime						OPTIONAL,
	bt-MeasurementList-r13				BT-MeasurementList-r13		OPTIONAL,
	...
}

BT-MeasurementList-r13 ::= SEQUENCE (SIZE(1..maxBT-Beacon-r13)) OF BT-MeasurementElement-r13


BT-MeasurementElement-r13 ::= SEQUENCE {
	btAddr-r13						BIT STRING (SIZE (48)),
	rssi-r13						INTEGER (-128..127)				OPTIONAL,
	...
}

maxBT-Beacon-r13				INTEGER ::= 32

-- ASN1STOP

BT-MeasurementInformation field descriptions
measurementReferenceTime
This field provides the UTC time when the Bluetooth measurements are performed and should take the form of YYMMDDhhmmssZ.
bt-MeasurementList
This field provides the Bluetooth measurements for up to 32 Bluetooth beacons.
btAddr
This field specifies the Bluetooth public address of the Bluetooth beacon [25].
rssi
This field provides the beacon received signal strength indicator (RSSI) in dBm.

6.5.7.3	Bluetooth Location Information Request
–	BT-RequestLocationInformation
The IE BT-RequestLocationInformation is used by the location server to request Bluetooth measurements from a target device.
-- ASN1START

BT-RequestLocationInformation-r13 ::= SEQUENCE {
	requestedMeasurements-r13	BIT STRING {	
											rssi		(0)} (SIZE(1..8)),
	...
}

-- ASN1STOP

BT-RequestLocationInformation field descriptions
requestedMeasurements
This field specifies the Bluetooth measurements requested. This is represented by a bit string, with a one‑value at the bit position means the particular measurement is requested; a zero‑value means not requested. The following measurement requests can be included.

rssi: Bluetooth beacon signal strength at the target

6.5.7.4	Bluetooth Capability Information
–	BT-ProvideCapabilities
The IE BT-ProvideCapabilites is used by the target device to provide its capabilities for Bluetooth positioning to the location server.
-- ASN1START

BT-ProvideCapabilities-r13 ::= SEQUENCE {
	bt-Modes-r13			BIT STRING {	standalone		(0),
											ue-assisted		(1)}	(SIZE (1..8)),
	bt-MeasSupported-r13	BIT STRING {	rssi-r13		(0)}	(SIZE (1..8)),
	...,
	[[
	idleStateForMeasurements-r14
							ENUMERATED {	required	}							OPTIONAL,
	periodicalReportingSupported-r14	
							PositioningModes										OPTIONAL
	]]
}

-- ASN1STOP

BT-ProvideCapabilities field descriptions
bt-Modes
This field specifies the Bluetooth mode(s) supported by the target device. This is represented by a bit string, with a one value at the bit position means the Bluetooth mode is supported; a zero value means not supported.
bt-MeasSupported
This field specifies the Bluetooth measurements supported by the target device. This is represented by a bit string, with a one‑value at the bit position means the particular measurement is supported; a zero‑value means not supported. A zero-value in all bit positions in the bit string means only the basic Bluetooth positioning method is supported by the target device which is reporting of the Bluetooth beacon identity. The following bits are assigned for the indicated measurements.

rssi:	Bluetooth beacon signal strength at the target device
idleStateForMeasurements
This field, if present, indicates that the target device requires idle state to perform BT measurements.
periodicalReportingSupported
This field, if present, specifies the positioning modes for which the target device supports periodicalReporting. This is represented by a bit string, with a one value at the bit position means periodicalReporting for the positioning mode is supported; a zero value means not supported. If this field is absent, the location server may assume that the target device does not support periodicalReporting in CommonIEsRequestLocationInformation.

6.5.7.5	Bluetooth Capability Information Request
–	BT-RequestCapabilities
The IE BT-RequestCapabilities is used by the location server to request Bluetooth positioning capabilities from a target device.
-- ASN1START

BT-RequestCapabilities-r13 ::= SEQUENCE {
	...
}

-- ASN1STOP

6.5.7.6	BT Error Elements
–	BT-Error
The IE BT-Error is used by the location server or target device to provide error reasons for Bluetooth positioning to the target device or location server, respectively.
-- ASN1START

BT-Error-r13 ::= CHOICE {
	locationServerErrorCauses-r13		BT-LocationServerErrorCauses-r13,
	targetDeviceErrorCauses-r13			BT-TargetDeviceErrorCauses-r13,
	...
}

-- ASN1STOP

–	BT-LocationServerErrorCauses
The IE BT-LocationServerErrorCauses is used by the location server to provide error reasons for Bluetooth positioning to the target device.
-- ASN1START

BT-LocationServerErrorCauses-r13 ::= SEQUENCE {
	cause-r13								ENUMERATED	{undefined,	...},
	...
}

-- ASN1STOP

–	BT-TargetDeviceErrorCauses
The IE BT-TargetDeviceErrorCauses is used by the target device to provide error reasons for Bluetooth positioning to the location server.
-- ASN1START

BT-TargetDeviceErrorCauses-r13 ::= SEQUENCE {
	cause-r13								ENUMERATED {undefined,
														requestedMeasurementsNotAvailable,
														notAllrequestedMeasurementsPossible,
														...
														},
	bt-Beacon-rssiMeasurementNotPossible-r13	NULL		OPTIONAL,
	...
}

-- ASN1STOP

BT-TargetDeviceErrorCauses field descriptions
cause
This field provides a Bluetooth specific error cause. If the cause value is 'notAllRequestedMeasurementsPossible', the target device was not able to provide all requested Bluetooth measurements (but may be able to provide some measurements). In this case, the target device should include bt-Beacon-rssiMeasurementNotPossible field.

–	End of LPP-PDU-Definitions
-- ASN1START

END

-- ASN1STOP

7	Broadcast of assistance data
7.1	General
Broadcast of positioning assistance data is supported via Positioning System Information Blocks (posSIBs) as specified in TS 36.331 [12]. The posSIBs are carried in RRC System Information (SI) messages (TS 36.331 [12]).
A single SystemInformationBlockPos IE is defined in TS 36.331 [12] which is carried in IE PosSystemInformation-r15-IEs specified in TS 36.331 [12]. The mapping of positioning SIB type (posSibType) to assistance data carried in SystemInformationBlockPos is specified in clause 7.2.
7.2	Mapping of posSibType to assistance data element
The supported posSibType's are specified in Table 7.2-1. The GNSS Common and Generic Assistance Data IEs are defined in clause 6.5.2.2. The OTDOA Assistance Data IEs are defined in clause 7.4.2.
Table 7.2-1: Mapping of posSibType to assistanceDataElement

posSibType [12]
assistanceDataElement
GNSS Common Assistance Data (clause 6.5.2.2)
posSibType1-1
GNSS-ReferenceTime

posSibType1-2
GNSS-ReferenceLocation

posSibType1-3
GNSS-IonosphericModel

posSibType1-4
GNSS-EarthOrientationParameters

posSibType1-5
GNSS-RTK-ReferenceStationInfo

posSibType1-6
GNSS-RTK-CommonObservationInfo

posSibType1-7
GNSS-RTK-AuxiliaryStationData
GNSS Generic Assistance Data (clause 6.5.2.2)
posSibType2-1
GNSS-TimeModelList

posSibType2-2
GNSS-DifferentialCorrections

posSibType2-3
GNSS-NavigationModel

posSibType2-4
GNSS-RealTimeIntegrity

posSibType2-5
GNSS-DataBitAssistance

posSibType2-6
GNSS-AcquisitionAssistance

posSibType2-7
GNSS-Almanac

posSibType2-8
GNSS-UTC-Model

posSibType2-9
GNSS-AuxiliaryInformation

posSibType2-10
BDS-DifferentialCorrections

posSibType2-11
BDS-GridModelParameter

posSibType2-12
GNSS-RTK-Observations

posSibType2-13
GLO-RTK-BiasInformation

posSibType2-14
GNSS-RTK-MAC-CorrectionDifferences

posSibType2-15
GNSS-RTK-Residuals

posSibType2-16
GNSS-RTK-FKP-Gradients

posSibType2-17
GNSS-SSR-OrbitCorrections

posSibType2-18
GNSS-SSR-ClockCorrections

posSibType2-19
GNSS-SSR-CodeBias
OTDOA Assistance Data (clause 7.4.2)
posSibType3-1
OTDOA-UE-Assisted

7.3	Procedures related to broadcast information elements
Upon receiving AssistanceDataSIBelement, the target device shall:
1>	if the segmentationInfo is not included:
2>	if the cipheringKeyData is included:
3>	if the UE has obtained a valid cipher key value and the first portion of the initial Counter denoted C0 corresponding to the cipherSetID using NAS signalling:
4>	if the d0 field contains less than 128-bits:
5>	pad out the bit string with zeroes in least significant bit positions to achieve 128 bits, denoted D0.
4>	determine the initial Counter C1 = (C0 + D0) mod 2128 (where all values are treated as non-negative integers);
4>	determine any subsequent counter Ci from the previous counter Ci-1 as Ci = (Ci-1 + 1) mod 2128;
4>	use the sequence of counters <C1, C2, C3, …> and the cipher key value to decipher the assistanceDataElement;
4>	decode the deciphered assistanceDataElement and deliver the related assistance data to upper layers.
3>	else:
4>	discard the AssistanceDataSIBelement.
2>	else:
3>	decode the assistanceDataElement and deliver the related assistance data to upper layers.
1>	else:
2>	if segmentationOption indicates 'pseudo-seg':
3>	if the cipheringKeyData is included:
4>	if the UE has obtained a valid cipher key value and the first portion of the initial Counter denoted C0 corresponding to the cipherSetID using NAS signalling:
5>	if the d0 field contains less than 128-bits:
6>	pad out the bit string with zeroes in least significant bit positions to achieve 128 bits, denoted D0.
5>	determine the initial Counter C1 = (C0 + D0) mod 2128 (where all values are treated as non-negative integers);
5>	determine any subsequent counter Ci from the previous counter Ci-1 as Ci = (Ci-1 + 1) mod 2128;
5>	use the sequence of counters <C1, C2, C3, …> and the cipher key value to decipher the assistanceDataElement segment;
5>	decode the deciphered assistanceDataElement segment and deliver the related assistance data portion together with the assistanceDataSegmentType and assistanceDataSegmentNumber to upper layers.
4>	else:
5>	discard the AssistanceDataSIBelement segment.
3>	else:
4>	decode the assistanceDataElement segment and deliver the related assistance data portion together with the assistanceDataSegmentType and assistanceDataSegmentNumber to upper layers.
2>	if segmentationOption indicates 'octet-string-seg':
3>	if all segments of assistanceDataElement have been received:
4>	assemble the assistance data element from the received assistanceDataElement segments;
5>	if the cipheringKeyData is included in the first segment:
6>	if the UE has obtained a valid cipher key value and the first portion of the initial Counter denoted C0 corresponding to the cipherSetID using NAS signalling:
7>	if the d0 field contains less than 128-bits:
8>	pad out the bit string with zeroes in least significant bit positions to achieve 128 bits, denoted D0.
7>	determine the initial Counter C1 = (C0 + D0) mod 2128 (where all values are treated as non-negative integers);
7>	determine any subsequent counter Ci from the previous counter Ci-1 as Ci = (Ci-1 + 1) mod 2128;
7>	use the sequence of counters <C1, C2, C3, …> and the cipher key value to decipher the assembled assistance data element;
7>	decode the assembled and deciphered assistance data element and deliver the related assistance data to upper layers.
6>	else:
7>	discard the assembled assistance data element.
5>	else:
6>	decode the assembled assistance data element and deliver the related assistance data to upper layers.
NOTE:	As an optional optimisation when segmentationOption indicates 'octet-string-seg', a target device may verify if the cipheringKeyData is included in the first segment as soon as the first segment is received and, if included, may verify that the UE has obtained a valid cipher key value and the first portion of the initial Counter denoted C0 corresponding to the cipherSetID using NAS signalling. When the UE has not obtained a valid cipher key value and initial Counter C0 using NAS signalling, the UE may discard the first segment and ignore all subsequent segments.
The value for D0 shall be different for different AssistanceDataSIBelement's to ensure that the counters derived from C1 for any assistanceDataElement are different to the counters for any other assistanceDataElement for a given ciphering key.
D0 shall contain at least 16 least significant bits (LSBs) set to zero to ensure that the values of D0 differ from another by a large value.
7.4	Broadcast information elements
7.4.1	Basic production
This clause defines the broadcast information elements which are encoded as 'basic production' for other purposes than encoding the IE within an LPP message.
The 'basic production' is obtained from their ASN.1 definitions by use of Basic Packed Encoding Rules (BASIC-PER), Unaligned Variant, as specified in ITU-T Rec. X.691 [22]. It always contains a multiple of 8 bits.
7.4.2	Element definitions
–	AssistanceDataSIBelement
The IE AssistanceDataSIBelement is used in the IE SystemInformationBlockPos as specified in TS 36.331 [12].
-- ASN1START

AssistanceDataSIBelement-r15 ::= SEQUENCE {
	valueTag-r15						INTEGER (0..63)								OPTIONAL,
	expirationTime-r15					UTCTime										OPTIONAL,
	cipheringKeyData-r15				CipheringKeyData-r15 						OPTIONAL,
	segmentationInfo-r15				SegmentationInfo-r15						OPTIONAL,
	assistanceDataElement-r15			OCTET STRING,
	...
}

CipheringKeyData-r15 ::= SEQUENCE {
	cipherSetID-r15 					INTEGER (0..65535),
	d0-r15 								BIT STRING (SIZE (1..128)),
	...
}

SegmentationInfo-r15 ::= SEQUENCE {
	segmentationOption-r15				ENUMERATED {pseudo-seg, octet-string-seg},
	assistanceDataSegmentType-r15		ENUMERATED {notLastSegment, lastSegment},
	assistanceDataSegmentNumber-r15		INTEGER (0..63),
	...
}

-- ASN1STOP

AssistanceDataSIBelement field descriptions
valueTag
This field is used to indicate to the target device any changes in the broadcast assistance data content. The valueTag is incremented by one, by the location server, every time a modified assistance data content is provided. This field is not included if the broadcast assistance data changes too frequently. If valueTag and expirationTime are absent, the UE assumes that the broadcast assistance data content changes at every broadcast interval.
expirationTime
This field indicates how long the broadcast assistance data content is valid. It is specified as UTC time and indicates when the broadcast assistance data content will expire.
cipheringKeyData
If present, indicates that the assistanceDataElement octet string is ciphered.
segmentationInfo
If present, indicates that the assistanceDataElement is one of many segments.
assistanceDataElement
The assistanceDataElement OCTET STRING depends on the posSibType and is specified in Table 7.2-1. NOTE.
cipherSetID
This field identifies a cipher set comprising a cipher key value and the first component C0 of the initial counter C1.
d0
This field provides the second component for the initial ciphering counter C1. This field is defined as a bit string with a length of 1 to 128 bits. A target device first pads out the bit string if less than 128 bits with zeroes in least significant bit positions to achieve 128 bits. C1 is then obtained from D0 and C0 (defined by the cipherSetID) as:
C1 = (D0 + C0) mod 2128 (with all values treated as non-negative integers).
segmentationOption
Indicates the used segmentation option. 
assistanceDataSegmentType
Indicates whether the included assistanceDataElement segment is the last segment or not.
assistanceDataSegmentNumber
Segment number of the assistanceDataElement segment. A segment number of zero corresponds to the first segment, one corresponds to the second segment, and so on. Segments numbers wraparound should there be more than 64 segments

NOTE: 	For example, if the posSibType in IE PosSIB-Type defined in TS 36.331 [12] indicates 'posSibType1-7', the assistanceDataElement OCTET STRING includes the LPP IE GNSS‑RTK‑AuxiliaryStationData.
–	OTDOA-UE-Assisted
The IE OTDOA-UE-Assisted is used in the assistanceDataElement if the posSibType in IE PosSIB-Type defined in TS 36.331 [12] indicates 'posSibType3-1'.
-- ASN1START

OTDOA-UE-Assisted-r15 ::= SEQUENCE {
	otdoa-ReferenceCellInfo-r15			OTDOA-ReferenceCellInfo,
	otdoa-NeighbourCellInfo-r15			OTDOA-NeighbourCellInfoList,
	...
}

-- ASN1STOP

OTDOA-UE-Assisted field descriptions
otdoa-ReferenceCellInfo
LPP IE OTDOA-ReferenceCellInfo as defined in clause 6.5.1.2.
otdoa-NeighbourCellInfo
LPP IE OTDOA-NeighbourCellInfoList as defined in clause 6.5.1.2.

7.5	Broadcast ciphering (informative)
The assistanceDataElement OCTET STRING included in IE AssistanceDataSIBelement may be ciphered using the 128-bit Advanced Encryption Standard (AES) algorithm (with counter mode).
AES as specified in [32] and [33] is a block mode cipher algorithm that ciphers blocks of 128 bits at a time. However, Counter mode enables usage for a bit string that is not an exact multiple of 128 bits. Further, Counter mode enables a target (or a server) to perform most of the deciphering (or ciphering) processing independently of receipt of the data to be deciphered (or ciphered) which may enable more efficient processing. Provided counters are chosen in a non‑repeating manner by the server (which is a requirement for Counter mode), every block of data will be ciphered in a unique manner.
The algorithm makes use of a sequence of counters <C1, C2, C3, …> each containing 128 bits, where C1 is specified by the server and each subsequent counter (C2, C3 etc.) is obtained from the previous counter by adding one modulo 2128. Each counter Ci is ciphered using the AES algorithm with a common 128-bit key to produce an output block Oi of 128 bits. To perform ciphering, the assistanceDataElement is divided into blocks B1, B2, … Bn of 128 bits each, except for the last block Bn which may contain fewer than 128 bits. The ciphered assistanceDataElement is obtained as a sequence of n blocks containing 128 bits each (except possibly for the last block) given by (O1 XOR B1), (O2 XOR B2), … (On XOR Bn), where XOR denotes bitwise exclusive OR. In the case of the last block, if Bn contains m bits (m<128), then the m most significant bits of On would be used for the exclusive OR. Deciphering is performed in the same way except that the blocks B1, B2, … Bn are now obtained from the ciphered message and the result of the exclusive OR operations yields the original unciphered message. Figure 7.5-1 provides an illustration of Counter mode for the generic case of an arbitrary block cipher algorithm CIPHk.

Figure 7.5-1: Illustration of Block Ciphering with Counter Mode [33].
The algorithms require specific conventions for bit ordering. The bit ordering applicable to ciphering for a ASN.1 PER encoded assistanceDataElement is the bit ordering produced by the ASN.1 PER encoding where the first bit is the leading bit number zero, the second bit is bit one etc..
The initial counter C1 used to cipher an entire assistanceDataElement is provided to a target by a server in two portions. The first portion, denoted C0, is provided using point to point mode along with the 128-bit ciphering key and an identifier for both of these values as specified in TS 23.271 [3]. The second portion, denoted D0 (d0), is provided in unciphered form in IE CipheringKeyData. A target then obtains C1 as:
C1 = (C0 + D0) mod 2128	(where all values are treated as non-negative integers)
To obtain any subsequent counter Ci from the previous counter Ci1 for any message, the following operation is used:
Ci = (Ci1 + 1) mod 2128
NOTE:	As specified in clause 7.3 the value for D0 is different for different AssistanceDataSIBelement's to ensure that the counters derived from C1 for any assistanceDataElement can be different to the counters for any other assistanceDataElement. However, a long assistanceDataElement or a segmented assistanceDataElement would require the use of consecutive counter values C1 to Cn, where n is the assistanceDataElement size in bits divided by 128 (and rounded up). There would then be a danger of small changes in the value of D0 for ciphering of different assistanceDataElement's (e.g. D0 being chosen as 1 larger than a previous D0 value) reusing previous counter values. To avoid this, the values of D0 contain 16 least significant bits (LSBs) set to zero, as specified in clause 7.3.

Annex A (informative):
Change History

Change history
Date
TSG #
TSG Doc.
CR
Rev
Cat
Subject/Comment
New version
2009-10
RAN2 #67bis
R2-096252



RAN2 agreed TS 36.355 v0.1.0
0.1.0
2009-11
RAN2 #68
R2-097492



RAN2 agreed TS 36.355 v2.0.0
2.0.0
2009-12
RP-46
RP-091208



RAN #46 approval of TS 36.355
9.0.0
2010-03
RP-47
RP-100304
0001
-

Clarification on Position location
9.1.0

RP-47
RP-100304
0002
-

Clarification on UE Rx-Tx time difference supporting capability
9.1.0

RP-47
RP-100304
0003
2

Completion of LPP common material
9.1.0

RP-47
RP-100304
0004
5

Completion of OTDOA in LPP
9.1.0

RP-47
RP-100304
0006
-

Provision of Frame Drift Information in Network Time
9.1.0

RP-47
RP-100304
0007
-

Clarification of measurement reference point
9.1.0

RP-47
RP-100304
0010
-

GNSS-DifferentialCorrectionsSupport
9.1.0

RP-47
RP-100304
0011
-

BSAlign Indication in GNSS Reference Time
9.1.0

RP-47
RP-100304
0012
1

Changes to reflect LPP ASN.1 review
9.1.0

RP-47
RP-100304
0013
1

Introduction of LPP reliability sublayer
9.1.0

RP-47
RP-100304
0015
-

LPP error procedures and conditions
9.1.0

RP-47
RP-100304
0016
-

Triggered Location Information Transfer due to Cell Change
9.1.0
2010-06
RP-48
RP-100558
0018
2

Addition of need codes to optional LPP information elements
9.2.0

RP-48
RP-100558
0019
1

Miscellaneous corrections to LPP stage 3
9.2.0

RP-48
RP-100558
0020
1

Small corrections to LPP specification
9.2.0

RP-48
RP-100558
0021
-

Clarifications of OTDOA parameters
9.2.0

RP-48
RP-100558
0022
1

Signalling support for PRS muting in OTDOA
9.2.0

-
-
-
-

Two times capital R replaced by lower case r in "MeasuredResultsElement" (undoing not intended change)
9.2.1
2010-09
RP-49
RP-100852
0024
-

Addition of an EPDU to an LPP Error and LPP Abort
9.3.0

RP-49
RP-100852
0026
-

Division of LPP into Separate ASN.1 Modules with a Global Identifier
9.3.0

RP-49
RP-100852
0028
-

Proposed Corrections to LPP Reliable Transport
9.3.0

RP-49
RP-100852
0029
-

Proposed Corrections to the PeriodicalReportingCriteria in LPP
9.3.0

RP-49
RP-100852
0030
1

Various corrections and clarifications to LPP
9.3.0

RP-49
RP-100852
0031
-

Support of functional components for LPP reliable transport
9.3.0

RP-49
RP-100852
0032
1

Introduction of EPDU ID requested by OMA LOC
9.3.0

RP-49
RP-100852
0035
1

Several corrections in LPP
9.3.0

RP-49
RP-100852
0036
-

Clarification to Assistance Data Transfer Procedure
9.3.0
2010-12
RP-50
RP-101207
0037
-

Correction of reliable transport terminology in description of LPP-Message
9.4.0

RP-50
RP-101207
0038
-

One cell with known SFN in OTDOA assistance data
9.4.0

RP-50
RP-101207
0039
1

UE frequency capability for LPP
9.4.0

RP-50
RP-101207
0041
-

Correction to LPP reliable transport
9.4.0

RP-50
RP-101207
0042
-

Correction to LPP Error procedure
9.4.0

RP-50
RP-101207
0043
-

Addition of missing reference to LPPe
9.4.0

RP-50
RP-101207
0044
2

Correction to the ODTOA assistance data
9.4.0

RP-50
RP-101226
0040
-

Update of 'serving cell' terminology in 36.355
10.0.0
2011-03
RP-51
RP-110269
0046
-

Editorial corrections to 36.355
10.1.0

RP-51
RP-110269
0048
-

Removal of FFS for retransmission timer in LPP
10.1.0

RP-51
RP-110269
0050
-

Correction to code phase encoding in GNSS acquisition assistance
10.1.0

RP-51
RP-110269
0052
1

Clarification on SFN provided with OTDOA measurement
10.1.0

RP-51
RP-110269
0053
1

Introduction of OTDOA inter-freq RSTD measurement indication procedure
10.1.0

RP-51
RP-110269
0057
-

Small corrections in 36.355
10.1.0

RP-51
RP-110269
0058
3

Further corrections to the OTDOA assistance data
10.1.0
2011-06
RP-52
RP-110830
0060
-

Clarifications to description of OTDOA positioning fields
10.2.0
2011-09
RP-53
RP-111279
0062
1

Various corrections to LPP
10.3.0

RP-53
RP-111279
0064
-

Mandatory support of PRS for OTDOA measurements
10.3.0
2011-12
RP-54
RP-111709
0066
-

Clarification of  packed encoding rules of LPP
10.4.0

RP-54
RP-111709
0068
-

Clarification of first bit in BIT STRING definitions
10.4.0
2012-06
RP-56
RP-120808
0071
-

Usage of additionalInformation IE
10.5.0
2012-09
RP-57
RP-121424
0074
2

Corrections to GNSS Acquisition Assistance Data
10.6.0

RP-57
-
-
-

Upgrade to the Release 11 - no technical change
11.0.0

2012-12
RP-58
RP-121931
0077
-

Correcting the referencing of QoS parameters
11.1.0

RP-58
RP-121931
0080
-

Correction to missing field description in GNSS-AcquisitionAssistance IE
11.1.0
2013-03
RP-59
RP-130237
0083
1

Extending E-UTRA Frequency Band and EARFCN value range
11.2.0

RP-59
RP-130230
0086
-

Correction to PRS Muting Configuration
11.2.0
2013-06
RP-60
RP-130803
0088
-

Correction for ASN.1 errors from CR0083r1
11.3.0

RP-60
RP-130803
0091
-

Correction to integer code phase field description in GNSS Acquisition Assistance
11.3.0

RP-60
RP-130803
0093
-

Correction to serving cell terminology
11.3.0

RP-60
RP-130803
0094
-

Encoding of LPP IEs
11.3.0
2013-09
RP-61
RP-131314
0098
-

Correction on svReqList
11.4.0
2013-12
RP-62
RP-131984
0103
-

Correction to missing capability indication for inter-frequency RSTD measurements
11.5.0

RP-62
RP-131984
0107
1

Correction to Galileo assistance data elements
11.5.0

RP-62
RP-132000
0104
1

Stage 3 CR of TS 36.355 for introducing BDS in LTE
12.0.0

RP-62
RP-131984
0108
-

Correction to Galileo assistance data elements
12.0.0
2014-03
RP-63
RP-140342
0112
1

Clarification to gnss-DayNumber
12.1.0
2014-06
RP-64
RP-140871
0119
-

Signaling of OTDOA Neighbour Cell Information and Measurements
12.2.0
2014-12
RP-66
RP-142114
0122
-

Correction to Galileo Assistance Data
12.3.0

RP-66
RP-142114
0123
-

Addition of an Early Position Fix to LPP
12.3.0

RP-66
RP-142120
0124
-

BDS update to version 2.0
12.3.0
2015-03
RP-67
RP-150369
0126
2

Correction of GLONASS system time
12.4.0

RP-67
RP-150376
0125
1

LPP clean-up
12.4.0
2015-12
RP-70
RP-152055
0134
1

Correction to the definition of Need codes
12.5.0
2015-12
RP-70
RP-152068
0137
3

RAT-Independent positioning enhancements
13.0.0
2016-03
RP-71
RP-160463
0138
1

Correction to GLONASS IOD value range
13.1.0

RP-71
RP-160470
0140
1

r13 Information Element correction
13.1.0

RP-71
RP-160470
0141
-

WLAN AP Identifier correction
13.1.0

RP-71
RP-160470
0142
1

LPP clean-up
13.1.0
2016-09
RP-73
RP-161750
0143
4

Correction of ECID positioning for TDD
13.2.0
2016-12
RP-74
RP-162317
0160
1

Clarification of WLAN RSSI value range
13.3.0
2016-12
RP-74
RP-162326
0155
1

CR for 36.355 Further Indoor positioning enhancements
14.0.0

RP-74
RP-162327
0157
-

Barometric Pressure Uncertainty IEs
14.0.0

RP-74
RP-162326
0161
1

Introduction of Further Indoor Positioning Enhancements
14.0.0
2017-03
RP-75
RP-170636
0162
3
B
Introduction of positioning for further enhanced MTC
14.1.0

RP-75
RP-170642
0163
-
C
Addition of periodical and triggered reporting capabilitiy signalling
14.1.0

RP-75
RP-170642
0165
2
F
Further Indoor positioning enhancements corrections
14.1.0

RP-75
RP-170637
0166
-
B
Introduction of positioning support for NB-IoT
14.1.0
2017-06
RP-76
RP-171224
0169
3
F
Compact Signal Measurement Information for OTDOA
14.2.0

RP-76
RP-171223
0171
1
F
Correction to PRS Subframe Offset
14.2.0

RP-76
RP-171223
0173
1
F
Correction to SFN time stamp in OTDOA Signal Measurement Information
14.2.0

RP-76
RP-171223
0174
1
F
Correction to OTDOA capabilities
14.2.0

RP-76
RP-171224
0175
1
F
Correction to NPRS
14.2.0

RP-76
RP-171225
0176
2
F
LPP clean-up
14.2.0

RP-76
RP-171224
0177
-
F
Corrections to number of NPRS carriers and ECID measurements for NB-IoT
14.2.0

RP-76
RP-171224
0178
1
F
Removal of FFS for retransmission timer in LPP
14.2.0

RP-76
RP-171224
0181
1
F
Signalling optimisation for NB-IoT Enhancements
14.2.0
2017-09
RP-77
RP-171913
0182
2
F
Clarification on definition of PRS Occasion Group
14.3.0

RP-77
RP-171914
0183
1
F
Additional OTDOA Capabilities
14.3.0

RP-77
RP-171911
0184
-
F
Clarification to GNSS-TimeModelList
14.3.0

RP-77
RP-171913
0185
1
F
Minor corrections on TS 36.355 for Rel-14 MTC
14.3.0
2017-12
RP-78
RP-172616
0187
2
F
Correction on PRS hopping configuration
14.4.0
2018-03
RP-79
RP-180446
0189
1
F
Segmentation of LPP Messages
14.5.0
2018-04
RP-79




New version to fix ASN.1 formatting
14.5.1
2018-06
RP-80
RP-181235
0202
2
F
Clarification for NRSRQ reporting with E-CID
14.6.0
2018-06
RP-80
RP-181219
0204
2
B
Introduction of IMU support for OTDOA
15.0.0

RP-80
RP-181219
0205
1
B
Addition of RTK and PPP support
15.0.0

RP-80
RP-181219
0207
1
B
Addition of broadcast of positioning assistance data
15.0.0

RP-80
RP-181215
0209
1
B
Addition of NR Support
15.0.0

RP-80
RP-181252
0210
1
B
Addition of NB-IoT TDD support
15.0.0
2018-09
RP-81
RP-181963
0215
1
A
Support for NPRS enhancements
15.1.0

RP-81
RP-181945
0218
1
F
Corrections to TDD in 36.355
15.1.0

RP-81
RP-181961
0221
3
A
Correction to RSRQ range in 36.355
15.1.0

RP-81
RP-181942
0222
1
F
OTDOA Assistance Data Request for NR
15.1.0

RP-81
RP-181960
0223
-
F
LPP clean-up
15.1.0

RP-81
RP-181952
0224
1
F
GAD shapes for high accuracy positioning
15.1.0

RP-81
RP-181952
0226
1
B
Positioning SIB value tag and expiration time
15.1.0
2018-12
RP-82
RP-182672
0213
3
F
Addition of TDD UL/DL configuration to OTDOA assistance data
15.2.0

RP-82
RP-182681
0228
2
F
Introduction of TDD UL/DL configuration for NB-IoT in 36.355
15.2.0

RP-82
RP-182659
0229
3
F
SFN offset for OTDOA
15.2.0

RP-82
RP-182674
0230
1
F
Alignment of IE/field names between LPP and RRC specifications
15.2.0

RP-82
RP-182672
0232
1
F
Sensor Assistance Data Elements Correction
15.2.0
2019-03
RP-83
RP-190550
0234
3
F
Stage 2 and stage 3 sensor methods description alignment
15.3.0
2019-06
RP-84
RP-191376
0239
1
F
Minor corrections on NR Support
15.4.0

RP-84
RP-191384
0240
4
F
Periodic assistance data transfer with cell ID change procedure
15.4.0
2019-09
RP-85
RP-192196
0243
1
F
Distinguishing Location Source when sensor method is used
15.5.0

