3GPP TS 36.355 V13.1.0 (2016-03)
Technical Specification
3rd Generation Partnership Project;
Technical Specification Group Radio Access Network;
Evolved Universal Terrestrial Radio Access (E-UTRA);
LTE Positioning Protocol (LPP)
(Release 13)


	

The present document has been developed within the 3rd Generation Partnership Project (3GPP TM) and may be further elaborated for the purposes of 3GPP.
The present document has not been subject to any approval process by the 3GPP Organizational Partners and shall not be implemented.
This Specification is provided for future development work within 3GPP only. The Organizational Partners accept no liability for any use of this Specification.
Specifications and reports for implementation of the 3GPP TM system should be obtained via the 3GPP Organizational Partners' Publications Offices.




Keywords
3GPP, LTE, LCS

3GPP
Postal address

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

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

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

UMTS™ is a Trade Mark of ETSI registered for the benefit of its members
3GPP™ is a Trade Mark of ETSI registered for the benefit of its Members and of the 3GPP Organizational Partners
LTE™ is a Trade Mark of ETSI currently being registered for the benefit of its Members and of the 3GPP Organizational Partners
GSM® and the GSM logo are registered and owned by the GSM Association
Bluetooth® is a Trade Mark of the Bluetooth SIG registered for the benefit of its members

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


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 nonspecific.
• 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".

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.
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.
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).
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 cells. If a signal from cell 1 is received at the moment t1, and a signal from cell 2 is received at the moment t2, the OTDOA is t2 –  t1. 
3.2	Abbreviations
For the purposes of the present document, the following abbreviations apply. 
ADR	Accumulated Delta-Range
AGNSS	AssistedGNSS
AP	Access Point
ARFCN	Absolute Radio Frequency Channel Number
BDS	BeiDou Navigation Satellite System 
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
ECID	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
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
NICT	National Institute of Information and Communications Technology
NI-LR	Network Induced Location Request
NTSC	National Time Service Center of Chinese Academy of Sciences
OTDOA	Observed Time Difference Of Arrival
PDU	Protocol Data Unit
PRC	PseudoRange 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	RangeRate Correction 	
Radio Resource Control
RSRP	Reference Signal Received Power
RSRQ	Reference Signal Received Quality
RSTD	Reference Signal Time Difference
RU	Russia
SBAS	Space Based Augmentation System
SET	SUPL Enabled Terminal
SFN	System Frame Number
SLP	SUPL Location Platform
SUPL	Secure User Plane Location
SV	Space Vehicle
TBS	Terrestrial Beacon System
TLM	Telemetry
TOD	Time Of Day
TOW	Time Of Week
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
WGS84	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]).

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.
Editor’s Note: Value ranges may need confirmation with RAN4.
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.
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.
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>	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>	discard the message and stop the error detection procedure;
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).
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

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

–	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

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

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

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

-- 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)	 } (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 onevalue at the bit position means the particular access type is addressed; a zerovalue 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)

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

–	CellGlobalIdEUTRA-AndUTRA
The IE CellGlobalIdEUTRA-AndUTRA specifies the global Cell Identifier for EUTRA or UTRA, the globally unique identity of a cell in EUTRA 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].
-- 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 onevalue at the bit position means the particular positioning mode is addressed; a zerovalue means not addressed.

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

-- ASN1STOP

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

CommonIEsProvideCapabilities ::= SEQUENCE {
	...
}

-- ASN1STOP

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

CommonIEsRequestAssistanceData ::= SEQUENCE {
	primaryCellID		ECGI		OPTIONAL,	-- Cond EUTRA
	...
}

-- ASN1STOP

Conditional presence
Explanation
EUTRA
The field is mandatory present for E-UTRA access. The field shall be omitted for non-EUTRA user plane support.

CommonIEsRequestAssistanceData  field descriptions
primaryCellID
This parameter identifies the current primary cell for the target device. 

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

CommonIEsProvideAssistanceData ::= SEQUENCE {
	...
}

-- ASN1STOP

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

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

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

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

