﻿




Contents
Foreword	9
1	Scope	10
2	References	10
3	Definitions and Abbreviations	11
3.1	Definitions	11
3.2	Abbreviations	12
4	Functionality of Protocol	13
4.1	General	13
4.1.1	LPP Configuration	13
4.1.2	LPP Sessions and Transactions	14
4.1.3	LPP Position Methods	14
4.1.4	LPP Messages	14
4.2	Common LPP Session Procedure	15
4.3	LPP Transport	16
4.3.1	Transport Layer Requirements	16
4.3.2	LPP Duplicate Detection	16
4.3.3	LPP Acknowledgement	16
4.3.3.1	General	16
4.3.3.2	Procedure related to Acknowledgement	16
4.3.4	LPP Retransmission	17
4.3.4.1	General	17
4.3.4.2	Procedure related to Retransmission	17
4.3.5	LPP Message Segmentation	18
5	LPP Procedures	19
5.1	Procedures related to capability transfer	19
5.1.1	Capability Transfer procedure	19
5.1.2	Capability Indication procedure	20
5.1.3	Reception of LPP Request Capabilities	20
5.1.4	Transmission of LPP Provide Capabilities	21
5.2	Procedures related to Assistance Data Transfer	21
5.2.1	Assistance Data Transfer procedure	21
5.2.2	Assistance Data Delivery procedure	21
5.2.3	Transmission of LPP Request Assistance Data	22
5.2.4	Reception of LPP Provide Assistance Data	22
5.3	Procedures related to Location Information Transfer	22
5.3.1	Location Information Transfer procedure	22
5.3.2	Location Information Delivery procedure	23
5.3.3	Reception of Request Location Information	24
5.3.4	Transmission of Provide Location Information	24
5.4	Error Handling Procedures	24
5.4.1	General	24
5.4.2	Procedures related to Error Indication	24
5.4.3	LPP Error Detection	25
5.4.4	Reception of an LPP Error Message	26
5.5	Abort Procedure	26
5.5.1	General	26
5.5.2	Procedures related to Abort	26
5.5.3	Reception of an LPP Abort Message	26
6	Information Element Abstract Syntax Definition	27
6.1	General	27
6.2	LPP PDU Structure	28
–	LPP-PDU-Definitions	28
–	LPP-Message	28
–	LPP-MessageBody	29
–	LPP-TransactionID	29
6.3	Message Body IEs	29
–	RequestCapabilities	29
–	ProvideCapabilities	30
–	RequestAssistanceData	30
–	ProvideAssistanceData	31
–	RequestLocationInformation	31
–	ProvideLocationInformation	32
–	Abort	32
–	Error	33
6.4	Common IEs	33
6.4.1	Common Lower-Level IEs	33
–	AccessTypes	33
–	ARFCN-ValueEUTRA	33
–	ARFCN-ValueUTRA	34
–	CarrierFreq-NB	34
–	CellGlobalIdEUTRA-AndUTRA	34
–	CellGlobalIdGERAN	35
–	ECGI	35
–	Ellipsoid-Point	36
–	Ellipsoid-PointWithUncertaintyCircle	36
–	EllipsoidPointWithUncertaintyEllipse	36
–	EllipsoidPointWithAltitude	36
–	EllipsoidPointWithAltitudeAndUncertaintyEllipsoid	37
–	EllipsoidArc	37
–	EPDU-Sequence	37
–	HorizontalVelocity	38
–	HorizontalWithVerticalVelocity	38
–	HorizontalVelocityWithUncertainty	38
–	HorizontalWithVerticalVelocityAndUncertainty	39
–	LocationCoordinateTypes	39
–	Polygon	39
–	PositioningModes	39
–	SegmentationInfo	40
–	VelocityTypes	40
6.4.2	Common Positioning	40
–	CommonIEsRequestCapabilities	40
–	CommonIEsProvideCapabilities	41
–	CommonIEsRequestAssistanceData	41
–	CommonIEsProvideAssistanceData	42
–	CommonIEsRequestLocationInformation	42
–	CommonIEsProvideLocationInformation	46
–	CommonIEsAbort	47
–	CommonIEsError	48
6.5	Positioning Method IEs	48
6.5.1	OTDOA Positioning	48
6.5.1.1	OTDOA Assistance Data	48
–	OTDOA-ProvideAssistanceData	48
6.5.1.2	OTDOA Assistance Data Elements	49
–	OTDOA-ReferenceCellInfo	49
–	PRS-Info	50
–	OTDOA-NeighbourCellInfoList	52
–	OTDOA-ReferenceCellInfoNB	55
– 	PRS-Info-NB	57
–	OTDOA-NeighbourCellInfoListNB	59
6.5.1.3	OTDOA Assistance Data Request	62
–	OTDOA-RequestAssistanceData	62
6.5.1.4	OTDOA Location Information	62
–	OTDOA-ProvideLocationInformation	62
6.5.1.5	OTDOA Location Information Elements	62
–	OTDOA-SignalMeasurementInformation	62
–	OTDOA-SignalMeasurementInformation-NB	65
–	OTDOA-MeasQuality	67
–	AdditionalPath	68
6.5.1.6	OTDOA Location Information Request	69
–	OTDOA-RequestLocationInformation	69
6.5.1.7	OTDOA Capability Information	69
–	OTDOA-ProvideCapabilities	69
6.5.1.8	OTDOA Capability Information Request	71
–	OTDOA-RequestCapabilities	71
6.5.1.9	OTDOA Error Elements	71
–	OTDOA-Error	71
–	OTDOA-LocationServerErrorCauses	72
–	OTDOA-TargetDeviceErrorCauses	72
6.5.2	A-GNSS Positioning	72
6.5.2.1	GNSS Assistance Data	72
–	A-GNSS-ProvideAssistanceData	72
–	GNSS-CommonAssistData	72
–	GNSS-GenericAssistData	73
6.5.2.2	GNSS Assistance Data Elements	73
–	GNSS-ReferenceTime	73
–	GNSS-SystemTime	75
–	GPS-TOW-Assist	75
–	NetworkTime	76
–	GNSS-ReferenceLocation	78
–	GNSS-IonosphericModel	78
–	KlobucharModelParameter	78
–	NeQuickModelParameter	79
–	GNSS-EarthOrientationParameters	79
–	GNSS-TimeModelList	80
–	GNSS-DifferentialCorrections	82
–	GNSS-NavigationModel	84
–	StandardClockModelList	86
–	NAV-ClockModel	87
–	CNAV-ClockModel	87
–	GLONASS-ClockModel	88
–	SBAS-ClockModel	89
–	BDS-ClockModel	89
–	NavModelKeplerianSet	90
–	NavModelNAV-KeplerianSet	91
–	NavModelCNAV-KeplerianSet	92
–	NavModel-GLONASS-ECEF	94
–	NavModel-SBAS-ECEF	95
–	NavModel-BDS-KeplerianSet	96
–	GNSS-RealTimeIntegrity	97
–	GNSS-DataBitAssistance	98
–	GNSS-AcquisitionAssistance	99
–	GNSS-Almanac	102
–	AlmanacKeplerianSet	103
–	AlmanacNAV-KeplerianSet	104
–	AlmanacReducedKeplerianSet	105
–	AlmanacMidiAlmanacSet	106
–	AlmanacGLONASS-AlmanacSet	107
–	AlmanacECEF-SBAS-AlmanacSet	108
–	AlmanacBDS-AlmanacSet	109
–	GNSS-UTC-Model	110
–	UTC-ModelSet1	110
–	UTC-ModelSet2	111
–	UTC-ModelSet3	112
–	UTC-ModelSet4	112
–	UTC-ModelSet5	113
–	GNSS-AuxiliaryInformation	114
–	BDS-DifferentialCorrections	115
–	BDS-GridModelParameter	116
6.5.2.3	GNSS Assistance Data Request	116
–	A-GNSS-RequestAssistanceData	116
–	GNSS-CommonAssistDataReq	117
–	GNSS-GenericAssistDataReq	117
6.5.2.4	GNSS Assistance Data Request Elements	118
–	GNSS-ReferenceTimeReq	118
–	GNSS-ReferenceLocationReq	118
–	GNSS-IonosphericModelReq	119
–	GNSS-EarthOrientationParametersReq	119
–	GNSS-TimeModelListReq	119
–	GNSS-DifferentialCorrectionsReq	120
–	GNSS-NavigationModelReq	120
–	GNSS-RealTimeIntegrityReq	122
–	GNSS-DataBitAssistanceReq	122
–	GNSS-AcquisitionAssistanceReq	123
–	GNSS-AlmanacReq	123
–	GNSS-UTC-ModelReq	123
–	GNSS-AuxiliaryInformationReq	124
–	BDS-DifferentialCorrectionsReq	124
–	BDS-GridModelReq	124
6.5.2.5	GNSS Location Information	125
–	A-GNSS-ProvideLocationInformation	125
6.5.2.6	GNSS Location Information Elements	125
–	GNSS-SignalMeasurementInformation	125
–	MeasurementReferenceTime	125
–	GNSS-MeasurementList	127
–	GNSS-LocationInformation	130
6.5.2.7	GNSS Location Information Request	131
–	A-GNSS-RequestLocationInformation	131
6.5.2.8	GNSS Location Information Request Elements	131
–	GNSS-PositioningInstructions	131
6.5.2.9	GNSS Capability Information	132
–	A-GNSS-ProvideCapabilities	132
6.5.2.10	GNSS Capability Information Elements	133
–	GNSS-CommonAssistanceDataSupport	133
–	GNSS-ReferenceTimeSupport	134
–	GNSS-ReferenceLocationSupport	134
–	GNSS-IonosphericModelSupport	134
–	GNSS-EarthOrientationParametersSupport	135
–	GNSS-GenericAssistanceDataSupport	135
–	GNSS-TimeModelListSupport	136
–	GNSS-DifferentialCorrectionSupport	136
–	GNSS-NavigationModelSupport	136
–	GNSS-RealTimeIntegritySupport	137
–	GNSS-DataBitAssistanceSupport	137
–	GNSS-AcquisitionAssistanceSupport	137
–	GNSS-AlmanacSupport	138
–	GNSS-UTC-ModelSupport	138
–	GNSS-AuxiliaryInformationSupport	139
–	BDS-DifferentialCorrectionsSupport	139
–	BDS-GridModelSupport	139
6.5.2.11	GNSS Capability Information Request	139
–	A-GNSS-RequestCapabilities	139
6.5.2.12	GNSS Error Elements	140
–	A-GNSS-Error	140
–	GNSS-LocationServerErrorCauses	140
–	GNSS-TargetDeviceErrorCauses	140
6.5.2.13	Common GNSS Information Elements	141
–	GNSS-ID	141
–	GNSS-ID-Bitmap	141
–	GNSS-SignalID	141
–	GNSS-SignalIDs	142
–	SBAS-ID	143
–	SBAS-IDs	143
–	SV-ID	143
6.5.3	Enhanced Cell ID Positioning	144
6.5.3.1	E‑CID Location Information	144
–	ECID-ProvideLocationInformation	144
6.5.3.2	E‑CID Location Information Elements	144
–	ECID-SignalMeasurementInformation	144
6.5.3.3	E‑CID Location Information Request	146
–	ECID-RequestLocationInformation	146
6.5.3.4	E‑CID Capability Information	146
–	ECID-ProvideCapabilities	146
6.5.3.5	E‑CID Capability Information Request	147
–	ECID-RequestCapabilities	147
6.5.3.6	E‑CID Error Elements	147
–	ECID-Error	147
–	ECID-LocationServerErrorCauses	147
–	ECID-TargetDeviceErrorCauses	148
6.5.4	Terrestrial Beacon System Positioning	148
6.5.4.1	TBS Location Information	148
–	TBS-ProvideLocationInformation	148
6.5.4.2	TBS Location Information Elements	148
–	TBS-MeasurementInformation	148
–	MBS-BeaconMeasList	149
6.5.4.3	TBS Location Information Request	150
–	TBS-RequestLocationInformation	150
6.5.4.4	TBS Capability Information	150
–	TBS-ProvideCapabilities	150
-	MBS-AssistanceDataSupportList	151
6.5.4.5	TBS Capability Information Request	151
–	TBS-RequestCapabilities	151
6.5.4.6	TBS Error Elements	151
–	TBS-Error	151
–	TBS-LocationServerErrorCauses	152
–	TBS-TargetDeviceErrorCauses	152
6.5.4.7	TBS Assistance Data	152
–	TBS-ProvideAssistanceData	152
6.5.4.8	TBS Assistance Data Elements	153
–	TBS-AssistanceDataList	153
–	MBS-AlmanacAssistance	153
–	MBS-AcquisitionAssistance	153
6.5.4.9	TBS Assistance Data Request	154
–	TBS-RequestAssistanceData	154
6.5.5	Sensor based Positioning	154
6.5.5.1	Sensor Location Information	154
–	Sensor-ProvideLocationInformation	154
6.5.5.2	Sensor Location Information Elements	155
–	Sensor-MeasurementInformation	155
6.5.5.3	Sensor Location Information Request	155
–	Sensor-RequestLocationInformation	155
6.5.5.4	Sensor Capability Information	156
–	Sensor-ProvideCapabilities	156
6.5.5.5	Sensor Capability Information Request	156
–	Sensor-RequestCapabilities	156
6.5.5.6	Sensor Error Elements	156
–	Sensor-Error	156
–	Sensor-LocationServerErrorCauses	157
–	Sensor-TargetDeviceErrorCauses	157
6.5.5.7	Sensor Assistance Data	157
–	Sensor-ProvideAssistanceData	157
6.5.5.8	Sensor Assistance Data Elements	158
–	Sensor-AssistanceDataList	158
6.5.5.9	Sensor Assistance Data Request	158
–	Sensor-RequestAssistanceData	158
6.5.6	WLAN-based Positioning	158
6.5.6.1	WLAN Location Information	158
–	WLAN-ProvideLocationInformation	158
6.5.6.2	WLAN Location Information Elements	159
–	WLAN-MeasurementInformation	159
6.5.6.3	WLAN Location Information Request	160
–	WLAN-RequestLocationInformation	160
6.5.6.4	WLAN Capability Information	161
–	WLAN-ProvideCapabilities	161
6.5.6.5	WLAN Capability Information Request	161
–	WLAN-RequestCapabilities	161
6.5.6.6	WLAN Error Elements	162
–	WLAN-Error	162
–	WLAN-LocationServerErrorCauses	162
–	WLAN-TargetDeviceErrorCauses	162
6.5.7	Bluetooth-based Positioning	166
6.5.7.1	Bluetooth Location Information	166
–	BT-ProvideLocationInformation	166
6.5.7.2	Bluetooth Location Information Elements	166
–	BT-MeasurementInformation	166
6.5.7.3	Bluetooth Location Information Request	167
–	BT-RequestLocationInformation	167
6.5.7.4	Bluetooth Capability Information	167
–	BT-ProvideCapabilities	167
6.5.7.5	Bluetooth Capability Information Request	168
–	BT-RequestCapabilities	168
6.5.7.6	BT Error Elements	168
–	BT-Error	168
–	BT-LocationServerErrorCauses	168
–	BT-TargetDeviceErrorCauses	169
–	End of LPP-PDU-Definitions	169
Annex A (informative):	Change History	170


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.
3	Definitions and Abbreviations
3.1	Definitions
For the purposes of the present document, the terms and definitions given in [1], [2] and [3] apply. Other definitions are provided below.
Anchor carrier: In NB-IoT, a carrier where the UE assumes that NPSS/NSSS/NPBCH/SIB-NB 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
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
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
ICD	Interface Control Document
IOD	Issue of Data
IS	Interface Specification
LLA	Latitude Longitude Altitude
LPP	LTE Positioning Protocol
LPPa	LTE Positioning Protocol Annex
LSB	Least Significant Bit
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
NICT	National Institute of Information and Communications Technology
NI-LR	Network Induced Location Request
NPRS	Narrowband Positioning Reference Signals
NRSRP	Narrowband Reference Signal Received Power
NRSRQ	Narrowband Reference Signal Received Quality
NTSC	National Time Service Center of Chinese Academy of Sciences
OTDOA	Observed Time Difference Of Arrival
PDU	Protocol Data Unit
PRB	Physical Resource Block
PRC	Pseudo‑Range Correction
PRS	Positioning Reference Signals
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
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
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 [2] and [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 [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, Barometric 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 section 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 subclauses 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 sub-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 sub-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 section 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 3GPP 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 section 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 3GPP 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.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.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 section 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 3GPP 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 sub-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 sub-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 section uses the same format and coding conventions as described in Annex A of [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) } (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 [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-ValueUTRA
The IE ARFCN-ValueUTRA is used to indicate the ARFCN of the UTRA carrier frequency, as defined in [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 [12].
cellIdentity
This field defines the identity of the cell within the context of the PLMN as defined in [12] and [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 [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 3GPP 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 3GPP 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 3GPP 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 3GPP 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 3GPP 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 3GPP 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]

–	HorizontalVelocity
The IE HorizontalVelocity is used to describe a velocity shape as defined in 3GPP 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 3GPP 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 3GPP 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 3GPP 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 3GPP TS 23.032 [15].
-- ASN1START

LocationCoordinateTypes ::= SEQUENCE {
	ellipsoidPoint											BOOLEAN,
	ellipsoidPointWithUncertaintyCircle					BOOLEAN,
	ellipsoidPointWithUncertaintyEllipse					BOOLEAN,
	polygon													BOOLEAN,
	ellipsoidPointWithAltitude								BOOLEAN,
	ellipsoidPointWithAltitudeAndUncertaintyEllipsoid		BOOLEAN,
	ellipsoidArc											BOOLEAN,
	...
}

-- ASN1STOP

–	Polygon
The IE Polygon is used to describe a geographic shape as defined in 3GPP 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 sub‑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 3GPP 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 sub-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
	]]
}

-- 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.

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 sub-clause 4.3.5.

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

CommonIEsProvideAssistanceData ::= SEQUENCE {
	...,
	[[
		segmentationInfo-r14		SegmentationInfo-r14		OPTIONAL	-- Need ON
	]]
}

-- ASN1STOP

CommonIEsRequestAssistanceData  field descriptions
segmentationInfo
This field indicates whether this ProvideAssistanceData message is one of many segments, as specified in sub-clause 4.3.5.

–	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
	]]
}	

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

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

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