-- 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 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 should 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).
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 which shall always be fulfilled – even if that means not fulfilling other QoS requirements.
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.

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

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

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). 
locationSource
This field provides the source positioning technology for the location estimate.
locationTimestamp
This field provides the UTC time when the location estimate is valid and should take the form of YYMMDDhhmmssZ.

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

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

6.5	Positioning Method IEs
6.5.1	OTDOA Positioning
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 UEassisted 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 (see section 6.5.1.2). "RSTD reference cell" applies only in Section 6.5.1.5.
NOTE:	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.

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

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

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

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 PRS configuration 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, ...},
	...,
	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)),
		...
	}														OPTIONAL				-- Need OP
}

-- ASN1STOP

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 subframes.
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 positioning occasions [18], can be 2, 4, 8, or 16 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 the corresponding PRS positioning occasion. A PRS positioning occasion comprises of NPRS downlink positioning subframes as defined in [16]. The first bit of the PRS muting sequence corresponds to the first PRS positioning occasion 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 16-bit muting pattern (po16-r9) and PRS periodicity T_PRS of 1280 subframes for the same cell, the UE shall assume an 8-bit muting pattern (po8-r9) based on the first half of the 16-bit muting pattern.

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

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

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 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 in the assistance data reference cell on the reference carrier frequency layer and the first PRS subframe in the closest subsequent PRS positioning occasion 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 apriori 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 positioning occasion of the neighbour cell is received within the search window of size [f expectedRSTD-Uncertainty 33Ts,  expectedRSTD-Uncertainty,33Ts] centered at 
TREF + 1 millisecond1N + (expectedRSTDe8192)  33Ts, where TREF is the reception time of the beginning of the PRS positioning occasion 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 apriori 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 33Ts,  expectedRSTD-Uncertainty,33Ts] centered at Tx + (expectedRSTDe8192)  33Ts,

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

-- ASN1STOP

OTDOA-RequestAssistanceData  field descriptions
physCellId 
This field specifies the physical cell identity of the current primary cell of the target device.

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

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

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

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

OTDOA-SignalMeasurementInformation field descriptions
systemFrameNumber
This field specifies the SFN of the RSTD reference cell containing the starting subframe of the PRS positioning occasion if PRS are available on the RSTD reference cell, or subframe of the CRS for RSTD measurements if PRS are not available on the RSTD reference cell during which the most recent neighbour cell RSTD measurement was performed.
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.
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.

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

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

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

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

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 onevalue at the bit position means the particular OTDOA mode is supported; a zerovalue 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.
SupportedBandEUTRA
This field specifies the frequency bands for which the target device supports RSTD measurements. One entry corresponding to each supported EUTRA 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 OTDOANeighbourCellInfoList in OTDOA-ProvideAssistanceData without any restriction for the earfcn in each OTDOA-NeighbourCellInfoElement as specified in subclause 6.5.1.2.

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 UEbased and UEassisted AGNSS. 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 GNSSID and (if applicable) by the IE SBASID. 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
GNSSIDSBAS
The field is mandatory present if the GNSSID = sbas; otherwise it is not present.
GNSSIDBDS
The field may be present if the GNSSID = 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 1milliseconds 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
							...
							},
				...
				},
	...
}

-- 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.
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 GNSSnetwork 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 GNSSnetwork time relation, as defined in [12].
earfcn
This field specifies E-ARFCN of the reference cell for the GNSSnetwork 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 GNSSnetwork time relation, as defined in [13].
cellParameters 
This field specifies the physical cell identity of the reference cell (UTRA) for the GNSSnetwork 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 GNSSnetwork time relation, as defined in [13].
uarfcn
This field specifies ARFCN of the reference cell for the GNSSnetwork time relation (UTRA).
bcchCarrier
This field specifies the absolute GSM RF channel number of the BCCH of the reference base station (GERAN) for the GNSSnetwork time relation, as defined in [14].
bsic 
This field specifies the Base Station Identity Code of the reference base station (GERAN) for the GNSSnetwork 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 GNSSnetwork time relation.

–	GNSS-ReferenceLocation
The IE GNSS-ReferenceLocation is used by the location server to provide the target device with apriori knowledge of its location in order to improve GNSS receiver performance. The IE GNSS-ReferenceLocation is provided in WGS84 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 singlefrequency 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 T0 parameter of the Klobuchar model, as specified in [4], [23].
Scale factor 2-30 seconds.
alpha1
This field specifies the T1 parameter of the Klobuchar model, as specified in [4], [23].
Scale factor 2-27 seconds/semi-circle.
alpha2
This field specifies the T2 parameter of the Klobuchar model, as specified in [4], [23].
Scale factor 2-24 seconds/semi-circle2.
alpha3
This field specifies the T3 parameter of the Klobuchar model, as specified in [4], [23].
Scale factor 2-24 seconds/semi-circle3.
beta0
This field specifies the T0 parameter of the Klobuchar model, as specified in [4], [23].
Scale factor 211 seconds.
beta1
This field specifies the T1 parameter of the Klobuchar model, as specified in [4], [23].
Scale factor 214 seconds/semi-circle.
beta2
This field specifies the T2 parameter of the Klobuchar model, as specified in [4], [23].
Scale factor 216 seconds/semi-circle2.
beta3
This field specifies the T3 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 GNSSGNSS system time offset between the GNSS system time indicated by IE GNSSID 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. 
-- 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 GNSSID 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. 
weekNumber 
This field specifies the reference week of the GNSS-TimeModelElement given in GNSS specific system time. 
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