ResponseTimeNB-r14 ::= SEQUENCE {
	timeNB-r14							INTEGER (1..512),
	responseTimeEarlyFixNB-r14			INTEGER (1..512)		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 3GPP TS 23.032 [15] and 'confidence' corresponds to confidence as defined in 3GPP 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 3GPP TS 23.032 [15] and 'confidence' corresponds to confidence as defined in 3GPP TS 23.032 [15].
-	responseTime
-	time indicates the maximum response time as measured between receipt of the RequestLocationInformation and transmission of a ProvideLocationInformation. This is given as an integer number of seconds between 1 and 128. 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. This is given as an integer number of seconds between 1 and 128. 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.
-	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. This is given as an integer number of seconds between 1 and 512.
-	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. This is given as an integer number of seconds between 1 and 512. 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.
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.
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 sub‑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,
	...
}

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) } (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 3GPP TS 23.032 [15]. Coding of the values of the various fields internal to each geographic shape follow the rules in [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 3GPP TS 23.032 [15]. Coding of the values of the various fields internal to each velocity shape follow the rules in [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: In this version of the specification, the entry 'tbs' is used only for TBS positioning based on MBS signals.
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 sub‑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,
		...
	}
}

-- 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.

–	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 subclause defines the information elements for downlink OTDOA positioning, which includes TBS positioning based on PRS signals [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 Section 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 section 6.5.1.2). "RSTD reference cell" applies only in Section 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 [16].
Throughout Section 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 section 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 section 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 [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	
	]]
}

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 [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 [16]; 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 [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 [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 [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.

–	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 [16].
numDL-Frames
This field specifies the number of consecutive downlink subframes NPRS with positioning reference signals, as defined in [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 [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 [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 [16].
add-numDL-Frames
This field specifies the number of consecutive downlink subframes NPRS with positioning reference signals, as defined in [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 [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.

–	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
	]]
}

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 [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 [12].
cellGlobalId
This field specifies the ECGI, the globally unique identity of a cell in E-UTRA, of the neighbour cell, as defined in [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) 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 [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 [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.

NOTE:	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.
–	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
	]]
}

-- 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 [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 [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 [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 [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 [16].
nprsInfo
This field specifies the Type 1 NPRS [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 [16] configuration of the NB-IoT assistance data reference cell. 

– 	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 [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, ... },
		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, ...},
		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
		...
	}																OPTIONAL,		-- Cond PartB
	...
}

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 [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 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.
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.

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 [16]. 
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 [16]. Enumerated values correspond to 160ms, 320ms, 640ms, and 1280ms. 
nprs-startSF
This field specifies the subframe offset  [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 [16]. Enumerated values correspond to 10, 20, 40, 80, 160, 320, 640, and 1280 subframes.

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.

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].

–	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
	]]
}

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 [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 [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 [16].
nprsInfo
This field specifies the Type 1 NPRS [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 [16].
nprsInfo-Type2
This field specifies the Type 2 NPRS [16] configuration of the NB-IoT neighbour cell. 

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
	]]
}

-- ASN1STOP

OTDOA-RequestAssistanceData field descriptions
physCellId
This field specifies the 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.

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 sub-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
	]]
}

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
	]]
}

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