–	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 1second.
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-t) 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 GNSSID 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-T) 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 U 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 SVID.
svHealth 
This field specifies the satellite’s current health. The health values are GNSS system specific. The interpretation of svHealth depends on the GNSSID 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 GNSSID 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 GNSSID 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 GNSSID indicates ‘gps’, and GNSS Orbit Model-2 is included, this interpretation of svHealth applies.
Note 2: 	If GNSSID 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 SVID, the corresponding health bit shall be set to ‘1’ (i.e., signal can not be used).
Note 3: 	svHealth in case of GNSSID indicates ‘sbas’ includes the 5 LSBs of the Health included in GEO Almanac Message Parameters (Type 17) [10].
Note 4: 	If GNSSID indicates ‘qzss’, and GNSS Orbit Model-2 is included, this interpretation of svHealth applies.
Note 5: 	If GNSSID 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 Pn(tb), satellite clock offset (seconds) [9].
Scale factor 2-30 seconds.
gloGamma
Parameter Pn(tb), relative frequency offset from nominal value (dimensionless) [9].
Scale factor 2-40.
gloDeltaTau
Parameter PPn , 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 P, argument of perigee (semi-circles) [8].
Scale factor 2-31 semi-circles.
keplerDeltaN
Parameter Pn, 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 P, argument of perigee (semi-circles) [4,7].
Scale factor 2-31 semi-circles.
navDeltaN
Parameter Pn, 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 a0, 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 PA, 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 Pn0, 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 Pn, argument of perigee (semi-circles) [4,5,6,7].
Scale factor 2-32 semi-circles.
cnavOMEGA0
Parameter P0-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 Model5 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 , RateofChange, (meters/sec) [10].
Scale factor 0.000625 meters/second.
sbasYgDot
Parameter YG , RateofChange, (meters/sec) [10]
Scale factor 0.000625 meters/second.
sbasZgDot
Parameter ZG , RateofChange, (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 P, 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 P0, 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 realtime. 
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 SVID 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 onevalue at a bit position means the particular GNSS signal type of the SV is unhealthy; a zerovalue 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 1millisecond 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 SVID 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 SVID 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 [DopplerTDoppler Uncertainty] to [DopplerDDoppler 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 milliseconds, 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 apriori 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 PhaseoCode Phase Search Window] to [Code PhaseCCode Phase Search Window] given in units of milliseconds.
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 [DopplerTDoppler Uncertainty] to [DopplerDDoppler 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 GNSSID. 
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 Pi, 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 P(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 P, 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 Pi, 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 P0, longitude of ascending node of orbit plane at weekly epoch, semi-circles [4,7].
Scale factor 2-23 semi-circles.
navAlmOmega
Parameter P, 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 PA, meters [4,5,6,7].
Scale factor 2+9 meters.
redAlmOmega0
Parameter P0, semi-circles [4,5,6,7].
Scale factor 2-6 semi-circles.
redAlmPhi0
Parameter P0, 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 Pi, 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 P0, semi-circles [4,5,6,7].
Scale factor 2-15 semi-circles.
midiAlmOmega
Parameter P, 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 PnA, semi-circles [9].
Scale factor 2-20 semi-circles.
gloAlmtlambdaA
Parameter ttnA, seconds [9].
Scale factor 2-5 seconds.
gloAlmDeltaIa
Parameter PinA, semi-circles [9].
Scale factor 2-20 semi-circles.
gloAlmDeltaTA
Parameter PTnA, sec/orbit period [9].
Scale factor 2-9 seconds/orbit period.
gloAlmDeltaTdotA
Parameter PT_DOTnA, sec/orbit period2 [9].
Scale factor 2-14 seconds/orbit period2.
gloAlmEpsilonA
Parameter PnA, dimensionless [9].
Scale factor 2-20.
gloAlmOmegaA
Parameter PnA, semi-circles [9].
Scale factor 2-15 semi-circles.
gloAlmTauA
Parameter PnA, 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 P, 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 P0, 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 Pi, 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 PtLS, 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 PtLSF, 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 PtLS, 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 PtLSF, 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, callendar day number within four-year period beginning since the leap year (days) [9].
Scale factor 1 day.
tauC
Parameter Pc, GLONASS time scale correction to UTC(SU) (seconds) [9].
Scale factor 2-31 seconds.
b1
Parameter B1, coefficient to determine PUT1 (seconds) [9].
Scale factor 2-10 seconds.
b2
Parameter B2, coefficient to determine PUT1 (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 PtLS, 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 PtLSF, 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 SBASID 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 PtLS, 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 PtLSF, 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 GNSSID. 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 1second.
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 (lt). 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 tt 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 1second.
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 GNSSID and (if applicable) by the IE SBASID. 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
GNSSIDSBAS
The field is mandatory present if the GNSSID = 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 onevalue at a bit position means DGNSS corrections for the specific signal are requested; a zerovalue 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-millisecond 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 onevalue at a bit position means GNSS-DataBitAssistance for the specific signal is requested; a zerovalue 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 onevalue at a bit position means BDS differential corrections for the specific signal are requested; a zerovalue 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., pseudoranges, 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 GNSSnetwork 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 UEassisted 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,
				...
				},
		...
		}		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.

Value of K to Value of uncertainty relation
Value of K
Value of uncertainty
0
0 microseconds
1
0.07 microoseconds
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 carriertonoise 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 dBHz, in the range from 0 to 63 dBHz.
Scale factor 1 dBHz.
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 toPolarity 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 milliseconds, in the range from 0 to (1-2-21) milliseconds.
integerCodePhase
This field indicates the integer millisecond 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 milliseconds.
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 toPolarity 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 onevalue at the bit position means the particular method has been used; a zerovalue 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 onevalue at the bit position means the particular GNSS is allowed; a zerovalue 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 it’s 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,
	...
}

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
   GNSSIDSBAS
The field is mandatory present if the GNSSID = 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 onevalue at the bit position means the particular SBAS is supported; a zerovalue 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 onevalue at the bit position means the particular GNSS mode is supported; a zerovalue 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 onevalue at the bit position means the particular GNSS signal type is supported; a zerovalue means not supported.
fta-MeasSupport
This field specifies that the target device is capable of performing fine time assistance measurements (i.e., GNSScellular 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 onevalue at the bit position means FTA measurements for the specific cellular network time  is supported; a zerovalue 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 onevalue at the bit position means FTA measurements for the GNSS mode is supported; a zerovalue 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.

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 onevalue at the bit position means the particular GNSS system time is supported; a zerovalue means not supported.
fta-Support
This field specifies that the target device supports fine time assistance (i.e., GNSScellular time association) in GNSS-ReferenceTime IE. This is represented by a bit string in AccessTypes, with a onevalue at the bit position means FTA for the specific cellular network time is supported; a zerovalue 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 ionsospheric model(s) supported by the target device. This is represented by a bit string, with a onevalue at the bit position means the particular ionospheric model is supported; a zerovalue 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 GNSSIDSBAS
	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
GNSSIDSBAS
The field is mandatory present if the GNSSID = 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 onevalue at the bit position means differential corrections for the particular GNSS signal type is supported; a zerovalue 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 GNSSID. This is represented by a bit string, with a onevalue at the bit position means the particular clock model is supported; a zerovalue 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 GNSSID. 
orbitModel
This field specifies the gnss-OrbitModel choice(s) in GNSS-NavigationModel IE supported by the target device for the GNSS indicated by GNSSID. This is represented by a bit string, with a onevalue at the bit position means the particular orbit model is supported; a zerovalue 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 GNSSID.

–	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 GNSSID. This is represented by a bit string, with a onevalue at the bit position means the particular almanac model is supported; a zerovalue 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 GNSSID.

–	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 GNSSID. This is represented by a bit string, with a onevalue at the bit position means the particular UTC model is supported; a zerovalue 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 GNSSID.

–	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 onevalue at the bit position means differential corrections for the particular BDS signal type is supported; a zerovalue 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 AGNSSProvideCapabilities 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
gnssids 
This field specifies the GNSS(s). This is represented by a bit string, with a onevalue at the bit position means the particular GNSS is addressed; a zerovalue 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 GNSSID.
-- 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 GNSSID 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 GNSSSignalIDs is used to indicate several GNSS signals using a bit map. The interpretation of GNSSSignalIDs depends on the GNSSID.
-- 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 onevalue at the bit position means the particular signal is addressed; a zerovalue at the particular bit position means the signal is not addressed. The interpretation of the bit map in gnssSignalIDs depends on the GNSSID 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 SBASID is used to indicate a specific SBAS.
-- ASN1START

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

-- ASN1STOP

–	SBAS-IDs
The IE SBASIDs  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

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

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

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

-- ASN1STOP

SVID field descriptions
satelliteid
This field specifies a particular satellite within a specific GNSS. The interpretation of satelliteid depends on the GNSSID see the table below. 

interpretation of satelliteid
System
Value of satelliteid
Interpretation of satelliteid
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	ECID Location Information 
–	ECID-ProvideLocationInformation
The IE ECID-ProvideLocationInformation is used by the target device to provide ECID 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	ECID Location Information Elements
–	ECID-SignalMeasurementInformation
The IE ECID-SignalMeasurementInformation is used by the target device to provide various UEmeasurements 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 
	]]
}

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

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 ECID 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].
rsrq-Result
This field specifies the reference signal received quality (RSRQ) measurement, as defined in [12],[17].
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]. 

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

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

-- ASN1STOP

ECID-RequestLocationInformation field descriptions
requestedMeasurements 
This field specifies the ECID measurements requested. This is represented by a bit string, with a onevalue at the bit position means the particular measurement is requested; a zerovalue means not requested.

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

ECID-ProvideCapabilities ::= SEQUENCE {
	ecid-MeasSupported	BIT STRING { 	rsrpSup		(0),
										rsrqSup		(1),
										ueRxTxSup	(2)	} (SIZE(1..8)),
	...
}

-- ASN1STOP

ECID-Provide-Capabilities field descriptions
ecid-MeasSupported
This field specifies the ECID measurements supported by the target device. This is represented by a bit string, with a onevalue at the bit position means the particular measurement is supported; a zerovalue 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.

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

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

-- ASN1STOP

6.5.3.6	ECID Error Elements
–	ECID-Error
The IE ECID-Error is used by the location server or target device to provide ECID 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 ECID 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,
	...
}

-- 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’, or ‘ueRxTxMeasurementNotPossible’ 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),
	...
}

-- 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 milliseconds, in the range from 0 to (1-2-21) milliseconds.
codePhaseRMSError
This field contains the pseudorange RMS error value. This parameter is specified according to a floating-point representation shown in the table below.
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,
	...
}

-- ASN1STOP