maxPaths-r14    INTEGER ::= 2

-- 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
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 [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 [17]. Mapping of the measured quantity is defined as in [18] subclause 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 [18] subclause 9.1.10.4. Mapping of the measured quantity is defined as in [18] subclause 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-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 sub-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 [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 [17]. Mapping of the measured quantity is defined as in [18] subclause 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 [18] subclause 9.1.10.4. Mapping of the measured quantity is defined as in [18] subclause 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 [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
	]]
}

-- 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.

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) } (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
}

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.
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 subclause 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 [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 [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 3GPP 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. 

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
	...
}

-- ASN1STOP

–	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
	...
}

-- ASN1STOP

–	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
	]]
}

-- 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.

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,
							...
							}
				},
	...
}

-- 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.
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 [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 [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 [13].
cellParameters
This field specifies the physical cell identity of the reference cell (UTRA) for the GNSS‑network time relation, as defined in [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 [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 [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 [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 [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 [12].
nbCarrierFreq
This field specifies the carrier frequency of the NB-IoT reference cell for which the GNSS‑network time relation is provided.

–	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] section 5.1.6.
ai1
Effective Ionisation Level 2nd order parameter.
Scale factor 2-8 Solar Flux Units/degree, [8] section 5.1.6.
ai2
Effective Ionisation Level 3rd order parameter.
Scale factor 2-15 Solar Flux Units/degree2, [8] section 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], section 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-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, section 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, section 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] section 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] section 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] section 5.2. In case of QZSS QZS-L1C, it contains the encoded and interleaved modulation symbols as defined in [7] section 5.3. In case of QZSS QZS-L2C, it contains the encoded modulation symbols as defined in [7] section 5.5. In case of QZSS QZS-L5, it contains the encoded modulation symbols as defined in [7] section 5.6.

In case of GLONASS, it contains the 100 sps differentially Manchester encoded modulation symbols as defined in [9] section 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, section 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, section 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, section 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, section 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, 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, 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, 5.3.3.8].
dt
This field indicates dT as defined in [23, 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, 5.3.3.8.2].

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
	...
}