TBS-RequestLocationInformation field descriptions
mbsSgnMeasListReq
This field indicates whether the target device is requested to report MBS measurements in TBSMeasurementInformation IE or not. TRUE means requested.

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

-- 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 onevalue at the bit position means the particular TBS mode is supported; a zerovalue means not 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,
									...
								},
	...
}

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

-- ASN1STOP

TBS-TargetDeviceErrorCauses field descriptions
cause
This field provides a TBS specific error cause.

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

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

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

-- ASN1STOP

Sensor-RequestLocationInformation field descriptions
uncompensatedBarometricPressureReq
This field indicates whether the target device is requested to report Barometric pressure measurements in SensorMeasurementInformation IE or not. TRUE means requested.

6.5.5.4	Sensor Capability Information
–	Sensor-ProvideCapabilities
The IE Sensor-ProvideCapabilities is used by the target device to provide capabilities for sensor-based methods from to the location server.
-- ASN1START

Sensor-ProvideCapabilities-r13 ::= SEQUENCE {
	sensor-Modes-r13			BIT STRING { 	standalone	(0),
												ue-assisted	(1)  } (SIZE (1..8)),
	...
}

-- 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 onevalue at the bit position means the particular sensor mode is supported; a zerovalue means not supported.

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

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

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

-- ASN1STOP

WLAN-RequestLocationInformation field descriptions
requestedMeasurements 
This field specifies the WLAN measurements requested. This is represented by a bit string, with a onevalue at the bit position means the particular measurement is requested; a zerovalue 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

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)}	(SIZE (1..8)),
	wlan-MeasSupported-r13	BIT STRING	{	
											rssi-r13		(0),
											rtt-r13			(1)}	(SIZE(1..8)),
	...
}

-- 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 onevalue at the bit position means the particular measurement is supported; a zerovalue 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

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

-- ASN1STOP

–	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 ‘wlanAPRSSIMeasurementNotPossible’, ‘wlanAPRTTMeasurementNotPossible’ fields, as applicable.

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	BT 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 BT measurements are performed and should take the form of YYMMDDhhmmssZ.
bt-MeasurementList
This field provides the BT measurements for up to 32 BT beacons.
btAddr
This field specifies the Bluetooth public address of the BT 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 BT measurements requested. This is represented by a bit string, with a onevalue at the bit position means the particular measurement is requested; a zerovalue means not requested. The following measurement requests can be included.

        rssi: BT 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)),
	...
}

-- 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 BT measurements supported by the target device. This is represented by a bit string, with a onevalue at the bit position means the particular measurement is supported; a zerovalue means not supported. A zero-value in all bit positions in the bit string means only the basic BT positioning method is supported by the target device which is reporting of the BT beacon identity. The following bits are assigned for the indicated measurements.

rssi: 	BT beacon signal strength at the target device

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
Subject/Comment
Old
New
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
0.1.0
2.0.0
2009-12
RP-46
RP-091208


RAN #46 approval of TS 36.355
2.0.0
9.0.0
2010-03
RP-47
RP-100304
0001
-
Clarification on Position location
9.0.0
9.1.0

RP-47
RP-100304
0002
-
Clarification on UE Rx-Tx time difference supporting capability
9.0.0
9.1.0

RP-47
RP-100304
0003
2
Completion of LPP common material
9.0.0
9.1.0

RP-47
RP-100304
0004
5
Completion of OTDOA in LPP
9.0.0
9.1.0

RP-47
RP-100304
0006
-
Provision of Frame Drift Information in Network Time
9.0.0
9.1.0

RP-47
RP-100304
0007
-
Clarification of measurement reference point
9.0.0
9.1.0

RP-47
RP-100304
0010
-
GNSS-DifferentialCorrectionsSupport
9.0.0
9.1.0

RP-47
RP-100304
0011
-
BSAlign Indication in GNSS Reference Time
9.0.0
9.1.0

RP-47
RP-100304
0012
1
Changes to reflect LPP ASN.1 review
9.0.0
9.1.0

RP-47
RP-100304
0013
1
Introduction of LPP reliability sublayer
9.0.0
9.1.0

RP-47
RP-100304
0015
-
LPP error procedures and conditions
9.0.0
9.1.0

RP-47
RP-100304
0016
-
Triggered Location Information Transfer due to Cell Change
9.0.0
9.1.0
2010-06
RP-48
RP-100558
0018
2
Addition of need codes to optional LPP information elements
9.1.0
9.2.0

RP-48
RP-100558
0019
1
Miscellaneous corrections to LPP stage 3
9.1.0
9.2.0

RP-48
RP-100558
0020
1
Small corrections to LPP specification
9.1.0
9.2.0

RP-48
RP-100558
0021
-
Clarifications of OTDOA parameters
9.1.0
9.2.0

RP-48
RP-100558
0022
1
Signalling support for PRS muting in OTDOA
9.1.0
9.2.0

-
-
-
-
Two times capital R replaced by lower case r in "MeasuredResultsElement" (undoing not intended change)
9.2.0
9.2.1
2010-09
RP-49
RP-100852
0024
-
Addition of an EPDU to an LPP Error and LPP Abort
9.2.1
9.3.0

RP-49
RP-100852
0026
-
Division of LPP into Separate ASN.1 Modules with a Global Identifier
9.2.1
9.3.0

RP-49
RP-100852
0028
-
Proposed Corrections to LPP Reliable Transport
9.2.1
9.3.0

RP-49
RP-100852
0029
-
Proposed Corrections to the PeriodicalReportingCriteria in LPP
9.2.1
9.3.0

RP-49
RP-100852
0030
1
Various corrections and clarifications to LPP
9.2.1
9.3.0

RP-49
RP-100852
0031
-
Support of functional components for LPP reliable transport
9.2.1
9.3.0

RP-49
RP-100852
0032
1
Introduction of EPDU ID requested by OMA LOC
9.2.1
9.3.0

RP-49
RP-100852
0035
1
Several corrections in LPP
9.2.1
9.3.0

RP-49
RP-100852
0036
-
Clarification to Assistance Data Transfer Procedure
9.2.1
9.3.0
2010-12
RP-50
RP-101207
0037
-
Correction of reliable transport terminology in description of LPP-Message
9.3.0
9.4.0

RP-50
RP-101207
0038
-
One cell with known SFN in OTDOA assistance data
9.3.0
9.4.0

RP-50
RP-101207
0039
1
UE frequency capability for LPP
9.3.0
9.4.0

RP-50
RP-101207
0041
-
Correction to LPP reliable transport
9.3.0
9.4.0

RP-50
RP-101207
0042
-
Correction to LPP Error procedure
9.3.0
9.4.0

RP-50
RP-101207
0043
-
Addition of missing reference to LPPe
9.3.0
9.4.0

RP-50
RP-101207
0044
2
Correction to the ODTOA assistance data
9.3.0
9.4.0

RP-50
RP-101226
0040
-
Update of 'serving cell' terminology in 36.355
9.3.0
10.0.0
2011-03
RP-51
RP-110269
0046
-
Editorial corrections to 36.355
10.0.0
10.1.0

RP-51
RP-110269
0048
-
Removal of FFS for retransmission timer in LPP
10.0.0
10.1.0

RP-51
RP-110269
0050
-
Correction to code phase encoding in GNSS acquisition assistance
10.0.0
10.1.0

RP-51
RP-110269
0052
1
Clarification on SFN provided with OTDOA measurement
10.0.0
10.1.0

RP-51
RP-110269
0053
1
Introduction of OTDOA inter-freq RSTD measurement indication procedure
10.0.0
10.1.0

RP-51
RP-110269
0057
-
Small corrections in 36.355
10.0.0
10.1.0

RP-51
RP-110269
0058
3
Further corrections to the OTDOA assistance data
10.0.0
10.1.0
2011-06
RP-52
RP-110830
0060
-
Clarifications to description of OTDOA positioning fields
10.1.0
10.2.0
2011-09
RP-53
RP-111279
0062
1
Various corrections to LPP
10.2.0
10.3.0