-- 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.

–	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
	...
}

-- 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.

–	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
	]]
}

-- 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'.

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-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

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,
				...
				}
		}		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, as defined in [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 [12] for E-UTRA and [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 [12].
mode
This field identifies the reference cell for the GNSS-network time relation, as defined in [13].
referenceSystemFrameNumber
This field specifies the system frame number in UTRA, as defined in [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 [14].
referenceFN, referenceFNMSB
These fields specify the frame number in GERAN which the GNSS time time stamps, as defined in [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 [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 [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 [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 [12].
hyperSFN
This field specifies the hyper-SFN in NB-IoT which the GNSS time time stamps, as defined in [12].

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,
	...
}

-- 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
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.
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 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).

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

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,
	...
}

-- ASN1STOP

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.

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
	]]
}

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,
	...
}

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.

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
	...
}

-- 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.

–	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-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
	]]
}

-- 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'.

–	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

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,
					...
					},
	...
}

-- ASN1STOP

–	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-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-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),
	...
}

-- ASN1STOP

GNSS-SignalID field descriptions
gnss-SignalID
This field specifies a particular GNSS signal. The interpretation of gnss-SignalID depends on the GNSS‑ID and is as shown in the table System to Value & Explanation relation below.

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

1
GPS L1C

2
GPS L2C