RP-53
RP-111279
0064
-
Mandatory support of PRS for OTDOA measurements
10.2.0
10.3.0
2011-12
RP-54
RP-111709
0066
-
Clarification of  packed encoding rules of LPP
10.3.0
10.4.0

RP-54
RP-111709
0068
-
Clarification of first bit in BIT STRING definitions
10.3.0
10.4.0
2012-06
RP-56
RP-120808
0071
-
Usage of additionalInformation IE
10.4.0
10.5.0
2012-09
RP-57
RP-121424
0074
2
Corrections to GNSS Acquisition Assistance Data
10.5.0
10.6.0

RP-57
-
-
-
Upgrade to the Release 11 - no technical change
10.6.0
11.0.0
2012-12
RP-58
RP-121931
0077
-
Correcting the referencing of QoS parameters
11.0.0
11.1.0

RP-58
RP-121931
0080
-
Correction to missing field description in GNSS-AcquisitionAssistance IE
11.0.0
11.1.0
2013-03
RP-59
RP-130237
0083
1
Extending E-UTRA Frequency Band and EARFCN value range
11.1.0
11.2.0

RP-59
RP-130230
0086
-
Correction to PRS Muting Configuration
11.1.0
11.2.0
2013-06
RP-60
RP-130803
0088
-
Correction for ASN.1 errors from CR0083r1
11.2.0
11.3.0

RP-60
RP-130803
0091
-
Correction to integer code phase field description in GNSS Acquisition Assistance
11.2.0
11.3.0

RP-60
RP-130803
0093
-
Correction to serving cell terminology
11.2.0
11.3.0

RP-60
RP-130803
0094
-
Encoding of LPP IEs
11.2.0
11.3.0
2013-09
RP-61
RP-131314
0098
-
Correction on svReqList
11.3.0
11.4.0
2013-12
RP-62
RP-131984
0103
-
Correction to missing capability indication for inter-frequency RSTD measurements
11.4.0
11.5.0

RP-62
RP-131984
0107
1
Correction to Galileo assistance data elements
11.4.0
11.5.0

RP-62
RP-132000
0104
1
Stage 3 CR of TS 36.355 for introducing BDS in LTE
11.4.0
12.0.0

RP-62
RP-131984
0108
-
Correction to Galileo assistance data elements
11.4.0
12.0.0
2014-03
RP-63
RP-140342
0112
1
Clarification to gnss-DayNumber
12.0.0
12.1.0
2014-06
RP-64
RP-140871
0119
-
Signaling of OTDOA Neighbour Cell Information and Measurements
12.1.0
12.2.0
2014-12
RP-66
RP-142114
0122
-
Correction to Galileo Assistance Data
12.2.0
12.3.0

RP-66
RP-142114
0123
-
Addition of an Early Position Fix to LPP
12.2.0
12.3.0

RP-66
RP-142120
0124
-
BDS update to version 2.0
12.2.0
12.3.0
2015-03
RP-67
RP-150369
0126
2
Correction of GLONASS system time
12.3.0
12.4.0

RP-67
RP-150376
0125
1
LPP clean-up
12.3.0
12.4.0
2015-12
RP-70
RP-152055
0134
1
Correction to the definition of Need codes
12.4.0
12.5.0
2015-12
RP-70
RP-152068
0137
3
RAT-Independent positioning enhancements
12.5.0
13.0.0
2016-03
RP-71
RP-160463
0138
1
Correction to GLONASS IOD value range
13.0.0
13.1.0

RP-71
RP-160470
0140
1
r13 Information Element correction
13.0.0
13.1.0

RP-71
RP-160470
0141
-
WLAN AP Identifier correction
13.0.0
13.1.0

RP-71
RP-160470
0142
1
LPP clean-up
13.0.0
13.1.0

3GPP TS 36.355 V13.1.0 (2016-03)
101
Release 13


3GPP

3GPP TS 36.355 V13.1.0 (2016-03)
141
Release 13


3GPP