3
GPS L5

4-7
Reserved
SBAS
0
L1

1-7
Reserved
QZSS
0
QZS-L1

1
QZS-L1C

2
QZS-L2C

3
QZS-L5

4-7
Reserved
GLONASS
0
GLONASS G1

1
GLONASS G2

2
GLONASS G3

3-7
Reserved
Galileo
0
Galileo E1

1
Galileo E5A

2
Galileo E5B

3
Galileo E6

4
Galileo E5A + E5B

5-7
Reserved
BDS
0
B1I

1-7
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)),
	...
}

-- ASN1STOP

GNSS-SignalIDs field descriptions
gnss-SignalIDs
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 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




SBAS
L1







QZSS
QZS-L1
QZS-L1C
QZS-L2C
QZS-L5




GLONASS
G1
G2
G3





Galileo
E1
E5a
E5b
E6
E5a+E5b



BDS
B1I








–	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, when the target device reports measurements for both primary cell and neighbour cells. This field shall be omitted when the target device reports measurements for the primary cell only, in which case the measurements the primary cell is reported in the measuredResultsList.
measuredResultsList
This list contains the E‑CID measurements for up to 32 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 [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 [12], [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 [12], [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 [17]. It is provided only for measurements on the UE's primary cell.
Measurement report mapping is according to 3GPP TS 36.133 [18]. 
nrsrp-Result
This field specifies the narrowband reference signal received power (NRSRP) measurement, as defined in [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 [17].
Measurement report mapping to the value defined in 3GPP 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 [16], [17] and uses the UE Rx-Tx time difference measurement report mapping for TDD as specified in 3GPP 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.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,
	...
}

-- 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).

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
	]]
}

-- 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.

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-AssistanceDataSupportList-r14 ::= SEQUENCE {
	...

}

-- 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.
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.

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
	...
}

-- 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.

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 section 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:	3-bits indicating the map datum used for the coordinates. Defined codes are:
1: World Geodetic System 1984 (WGS-84)
2: North American Datum 1983 (NAD-83) with North American Vertical Datum 1988 (NAVD-88)
3: North American Datum 1983 (NAD-83) with Mean Lower Low Water (MLLW) vertical datum.

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


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-09
RP-81
RP-181963
0214
1
F
Support for NPRS enhancements
14.7.0

RP-81
RP-181961
0220
3
F
Correction to RSRQ range in 36.355
14.7.0

