5 Elements of Components

3GPP44.031Location Services (LCS)Mobile Station (MS) - Serving Mobile Location Centre (SMLC) Radio Resource LCS Protocol (RRLP)Release 16TS

5.1 ASN.1 Description

The following ASN.1 code defines the elements of components. See the Annex A for further description of the contents of components and their elements.

Table 5.1.a: ASN.1 Description

— add these defintions to RRLP-Components module

— Position instructions

PositionInstruct ::= SEQUENCE {

— Method type

methodType MethodType,

positionMethod PositionMethod,

measureResponseTime MeasureResponseTime,

useMultipleSets UseMultipleSets,

environmentCharacter EnvironmentCharacter OPTIONAL

}

MethodType ::= CHOICE {

msAssisted AccuracyOpt, — accuracy is optional

msBased Accuracy, — accuracy is mandatory

msBasedPref Accuracy, — accuracy is mandatory

msAssistedPref Accuracy — accuracy is mandatory

}

— Accuracy of the location estimation

AccuracyOpt ::= SEQUENCE {

accuracy Accuracy OPTIONAL

}

— The values of this field are defined in 3GPP TS 23.032 (Uncertainty code)

Accuracy ::= INTEGER (0..127)

— Position Method

PositionMethod ::= ENUMERATED {

eotd (0),

gps (1),

gpsOrEOTD (2)

}

— Measurement request response time

MeasureResponseTime ::= INTEGER (0..7)

— useMultiple Sets, FFS!

UseMultipleSets ::= ENUMERATED {

multipleSets (0), — multiple sets are allowed

oneSet (1) — sending of multiple is not allowed

}

— Environment characterization

EnvironmentCharacter ::= ENUMERATED {

badArea (0), — bad urban or suburban, heavy multipath and NLOS

notBadArea (1), — light multipath and NLOS

mixedArea (2), — not defined or mixed environment

}

— E-OTD reference BTS for Assitance data IE

ReferenceAssistData ::= SEQUENCE {

bcchCarrier BCCHCarrier, — BCCH carrier

bsic BSIC, — BSIC

timeSlotScheme TimeSlotScheme, — Timeslot scheme

btsPosition BTSPosition OPTIONAL

}

— ellipsoid point and

— ellipsoid point with altitude and uncertainty ellipsoid shapes are supported

BTSPosition ::= Ext-GeographicalInformation

— RF channel number of BCCH

BCCHCarrier ::= INTEGER (0..1023)

— Base station Identity Code

BSIC ::= INTEGER (0..63)

— Timeslot scheme

TimeSlotScheme ::= ENUMERATED {

equalLength (0),

variousLength (1)

}

— Time slot (modulo)

ModuloTimeSlot ::= INTEGER (0..3)

— E-OTD measurement assistance data IE

— The total number of neighbors in this element (MsrAssistData)

— and in SystemInfoAssistData element (presented neighbors

— can be at a maximum 15!)

MsrAssistData ::= SEQUENCE {

msrAssistList SeqOfMsrAssistBTS

}

SeqOfMsrAssistBTS ::= SEQUENCE (SIZE(1..15)) OF MsrAssistBTS

MsrAssistBTS ::= SEQUENCE {

bcchCarrier BCCHCarrier, — BCCH carrier

bsic BSIC, — BSIC

multiFrameOffset MultiFrameOffset, — multiframe offset

timeSlotScheme TimeSlotScheme, — Timeslot scheme

roughRTD RoughRTD, — rough RTD value

— Location Calculation Assistance data is moved here

calcAssistanceBTS CalcAssistanceBTS OPTIONAL

}

— Multiframe offset

MultiFrameOffset ::= INTEGER (0..51)

— The Multiframe Offset value 51 shall not be encoded by the transmitting entity and
— shall be treated by the receiving entity as 0.

— Rough RTD value between one base station and reference BTS

RoughRTD ::= INTEGER (0..1250)

— The RoughRTD value 1250 shall not be encoded by the transmitting entity and shall
— be treated by the receiving entity as 0.

— E-OTD Measurement assistance data for system information List IE

— The total number of base stations in this element (SystemInfoAssistData

— presented neighbors) and in MsrAssistData element can be at a maximum 15.

SystemInfoAssistData ::= SEQUENCE {

systemInfoAssistList SeqOfSystemInfoAssistBTS

}

SeqOfSystemInfoAssistBTS::= SEQUENCE (SIZE(1..32)) OF SystemInfoAssistBTS

— whether n.th is present or not ?

SystemInfoAssistBTS ::= CHOICE {

notPresent NULL,

present AssistBTSData

}

— Actual assistance data for system information base station

AssistBTSData ::= SEQUENCE {

bsic BSIC, — BSIC

multiFrameOffset MultiFrameOffset, — multiframe offset

timeSlotScheme TimeSlotScheme, — Timeslot scheme

roughRTD RoughRTD, — rough RTD value

— Location Calculation Assistance data

calcAssistanceBTS CalcAssistanceBTS OPTIONAL

}

— E-OTD Location calculation assistance data,

— CalcAssistanceBTS element is optional not subfields

CalcAssistanceBTS ::= SEQUENCE {

fineRTD FineRTD, — fine RTD value between base stations

referenceWGS84 ReferenceWGS84 — reference coordinates

}

— Coordinates of neighbour BTS, WGS-84 ellipsoid

ReferenceWGS84 ::= SEQUENCE {

relativeNorth RelDistance, — relative distance (south negative)

relativeEast RelDistance, — relative distance (west negative)

— Relative Altitude is not always known

relativeAlt RelativeAlt OPTIONAL — relative altitude

}

— Fine RTD value between this BTS and the reference BTS

FineRTD ::= INTEGER (0..255)

— Relative north/east distance

RelDistance ::= INTEGER (-200000..200000)

— Relative altitude

RelativeAlt ::= INTEGER (-4000..4000)

— Measure position response IEs

— Reference Identity

— Multiple sets

MultipleSets ::= SEQUENCE {

— number of reference sets

nbrOfSets INTEGER (2..3),

— This field actually tells the number of reference BTSs

nbrOfReferenceBTSs INTEGER (1..3),

— This field is conditional and included optionally only if

— nbrOfSets is 3 and number of reference BTSs is 2.

referenceRelation ReferenceRelation OPTIONAL

}

— Relation between refence BTSs and sets

ReferenceRelation ::= ENUMERATED {

secondBTSThirdSet (0), — 1st BTS related to 1st and 2nd sets

secondBTSSecondSet (1), — 1st BTS related to 1st and 3rd sets

firstBTSFirstSet (2) — 1st BTS related to 1st set

}

— Reference BTS Identity, this element contains number of

— BTSs told nbrOfReferenceBTSs field in Multiple sets element)

ReferenceIdentity ::= SEQUENCE {

— Reference BTS list

refBTSList SeqOfReferenceIdentityType

}

SeqOfReferenceIdentityType ::= SEQUENCE (SIZE(1..3)) OF ReferenceIdentityType

— Cell identity

ReferenceIdentityType ::= CHOICE {

bsicAndCarrier BSICAndCarrier, — BSIC and Carrier

ci CellID, — Cell ID, LAC not needed

requestIndex RequestIndex, — Index to Requested Neighbor List

systemInfoIndex SystemInfoIndex, — Index to System info list, this type of ref. identity

— shall not be used by the MS unless it has received

— the SystemInfoAssistData from the SMLC for this cell.

ciAndLAC CellIDAndLAC — CI and LAC

}

BSICAndCarrier ::= SEQUENCE {

carrier BCCHCarrier,

bsic BSIC

}

RequestIndex ::= INTEGER (1..16)

SystemInfoIndex ::= INTEGER (1..32)

CellIDAndLAC ::= SEQUENCE {

referenceLAC LAC, — Location area code

referenceCI CellID — Cell identity

}

CellID ::= INTEGER (0..65535)

LAC ::= INTEGER (0..65535)

— OTD-MeasureInfo

OTD-MeasureInfo ::= SEQUENCE {

— Measurement info elements, OTD-MsrElement is repeated number of times

— told in nbrOfReferenceBTSs in MultipleSets, default value is 1

otdMsrFirstSets OTD-MsrElementFirst,

— if more than one sets are present this element is repeated

— NumberOfSets – 1 (-1 = first set)

otdMsrRestSets SeqOfOTD-MsrElementRest OPTIONAL

}

SeqOfOTD-MsrElementRest ::= SEQUENCE (SIZE(1..2)) OF OTD-MsrElementRest

— OTD measurent information for 1 set

OTD-MsrElementFirst ::= SEQUENCE {

refFrameNumber INTEGER (0..42431), — Frame number modulo 42432

referenceTimeSlot ModuloTimeSlot,

toaMeasurementsOfRef TOA-MeasurementsOfRef OPTIONAL,

stdResolution StdResolution,

taCorrection INTEGER (0..960) OPTIONAL, — TA correction

— measured neighbors in OTD measurements

otd-FirstSetMsrs SeqOfOTD-FirstSetMsrs OPTIONAL

}

SeqOfOTD-FirstSetMsrs ::= SEQUENCE (SIZE(1..10)) OF OTD-FirstSetMsrs

— OTD measurent information 2 and 3 sets if exist

OTD-MsrElementRest ::= SEQUENCE {

refFrameNumber INTEGER (0..42431), — Frame number modulo 42432

referenceTimeSlot ModuloTimeSlot,

toaMeasurementsOfRef TOA-MeasurementsOfRef OPTIONAL,

stdResolution StdResolution,

taCorrection INTEGER (0..960) OPTIONAL, — TA correction

— measured neighbors in OTD measurements

otd-MsrsOfOtherSets SeqOfOTD-MsrsOfOtherSets OPTIONAL

}

SeqOfOTD-MsrsOfOtherSets ::= SEQUENCE (SIZE(1..10)) OF OTD-MsrsOfOtherSets

— Standard deviation of the TOA measurements from the reference BTS

TOA-MeasurementsOfRef ::= SEQUENCE {

refQuality RefQuality,

numOfMeasurements NumOfMeasurements

}

RefQuality ::= INTEGER (0..31) — St Dev of TOA of reference as defined in annex

NumOfMeasurements ::= INTEGER (0..7) — No. of measurements for RefQuality as defined in annex

StdResolution ::= INTEGER (0..3) — Values of resolution are defined in annex

OTD-FirstSetMsrs ::= OTD-MeasurementWithID

— Neighbour info in OTD measurements 0-10 times in TD measurement info

OTD-MsrsOfOtherSets ::= CHOICE {

identityNotPresent OTD-Measurement,

identityPresent OTD-MeasurementWithID

}

— For this OTD measurement identity is same as the identity of BTS

— in the first set with same sequence number

OTD-Measurement ::= SEQUENCE {

nborTimeSlot ModuloTimeSlot,

eotdQuality EOTDQuality,

otdValue OTDValue

}

— This measurement contains the BTS identity and measurement

OTD-MeasurementWithID ::=SEQUENCE {

neighborIdentity NeighborIdentity,

nborTimeSlot ModuloTimeSlot,

eotdQuality EOTDQuality,

otdValue OTDValue

}

EOTDQuality ::= SEQUENCE {

nbrOfMeasurements INTEGER (0..7),

stdOfEOTD INTEGER (0..31)

}

NeighborIdentity ::= CHOICE {

bsicAndCarrier BSICAndCarrier, — BSIC and Carrier

ci CellID, — Cell ID, LAC not needed

multiFrameCarrier MultiFrameCarrier, — MultiFrameOffest and BSIC

requestIndex RequestIndex, — Index to Requested Neighbor List

systemInfoIndex SystemInfoIndex, — Index to System info list, this type of neighbour

— identity shall not be used by the MS unless it has

— received the SystemInfoAssistData from the SMLC for

— this cell.

ciAndLAC CellIDAndLAC — CI and LAC

}

— Multiframe and carrier

MultiFrameCarrier ::= SEQUENCE {

bcchCarrier BCCHCarrier,

multiFrameOffset MultiFrameOffset

}

— OTD measurement value for neighbour

OTDValue ::= INTEGER (0..39999)

— Location information IE

LocationInfo ::= SEQUENCE {

refFrame INTEGER (0..65535), — Reference Frame number

— If refFrame is within (42432..65535), it shall be ignored by the receiver

— in that case the MS should provide GPS TOW if available

gpsTOW INTEGER (0..14399999) OPTIONAL, — GPS TOW

fixType FixType,

— Note that applicable range for refFrame is 0 – 42431

— Possible shapes carried in posEstimate are

— ellipsoid point,

— ellipsoid point with uncertainty circle

— ellipsoid point with uncertainty ellipse

— ellipsoid point with altitude and uncertainty ellipsoid

posEstimate Ext-GeographicalInformation

}

FixType ::= INTEGER {

twoDFix (0),

threeDFix (1)

} (0..1)

— GPS-Measurement information

GPS-MeasureInfo ::= SEQUENCE {

— Measurement info elements

— user has to make sure that in this element is number of elements

— defined in reference BTS identity

gpsMsrSetList SeqOfGPS-MsrSetElement

}

SeqOfGPS-MsrSetElement ::= SEQUENCE (SIZE(1..3)) OF GPS-MsrSetElement

— OTD measurent information 1-3 times in message

GPS-MsrSetElement ::= SEQUENCE {

refFrame INTEGER (0..65535) OPTIONAL, — Reference Frame number

gpsTOW GPSTOW24b, — GPS TOW

— Note that applicable range for refFrame is 0 – 42431

–N_SAT can be read from number of elements of gps-msrList

gps-msrList SeqOfGPS-MsrElement

}

— 24 bit presentation for GPSTOW

GPSTOW24b ::= INTEGER (0..14399999)

— measured elements in measurement parameters field

SeqOfGPS-MsrElement ::= SEQUENCE (SIZE(1..16)) OF GPS-MsrElement

GPS-MsrElement ::= SEQUENCE {

satelliteID SatelliteID, — Satellite identifier

cNo INTEGER (0..63), — carrier noise ratio

doppler INTEGER (-32768..32767), — doppler, mulltiply by 0,2

wholeChips INTEGER (0..1022), — whole value of the code phase measurement

fracChips INTEGER (0..1024), — fractional value of the code phase measurement

— a value of 1024 shall not be encoded by the sender

— the receiver shall consider a value of 1024 to be

— invalid data

mpathIndic MpathIndic, — multipath indicator

pseuRangeRMSErr INTEGER (0..63) — index

}

— Multipath indicator

MpathIndic ::= ENUMERATED {

notMeasured (0),

low (1),

medium (2),

high (3)

}

— Location error IE

LocationError ::= SEQUENCE {

locErrorReason LocErrorReason,

additionalAssistanceData AdditionalAssistanceData OPTIONAL,

}

LocErrorReason ::= ENUMERATED {

unDefined (0),

notEnoughBTSs (1),

notEnoughSats (2),

eotdLocCalAssDataMissing (3),

eotdAssDataMissing (4),

gpsLocCalAssDataMissing (5),

gpsAssDataMissing (6),

methodNotSupported (7),

notProcessed (8),

refBTSForGPSNotServingBTS (9),

refBTSForEOTDNotServingBTS (10),

…,

notEnoughGANSSSats (11),

ganssAssDataMissing (12),

refBTSForGANSSNotServingBTS (13)

}

— exception handling:

— an unrecognized value shall be treated the same as value 0

— defines additional assistance data needed for any new location attempt

— MS shall retain any assistance data already received

AdditionalAssistanceData ::= SEQUENCE {

gpsAssistanceData GPSAssistanceData OPTIONAL,

extensionContainer ExtensionContainer OPTIONAL,

…,

ganssAssistanceData GANSSAssistanceData OPTIONAL

}

GPSAssistanceData ::= OCTET STRING (SIZE (1..maxGPSAssistanceData))

— GPSAssistanceData has identical structure and encoding to octets 3 to n of the

— GPS Assistance Data IE in 3GPP TS 49.031

maxGPSAssistanceData INTEGER ::= 40

GANSSAssistanceData ::= OCTET STRING (SIZE (1..maxGANSSAssistanceData))

— GANSSAssistanceData has identical structure and encoding to octets 3 to n of the

— GANSS Assistance Data IE in 3GPP TS 49.031

maxGANSSAssistanceData INTEGER ::= 40

— Protocol Error Causes

ErrorCodes ::= ENUMERATED {

unDefined (0),

missingComponet (1),

incorrectData (2),

missingIEorComponentElement (3),

messageTooShort (4),

unknowReferenceNumber (5),

}

— exception handling:

— an unrecognized value shall be treated the same as value 0

— GPS assistance data IE

GPS-AssistData ::= SEQUENCE {

controlHeader ControlHeader

}

— More Assistance Data To Be Sent IE

— More Assistance Data Components On the Way indication for delivery of an entire set of assistance

— data in multiple Assistance Data components.

MoreAssDataToBeSent ::= ENUMERATED {

noMoreMessages (0), — This is the only or last Assistance Data message used to deliver

— the entire set of assistance data.

moreMessagesOnTheWay (1) — The SMLC will send more Assistance Data messages or a final RRLP

— Measure Position Request message to deliver the

— the entire set of assistance data.

}

— Control header of the GPS assistance data

ControlHeader ::= SEQUENCE {

— Field type Present information

referenceTime ReferenceTime OPTIONAL,

refLocation RefLocation OPTIONAL,

dgpsCorrections DGPSCorrections OPTIONAL,

navigationModel NavigationModel OPTIONAL,

ionosphericModel IonosphericModel OPTIONAL,

utcModel UTCModel OPTIONAL,

almanac Almanac OPTIONAL,

acquisAssist AcquisAssist OPTIONAL,

realTimeIntegrity SeqOf-BadSatelliteSet OPTIONAL

}

ReferenceTime ::= SEQUENCE {

gpsTime GPSTime,

gsmTime GSMTime OPTIONAL,

gpsTowAssist GPSTOWAssist OPTIONAL

}

— GPS Time includes week number and time-of-week (TOW)

GPSTime ::= SEQUENCE {

gpsTOW23b GPSTOW23b,

gpsWeek GPSWeek

}

— GPSTOW, range 0-604799,92, resolution 0,08 sec, 23-bit presentation

GPSTOW23b ::= INTEGER (0..7559999)

— GPS week number
GPSWeek ::= INTEGER (0..1023)

— GPSTOWAssist consists of TLM message, Anti-spoof flag, Alert flag, and 2 reserved bits in TLM Word

— for each visible satellite.

— N_SAT can be read from number of elements in GPSTOWAssist

GPSTOWAssist ::= SEQUENCE (SIZE(1..12)) OF GPSTOWAssistElement

GPSTOWAssistElement ::= SEQUENCE {

satelliteID SatelliteID,

tlmWord TLMWord,

antiSpoof AntiSpoofFlag,

alert AlertFlag,

tlmRsvdBits TLMReservedBits

}

— TLM Word, 14 bits

TLMWord ::= INTEGER (0..16383)

— Anti-Spoof flag

AntiSpoofFlag ::= INTEGER (0..1)

— Alert flag

AlertFlag ::= INTEGER (0..1)

— Reserved bits in TLM word, MSB occurs earlier in TLM Word transmitted by satellite

TLMReservedBits ::= INTEGER (0..3)

GSMTime ::= SEQUENCE {

bcchCarrier BCCHCarrier, — BCCH carrier

bsic BSIC, — BSIC

frameNumber FrameNumber,

timeSlot TimeSlot,

bitNumber BitNumber

}

— Frame number

FrameNumber ::= INTEGER (0..2097151)

— Time slot number

TimeSlot ::= INTEGER (0..7)

— Bit number

BitNumber ::= INTEGER (0..156)

— Reference Location IE

RefLocation ::= SEQUENCE {

threeDLocation Ext-GeographicalInformation

}

— DGPS Corrections IE

DGPSCorrections ::= SEQUENCE {

gpsTOW INTEGER (0..604799), — DGPS reference time

status INTEGER (0..7),

— N_SAT can be read from number of elements of satList

satList SeqOfSatElement

}

SeqOfSatElement ::= SEQUENCE (SIZE (1..16)) OF SatElement

— number of correction for satellites

SatElement ::= SEQUENCE {

satelliteID SatelliteID,

— Sequence number for ephemeris

iode INTEGER (0..239),

— User Differential Range Error

udre INTEGER (0..3),

— Pseudo Range Correction, range is

— -655,04 – +655,04,

pseudoRangeCor INTEGER (-2047..2047),

— Pseudo Range Rate Correction, range is

— -4,064 – +4,064,

rangeRateCor INTEGER (-127..127),

— Delta Pseudo Range Correction 2

deltaPseudoRangeCor2 INTEGER (-127..127), — This IE shall be ignored by the receiver

— and set to zero by the sender

— Delta Pseudo Range Correction 2

deltaRangeRateCor2 INTEGER (-7..7), — This IE shall be ignored by the receiver

— and set to zero by the sender

— Delta Pseudo Range Correction 3

deltaPseudoRangeCor3 INTEGER (-127..127), — This IE shall be ignored by the receiver

— and set to zero by the sender

— Delta Pseudo Range Correction 3

deltaRangeRateCor3 INTEGER (-7..7) — This IE shall be ignored by the receiver

— and set to zero by the sender

}

SatelliteID ::= INTEGER (0..63) — identifies satellite

— Navigation Model IE

NavigationModel ::= SEQUENCE {

navModelList SeqOfNavModelElement

}

— navigation model satellite list

SeqOfNavModelElement ::= SEQUENCE (SIZE(1..16)) OF NavModelElement

NavModelElement ::= SEQUENCE {

satelliteID SatelliteID,

satStatus SatStatus — satellite status

}

— the Status of the navigation model

SatStatus ::= CHOICE {

— New satellite, new Navigation Model

newSatelliteAndModelUC UncompressedEphemeris,

— Existing satellite, Existing Navigation Model

oldSatelliteAndModel NULL,

— Existing satellite, new Navigation Model

newNaviModelUC UncompressedEphemeris,

}

— Uncompressed satellite emhemeris and clock corrections

UncompressedEphemeris ::= SEQUENCE {

ephemCodeOnL2 INTEGER (0..3),

ephemURA INTEGER (0..15),

ephemSVhealth INTEGER (0..63),

ephemIODC INTEGER (0..1023),

ephemL2Pflag INTEGER (0..1),

ephemSF1Rsvd EphemerisSubframe1Reserved,

ephemTgd INTEGER (-128..127),

ephemToc INTEGER (0..37799),

ephemAF2 INTEGER (-128..127),

ephemAF1 INTEGER (-32768..32767),

ephemAF0 INTEGER (-2097152..2097151),

ephemCrs INTEGER (-32768..32767),

ephemDeltaN INTEGER (-32768..32767),

ephemM0 INTEGER (-2147483648..2147483647),

ephemCuc INTEGER (-32768..32767),

ephemE INTEGER (0..4294967295),

ephemCus INTEGER (-32768..32767),

ephemAPowerHalf INTEGER (0..4294967295),

ephemToe INTEGER (0..37799),

ephemFitFlag INTEGER (0..1),

ephemAODA INTEGER (0..31),

ephemCic INTEGER (-32768..32767),

ephemOmegaA0 INTEGER (-2147483648..2147483647),

ephemCis INTEGER (-32768..32767),

ephemI0 INTEGER (-2147483648..2147483647),

ephemCrc INTEGER (-32768..32767),

ephemW INTEGER (-2147483648..2147483647),

ephemOmegaADot INTEGER (-8388608..8388607),

ephemIDot INTEGER (-8192..8191)

}

— Reserved bits in subframe 1 of navigation message

EphemerisSubframe1Reserved ::= 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

}

— Ionospheric Model IE

IonosphericModel ::= SEQUENCE {

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)

}

— Universal Time Coordinate Model

UTCModel ::= SEQUENCE {

utcA1 INTEGER (-8388608..8388607),

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

}

— Almanac, Long term model

— NOTE: These are parameters are subset of the ephemeris

— NOTE: But with reduced resolution and accuracy

Almanac ::= SEQUENCE {

alamanacWNa INTEGER (0..255), — Once per message

— navigation model satellite list.

— The size of almanacList is actually Nums_Sats_Total field

almanacList SeqOfAlmanacElement

}

SeqOfAlmanacElement ::= SEQUENCE (SIZE(1..64)) OF AlmanacElement

— Almanac info once per satellite

AlmanacElement ::= SEQUENCE {

satelliteID SatelliteID,

almanacE INTEGER (0..65535),

alamanacToa INTEGER (0..255),

almanacKsii INTEGER (-32768..32767),

almanacOmegaDot INTEGER (-32768..32767),

almanacSVhealth INTEGER (0..255),

almanacAPowerHalf INTEGER (0..16777215),

almanacOmega0 INTEGER (-8388608..8388607),

almanacW INTEGER (-8388608..8388607),

almanacM0 INTEGER (-8388608..8388607),

almanacAF0 INTEGER (-1024..1023),

almanacAF1 INTEGER (-1024..1023)

}

— Acquisition Assistance

AcquisAssist ::= SEQUENCE {

— Number of Satellites can be read from acquistList

timeRelation TimeRelation,

— Acquisition assistance list

— The size of Number of Satellites is actually Number of Satellites field

acquisList SeqOfAcquisElement

}

SeqOfAcquisElement ::= SEQUENCE (SIZE(1..16)) OF AcquisElement

— the relationship between GPS time and air-interface timing

TimeRelation ::= SEQUENCE {

gpsTOW GPSTOW23b, — 23b presentation

gsmTime GSMTime OPTIONAL

}

— data occuring per number of satellites

AcquisElement ::= SEQUENCE {

svid SatelliteID,

— Doppler 0th order term,

— -5120,0 – 5117,5 Hz (= -2048 – 2047 with 2,5 Hz resolution)

doppler0 INTEGER (-2048..2047),

addionalDoppler AddionalDopplerFields OPTIONAL,

codePhase INTEGER (0..1022), — Code Phase

intCodePhase INTEGER (0..19), — Integer Code Phase

gpsBitNumber INTEGER (0..3), — GPS bit number

codePhaseSearchWindow INTEGER (0..15), — Code Phase Search Window

addionalAngle AddionalAngleFields OPTIONAL

}

AddionalDopplerFields ::= SEQUENCE {

— Doppler 1st order term, -1,0 – +0,5 Hz/sec

— (= -42 + (0 to 63) with 1/42 Hz/sec. resolution)

doppler1 INTEGER (0..63),

dopplerUncertainty INTEGER (0..7)

— a sender shall not encode any DopplerUncertainty value in the range 5 to 7

— a receiver shall ignore any value between 5 and 7.

}

AddionalAngleFields ::= SEQUENCE {

— azimuth angle, 0 – 348,75 deg (= 0 – 31 with 11,25 deg resolution)

azimuth INTEGER (0..31),

— elevation angle, 0 – 78,75 deg (= 0 – 7 with 11,25 deg resolution)

elevation INTEGER (0..7)

}

— Real-Time Integrity

— number of bad satellites can be read from this element

SeqOf-BadSatelliteSet ::= SEQUENCE (SIZE(1..16)) OF SatelliteID

— Extension Elements

— Release 98 Extensions here

Rel98-MsrPosition-Req-Extension ::= SEQUENCE {

rel98-Ext-ExpOTD Rel98-Ext-ExpOTD OPTIONAL, — ExpectedOTD extension

…,

gpsTimeAssistanceMeasurementRequest NULL OPTIONAL,

gpsReferenceTimeUncertainty GPSReferenceTimeUncertainty OPTIONAL

— Further R98 extensions here

}

Rel98-AssistanceData-Extension ::= SEQUENCE {

rel98-Ext-ExpOTD Rel98-Ext-ExpOTD OPTIONAL, — ExpectedOTD extension

…,

gpsTimeAssistanceMeasurementRequest NULL OPTIONAL,

gpsReferenceTimeUncertainty GPSReferenceTimeUncertainty OPTIONAL

— Further R98 extensions here

}

— Release 98 ExpOTD extension

Rel98-Ext-ExpOTD ::= SEQUENCE {

— If MsrAssistBTS is included in message, msrAssistData-R98-ExpOTD shall be included.

msrAssistData-R98-ExpOTD MsrAssistData-R98-ExpOTD OPTIONAL,

— If SystemInfoAssistaData is included in message, systemInfoAssistData-R98-ExpOTD shall be
— included.

systemInfoAssistData-R98-ExpOTD SystemInfoAssistData-R98-ExpOTD OPTIONAL

}

— MsrAssistData R98 extension

MsrAssistData-R98-ExpOTD ::= SEQUENCE {

msrAssistList-R98-ExpOTD SeqOfMsrAssistBTS-R98-ExpOTD

}

— Indexes in SeqOfMsrAssistBTS-R98-ExpOTD refer to SeqOfMsrAssistBTS

— If the index exceeds the SegOfMsrAssistBTS range or if there is other

— inconsistencies between the BTS indices, the MS shall apply protocol

— error cause incorrectData

SeqOfMsrAssistBTS-R98-ExpOTD ::= SEQUENCE (SIZE(1..15)) OF MsrAssistBTS-R98-ExpOTD

— This element completes MsrAssistBTS IE

MsrAssistBTS-R98-ExpOTD ::= SEQUENCE {

expectedOTD ExpectedOTD,

expOTDUncertainty ExpOTDUncertainty

}

— SystemInfoAssistData R98 extension

SystemInfoAssistData-R98-ExpOTD ::= SEQUENCE {

systemInfoAssistListR98-ExpOTD SeqOfSystemInfoAssistBTS-R98-ExpOTD

}

— SeqOfSystemInfoAssistBTS-R98-ExpOTD index refer to SeqOfSystemInfoAssistBTS

— If the index exceeds the SegOfSystemInfoAssistBTS range or if there is other

— inconsistencies between the BTS indices, the MS shall apply protocol

— error cause incorrectData

SeqOfSystemInfoAssistBTS-R98-ExpOTD ::= SEQUENCE (SIZE(1..32)) OF SystemInfoAssistBTS-R98-ExpOTD

— whether n.th is present or not ?

SystemInfoAssistBTS-R98-ExpOTD ::= CHOICE {

notPresent NULL,

present AssistBTSData-R98-ExpOTD

}

— This element completes AssistBTSData IE

AssistBTSData-R98-ExpOTD ::= SEQUENCE {

expectedOTD ExpectedOTD,

expOTDuncertainty ExpOTDUncertainty — Uncertainty of expected OTD

}

— Expected OTD value between nbor base station and reference BTS

— at MS’s current estimated location.

ExpectedOTD ::= INTEGER (0..1250)

— The ExpectedOTD value 1250 shall not be encoded by the transmitting entity and

— shall be treated by the receiving entity as 0.

— Uncertainty of Exptected OTD in bits

ExpOTDUncertainty ::= INTEGER(0..7)

— Release 98 extensions

GPSReferenceTimeUncertainty ::= INTEGER (0 .. 127) — Coding according to Annex

GPSTimeAssistanceMeasurements ::= SEQUENCE {

referenceFrameMSB INTEGER (0 .. 63) OPTIONAL, — MSB of frame number

gpsTowSubms INTEGER (0 .. 9999) OPTIONAL, — in units of 100ns, for MS based AGPS

deltaTow INTEGER (0 .. 127) OPTIONAL, — for MS assisted AGPS
gpsReferenceTimeUncertainty GPSReferenceTimeUncertainty OPTIONAL

}

Rel-98-MsrPosition-Rsp-Extension ::= SEQUENCE {

— First extension to Release 98

rel-98-Ext-MeasureInfo SEQUENCE {

otd-MeasureInfo-R98-Ext OTD-MeasureInfo-R98-Ext OPTIONAL

},

…,

timeAssistanceMeasurements GPSTimeAssistanceMeasurements OPTIONAL

— Further R98 extensions here

}

— This is an addition to OTD-MeasureInfo element defined in original message,

— If OTD-MeasureInfo is absent, or if one or more OTD-MsrElementRest are present

— OTD-MeasureInfo-R98-Ext shall be absent.

— OTD-MeasureInfo-R98-Ext

OTD-MeasureInfo-R98-Ext ::= SEQUENCE {

— Measurement info elements

otdMsrFirstSets-R98-Ext OTD-MsrElementFirst-R98-Ext

}

— OTD measurement information Ext for the first set only

OTD-MsrElementFirst-R98-Ext ::= SEQUENCE {

— additional measured neighbors in OTD measurements

otd-FirstSetMsrs-R98-Ext SeqOfOTD-FirstSetMsrs-R98-Ext OPTIONAL

}

SeqOfOTD-FirstSetMsrs-R98-Ext ::= SEQUENCE (SIZE(1..5)) OF OTD-FirstSetMsrs

Rel-5-MsrPosition-Rsp-Extension ::= SEQUENCE {

extended-reference Extended-reference OPTIONAL,

— The extended-reference shall be included by the MS if and only if previously

— received from the SMLC in a Measure Position Request. When included, the value sent

— by the MS shall equal the value received from the SMLC.

— extension to Release 5, for RRLP pseudo-segmentation here

otd-MeasureInfo-5-Ext OTD-MeasureInfo-5-Ext OPTIONAL,

ulPseudoSegInd UlPseudoSegInd OPTIONAL, — Included when uplink RRLP

— Pseudo-segmentation is used, not included when no uplink pseudo-segmentation is used

— Possibly more extensions for Release 5 here later

}

Extended-reference ::= SEQUENCE {

smlc-code INTEGER (0..63),

transaction-ID INTEGER (0..262143)

}

OTD-MeasureInfo-5-Ext ::= SeqOfOTD-MsrElementRest

— if more than one measurement sets are present this element is repeated

— NumberOfSets – 1 (-1 = first set) combined in OTD-MeasureInfo-5-Ext and

— OTD-MeasureInfo (e.g. if NumberOfSets is 3, then one otdMsrRestSets may

— be sent in OTD-MeasureInfo-5-Ext and one in OTD-MeasureInfo)

— First part of Uplink RRLP Pseudo-segmentation indication, possibly more may be defined

— in the future for segmentation with more than two segments.

UlPseudoSegInd ::= ENUMERATED {

firstOfMany (0),

secondOfMany(1)

}

Rel5-MsrPosition-Req-Extension ::= SEQUENCE {

extended-reference Extended-reference,

— Possibly more extensions for Release 5 here later

}

Rel5-AssistanceData-Extension ::= SEQUENCE {

extended-reference Extended-reference,

— Possibly more extensions for Release 5 here later

}

Rel-5-ProtocolError-Extension::= SEQUENCE {

extended-reference Extended-reference OPTIONAL,

— The extended-reference shall be included by the MS if and only if previously

— received from the SMLC.

— When included, the value sent by the MS shall equal the value received from the SMLC.

— Possibly more extensions for Release 5 here later

}

— Release 7 Extensions here

Rel7-MsrPosition-Req-Extension ::= SEQUENCE {

velocityRequested NULL OPTIONAL,

ganssPositionMethod GANSSPositioningMethod OPTIONAL,

ganss-AssistData GANSS-AssistData OPTIONAL,

ganssCarrierPhaseMeasurementRequest NULL OPTIONAL,

ganssTODGSMTimeAssociationMeasurementRequest NULL OPTIONAL,

requiredResponseTime RequiredResponseTime OPTIONAL,

add-GPS-AssistData Add-GPS-AssistData OPTIONAL,

ganssMultiFreqMeasurementRequest NULL OPTIONAL,

— Further Release 7 extentions here

}

— additional satellite systems may be added in future versions of the protocol

— Bit 0 of GANSSPositioningMethod bit map shall not be the only one set to TRUE (‘1’)

GANSSPositioningMethod ::= BIT STRING {

gps (0),

galileo (1),

sbas (2),

modernizedGPS (3),

qzss (4),

glonass (5),

bds (6)} (SIZE (2..16))

GANSS-AssistData ::= SEQUENCE {

ganss-controlHeader GANSS-ControlHeader

}

GANSS-ControlHeader ::= SEQUENCE {

ganssCommonAssistData GANSSCommonAssistData OPTIONAL,

ganssGenericAssistDataList SeqOfGANSSGenericAssistDataElement OPTIONAL

}

— GANSS Common Assistance Data Elements

GANSSCommonAssistData ::= SEQUENCE {

ganssReferenceTime GANSSReferenceTime OPTIONAL,

ganssRefLocation GANSSRefLocation OPTIONAL,

ganssIonosphericModel GANSSIonosphericModel OPTIONAL,

… ,

ganssAddIonosphericModel GANSSAddIonosphericModel OPTIONAL,

ganssEarthOrientParam GANSSEarthOrientParam OPTIONAL,

— If GANSSReferenceTime is included, GANSSReferenceTime-R10-Ext shall also be included.

ganssReferenceTime-R10-Ext GANSSReferenceTime-R10-Ext OPTIONAL

}

— List of GANSS Generic Assistance Data Elements, up to 8 GANSS

SeqOfGANSSGenericAssistDataElement ::= SEQUENCE (SIZE (1..8)) OF GANSSGenericAssistDataElement

— GANSS Generic Assistance Data Elements

GANSSGenericAssistDataElement ::= SEQUENCE {

ganssID INTEGER (0..7) OPTIONAL, — Coding according to Annex

ganssTimeModel SeqOfGANSSTimeModel OPTIONAL,

ganssDiffCorrections GANSSDiffCorrections OPTIONAL,

ganssNavigationModel GANSSNavModel OPTIONAL,

ganssRealTimeIntegrity GANSSRealTimeIntegrity OPTIONAL,

ganssDataBitAssist GANSSDataBitAssist OPTIONAL,

ganssRefMeasurementAssist GANSSRefMeasurementAssist OPTIONAL,

ganssAlmanacModel GANSSAlmanacModel OPTIONAL,

ganssUTCModel GANSSUTCModel OPTIONAL,

ganssEphemerisExtension GANSSEphemerisExtension OPTIONAL,

ganssEphemerisExtCheck GANSSEphemerisExtensionCheck OPTIONAL,

… ,

sbasID INTEGER (0..7) OPTIONAL, — Coding according to Annex

ganssAddUTCModel GANSSAddUTCModel OPTIONAL,

ganssAuxiliaryInfo GANSSAuxiliaryInformation OPTIONAL,

ganssDiffCorrectionsValidityPeriod GANSSDiffCorrectionsValidityPeriod OPTIONAL,

— If SeqOfGANSSTimeModel is included, SeqOfGANSSTimeModel-R10-Ext shall also be included.

ganssTimeModel-R10-Ext SeqOfGANSSTimeModel-R10-Ext OPTIONAL,

— If GANSSRefMeasurementAssist is included, GANSSRefMeasurementAssist-R10-Ext shall also be

— included.

ganssRefMeasurementAssist-R10-Ext GANSSRefMeasurementAssist-R10-Ext OPTIONAL,

— If GANSSAlmanacModel is included, GANSSAlmanacModel-R10-Ext shall also be included.

ganssAlmanacModel-R10-Ext GANSSAlmanacModel-R10-Ext OPTIONAL,

ganssAlmanacModel-R12-Ext GANSSAlmanacModel-R12-Ext OPTIONAL,

ganssRefMeasurementAssist-R12-Ext GANSSRefMeasurementAssist-R12-Ext OPTIONAL,

–The field may be present if the ganssID indicates BDS, otherwise it is not present.

bdsDifferentialCorrections-r12 BDS-DiffCorrections-r12 OPTIONAL,

–The field may be present if the ganssID indicates BDS, otherwise it is not present.

bdsGridModel-r12 BDS-GridModelParameter-r12 OPTIONAL

}

— GANSS COMMON ASSISTANCE DATA ELEMENTS

— GANSS Reference Time IE

GANSSReferenceTime ::= SEQUENCE {

ganssRefTimeInfo GANSSRefTimeInfo,

ganssTOD-GSMTimeAssociation GANSSTOD-GSMTimeAssociation OPTIONAL

}

— GANSS Reference Time includes GANSS TOD, GANSS Day, uncertainty

GANSSRefTimeInfo ::= SEQUENCE {

— ganssDay shall be present in this version of the protocol

ganssDay INTEGER(0 .. 8191) OPTIONAL,

ganssTOD GANSSTOD,

ganssTODUncertainty GANSSTODUncertainty OPTIONAL,

ganssTimeID INTEGER (0 .. 7) OPTIONAL

}

— GANSS TOD integer seconds

GANSSTOD ::= INTEGER (0 .. 86399)

— GANSS TOD uncertainty

GANSSTODUncertainty ::= INTEGER (0 .. 127) — Coding according to Annex

— GANSS Reference Time Rel-10 Extension:

GANSSReferenceTime-R10-Ext ::= SEQUENCE {

ganssDayCycleNumber INTEGER(0..7) — coding according to annex

}

— GANSS TOD-GSM Time association

GANSSTOD-GSMTimeAssociation ::= SEQUENCE {

bcchCarrier BCCHCarrier, — BCCH carrier

bsic BSIC, — BSIC

frameNumber FrameNumber,

timeSlot TimeSlot,

bitNumber BitNumber,

frameDrift FrameDrift OPTIONAL

}

— Frame drift

FrameDrift ::= INTEGER(-64 .. 63)

— GANSS Reference Location IE

GANSSRefLocation ::= SEQUENCE {

threeDLocation Ext-GeographicalInformation

}

— GANSS Ionospheric Model IE

— GANSS Ionospheric Model consists of NeQuick model parameters and storm flags

GANSSIonosphericModel ::= SEQUENCE {

ganssIonoModel GANSSIonosphereModel,

ganssIonoStormFlags GANSSIonoStormFlags OPTIONAL,

}

— GANSS ionosphere model. Coding according to Annex

GANSSIonosphereModel ::= SEQUENCE {

ai0 INTEGER (0 .. 2047),

ai1 INTEGER (-1024 .. 1023),

ai2 INTEGER (-8192 .. 8191)

}

— GANSS ionosphere storm flags

GANSSIonoStormFlags ::= SEQUENCE {

ionoStormFlag1 INTEGER (0 .. 1),

ionoStormFlag2 INTEGER (0 .. 1),

ionoStormFlag3 INTEGER (0 .. 1),

ionoStormFlag4 INTEGER (0 .. 1),

ionoStormFlag5 INTEGER (0 .. 1)

}

— GANSS Additional Ionospheric Model IE

— GANSS Additional Ionospheric Model consists of Klobuchar model parameters

GANSSAddIonosphericModel ::= SEQUENCE {

dataID BIT STRING (SIZE (2)), — Coding according to Annex

ionoModel IonosphericModel

}

— GANSS Earth Orientation Paramaters IE

GANSSEarthOrientParam ::= 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)

}

— GANSS GENERIC ASSISTANCE DATA ELEMENTS

— GANSS Time Model IE consists of time offset and first and second order parameters to relate GNSS

— specific system time to selected time reference

SeqOfGANSSTimeModel ::= SEQUENCE (SIZE(1..7)) OF GANSSTimeModelElement

GANSSTimeModelElement ::= SEQUENCE {

ganssTimeModelRefTime INTEGER(0 .. 65535),

tA0 TA0,

tA1 TA1 OPTIONAL,

tA2 TA2 OPTIONAL,

gnssTOID INTEGER (0 .. 7), — coding according to annex

weekNumber INTEGER (0 .. 8191) OPTIONAL

}

— GANSS time model parameter A0

TA0 ::= INTEGER (-2147483648 .. 2147483647)

— GANSS time model parameter A1

TA1 ::= INTEGER (-8388608 .. 8388607)

— GANSS time model parameter A2

TA2 ::= INTEGER (-64 .. 63)

— GANSS Time Model Rel-10 Extension:

SeqOfGANSSTimeModel-R10-Ext ::= SEQUENCE (SIZE(1..7)) OF GANSSTimeModelElement-R10-Ext

GANSSTimeModelElement-R10-Ext ::= SEQUENCE {

gnssTOID INTEGER (0 .. 7), — coding according to annex

deltaT INTEGER (-128..127)

}

— DGANSS Corrections IE

GANSSDiffCorrections ::= SEQUENCE {

dganssRefTime INTEGER (0 .. 119), — DGANSS reference time

— N_SGN_TYPE can be read from number of elements of sgnTypeList

sgnTypeList SeqOfSgnTypeElement

}

SeqOfSgnTypeElement ::= SEQUENCE (SIZE (1..3)) OF SgnTypeElement — max three signals per GNSS

— DGANSS signal type element, once per GNSS signal type included in DGANSS

SgnTypeElement ::= SEQUENCE {

ganssSignalID GANSSSignalID, — signal type identity

ganssStatusHealth INTEGER (0 .. 7),

— N_SAT can be read from number of elements of dganssSgnList

dganssSgnList SeqOfDGANSSSgnElement

}

GANSSSignalID ::= INTEGER (0 .. 7) — Coding according to Annex

SeqOfDGANSSSgnElement ::= SEQUENCE (SIZE (1..16)) OF DGANSSSgnElement

— number of correction for signals

DGANSSSgnElement ::= SEQUENCE {

svID SVID, — Satellite identity

— Sequence number for GANSS Navigation Model that matches the DGANSS correction set

iod INTEGER (0 .. 1023),

— User Differential Range Error

udre INTEGER (0..3),

— Pseudo Range Correction, range is

— -655,04 – +655,04,

pseudoRangeCor INTEGER (-2047..2047),

— Pseudo Range Rate Correction, range is

— -4,064 – +4,064,

rangeRateCor INTEGER (-127..127)

}

SVID ::= INTEGER (0 .. 63) — Coding according to Annex

— GANSS Navigation Model IE

GANSSNavModel ::= SEQUENCE {

nonBroadcastIndFlag INTEGER (0 .. 1),

ganssSatelliteList SeqOfGANSSSatelliteElement

}

SeqOfGANSSSatelliteElement ::= SEQUENCE (SIZE(1..32)) OF GANSSSatelliteElement

GANSSSatelliteElement ::= SEQUENCE {

svID SVID,

svHealth BIT STRING (SIZE(5)), — Coding according to Annex

iod INTEGER (0 .. 1023), — Coding according to Annex

ganssClockModel GANSSClockModel,

ganssOrbitModel GANSSOrbitModel,

…,

svHealthMSB BIT STRING (SIZE(1)) OPTIONAL, — Coding according to Annex

iodMSB INTEGER (0 .. 1) OPTIONAL, — Coding according to Annex

svHealthExt BIT STRING (SIZE(4)) OPTIONAL — Coding according to Annex

}

— GANSS orbit model for the GNSS satellite according to the choice

GANSSOrbitModel ::= CHOICE {

keplerianSet NavModel-KeplerianSet, — Model-1

… ,

navKeplerianSet NavModel-NAVKeplerianSet, — Model-2

cnavKeplerianSet NavModel-CNAVKeplerianSet, — Model-3

glonassECEF NavModel-GLONASSecef, — Model-4

sbasECEF NavModel-SBASecef, — Model-5

bdsKeplerianSet-r12 NavModel-BDSKeplerianSet-r12 — Model-6

}

— Navigation model in Keplerian parameters

NavModel-KeplerianSet ::= 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)

}

NavModel-NAVKeplerianSet ::= 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)

}

NavModel-CNAVKeplerianSet ::= 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)

}

NavModel-GLONASSecef ::= 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)

}

NavModel-SBASecef ::= SEQUENCE {

sbasTo INTEGER (0..5399) OPTIONAL,

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)

}

NavModel-BDSKeplerianSet-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)

}

— GANSS clock model for the GNSS satellite according to the choice

GANSSClockModel ::= CHOICE {

standardClockModelList SeqOfStandardClockModelElement, — Model-1

… ,

navClockModel NAVclockModel, — Model-2

cnavClockModel CNAVclockModel, — Model-3

glonassClockModel GLONASSclockModel, — Model-4

sbasClockModel SBASclockModel , — Model-5

bdsClockModel-r12 BDSClockModel-r12 — Model-6

}

SeqOfStandardClockModelElement ::= 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,

stanModelID INTEGER (0 .. 1) OPTIONAL,

}

NAVclockModel ::= SEQUENCE {

navToc INTEGER (0.. 37799),

navaf2 INTEGER (-128..127),

navaf1 INTEGER (-32768..32767),

navaf0 INTEGER (-2097152..2097151),

navTgd INTEGER (-128..127)

}

CNAVclockModel ::= 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,

cnavISCl1cd INTEGER (-4096..4095) OPTIONAL,

cnavISCl1ca INTEGER (-4096..4095) OPTIONAL,

cnavISCl2c INTEGER (-4096..4095) OPTIONAL,

cnavISCl5i5 INTEGER (-4096..4095) OPTIONAL,

cnavISCl5q5 INTEGER (-4096..4095) OPTIONAL

}

GLONASSclockModel ::= SEQUENCE {

gloTau INTEGER (-2097152..2097151),

gloGamma INTEGER (-1024..1023),

gloDeltaTau INTEGER (-16..15) OPTIONAL

}

SBASclockModel ::= SEQUENCE {

sbasTo INTEGER (0..5399),

sbasAgfo INTEGER (-2048..2047),

sbasAgf1 INTEGER (-128..127)

}

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

}

— GANSS Real-Time Integrity IE

GANSSRealTimeIntegrity ::= SEQUENCE {

— list of satellites with bad signals

— NBS can be read from number of elements in SeqOf-BadSignalSet

ganssBadSignalList SeqOfBadSignalElement

}

SeqOfBadSignalElement ::= SEQUENCE (SIZE(1..16)) OF BadSignalElement

BadSignalElement ::= SEQUENCE {

badSVID SVID, — Coding according to Annex

badSignalID GANSSSignals OPTIONAL — Coding according to Annex

}

— GANSS Data Bit Assistance IE

GANSSDataBitAssist ::= SEQUENCE {

ganssTOD INTEGER (0 .. 59),

— N_SAT can be read from number of elements in SeqOfGanssDataBitsElement

ganssDataBitsSatList SeqOfGanssDataBitsElement,

}

SeqOfGanssDataBitsElement ::= SEQUENCE (SIZE(1 .. 32))OF GanssDataBitsElement

GanssDataBitsElement ::= SEQUENCE {

svID SVID,

— N_SGN can be read from number of elements in Seq-OfGANSSDataBitsSgn

ganssDataBitsSgnList Seq-OfGANSSDataBitsSgn,

}

Seq-OfGANSSDataBitsSgn ::= SEQUENCE (SIZE(1..8)) OF GANSSDataBitsSgnElement

GANSSDataBitsSgnElement ::= SEQUENCE {

ganssSignalType GANSSSignalID,

— N_BIT can be read from number of elements in SeqOf-DataBits

ganssDataBits SeqOf-GANSSDataBits,

}

SeqOf-GANSSDataBits ::= SEQUENCE (SIZE(1 .. 1024)) OF GANSSDataBit

GANSSDataBit ::= INTEGER(0 .. 1)

— GANSS Reference Measurement Assistance IE

— Code and Doppler assistance from the network.

GANSSRefMeasurementAssist ::= SEQUENCE {

ganssSignalID GANSSSignalID, — Coding according to Annex

ganssRefMeasAssistList SeqOfGANSSRefMeasurementElement

}

SeqOfGANSSRefMeasurementElement ::= SEQUENCE (SIZE(1 .. 16)) OF GANSSRefMeasurementElement

GANSSRefMeasurementElement ::= SEQUENCE {

svID SVID,

— Doppler 0th order term,

— -1024 m/s to 1023,5 m/s with 0,5 m/s resolution)

doppler0 INTEGER (-2048 .. 2047), — Coding according to Annex

additionalDoppler AdditionalDopplerFields OPTIONAL,

codePhase INTEGER (0 .. 1022), — Code Phase in ms

intCodePhase INTEGER (0 .. 127), — Integer Code Phase in ms

codePhaseSearchWindow INTEGER (0 .. 31), — Code Phase Search Window, see Annex

additionalAngle AddionalAngleFields OPTIONAL,

…,

codePhase1023 BOOLEAN OPTIONAL

}

AdditionalDopplerFields ::= SEQUENCE {

— Doppler 1st order term, -0,2 – +0,1 m/s2

— ( = -42 + (0 to 63) with 1/210 m/s2 resolution)

doppler1 INTEGER (0..63),

dopplerUncertainty INTEGER (0..4)

}

— GANSS Reference Measurement Rel-10 Extension:

— GANSSRefMeasurementAssist-R10-Ext shall contain the same number of elements as the

— SeqOfGANSSRefMeasurementElement included in GANSSRefMeasurementAssist IE

GANSSRefMeasurementAssist-R10-Ext ::= SEQUENCE (SIZE(1 .. 16)) OF

GANSSRefMeasurement-R10-Ext-Element

GANSSRefMeasurement-R10-Ext-Element ::= SEQUENCE {

svID SVID,

azimuthLSB INTEGER(0..15),

elevationLSB INTEGER(0..15)

}

— GANSS Reference Measurement Rel-12 Extension:

GANSSRefMeasurementAssist-R12-Ext ::= SEQUENCE {

ganssSignalID GANSSSignalID,

confidence INTEGER (0..100) OPTIONAL,

ganssRefMeasAssistList SeqOfGANSSRefMeasurementElement-R12 OPTIONAL

}

SeqOfGANSSRefMeasurementElement-R12 ::= SEQUENCE (SIZE(1 .. 16)) OF

GANSSRefMeasurement-R12-Ext-Element

GANSSRefMeasurement-R12-Ext-Element ::= SEQUENCE {

svID SVID,

dopplerUncertaintyExt ENUMERATED { d60,

d80,

d100,

d120,

noInformation, …}

}

— GANSS Almanac Model IE

GANSSAlmanacModel ::= SEQUENCE {

weekNumber INTEGER (0 .. 255),

toa INTEGER (0 .. 255) OPTIONAL,

ioda INTEGER (0 .. 3) OPTIONAL,

ganssAlmanacList SeqOfGANSSAlmanacElement

}

SeqOfGANSSAlmanacElement ::= SEQUENCE (SIZE(1 .. 36)) OF GANSSAlmanacElement

— GANSS Almanac Model

GANSSAlmanacElement ::= CHOICE {

keplerianAlmanacSet Almanac-KeplerianSet, — Model-1

…,

keplerianNAVAlmanac Almanac-NAVKeplerianSet, — Model-2

keplerianReducedAlmanac Almanac-ReducedKeplerianSet, — Model-3

keplerianMidiAlmanac Almanac-MidiAlmanacSet, — Model-4

keplerianGLONASS Almanac-GlonassAlmanacSet, — Model-5

ecefSBASAlmanac Almanac-ECEFsbasAlmanacSet, — Model-6

keplerianBDSAlmanac-r12 Almanac-BDSAlmanacSet-r12 — Model-7

}

— Almanac parameters according to Keplerian parameters

Almanac-KeplerianSet ::= SEQUENCE {

svID SVID,

kepAlmanacE INTEGER (0 .. 2047),

kepAlmanacDeltaI INTEGER (-1024 .. 1023),

kepAlmanacOmegaDot INTEGER (-1024 .. 1023),

kepSVStatusINAV BIT STRING (SIZE (4)),

kepSVStatusFNAV BIT STRING (SIZE (2)) OPTIONAL,

kepAlmanacAPowerHalf INTEGER (-4096..4095),

kepAlmanacOmega0 INTEGER (-32768 .. 32767),

kepAlmanacW INTEGER (-32768 .. 32767),

kepAlmanacM0 INTEGER (-32768 .. 32767),

kepAlmanacAF0 INTEGER (-32768..32767),

kepAlmanacAF1 INTEGER (-4096..4095)

}

Almanac-NAVKeplerianSet ::= SEQUENCE {

svID SVID,

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)

}

Almanac-ReducedKeplerianSet ::= SEQUENCE {

svID SVID,

redAlmDeltaA INTEGER (-128..127),

redAlmOmega0 INTEGER (-64..63),

redAlmPhi0 INTEGER (-64..63),

redAlmL1Health BOOLEAN,

redAlmL2Health BOOLEAN,

redAlmL5Health BOOLEAN

}

Almanac-MidiAlmanacSet ::= SEQUENCE {

svID SVID,

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

}

Almanac-GlonassAlmanacSet ::= SEQUENCE {

gloAlmNA 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

}

Almanac-ECEFsbasAlmanacSet ::= SEQUENCE {

sbasAlmDataID INTEGER (0..3),

svID SVID,

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)

}

Almanac-BDSAlmanacSet-r12 ::= SEQUENCE {

svID SVID,

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

bdsAlmToa-r12 INTEGER (0..255) OPTIONAL,

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

–This field is mandatory present if SV-ID is between 0 and 29; otherwise it is not present.

bdsSvHealth-r12 BIT STRING (SIZE(9)) OPTIONAL

}

— GANSS Almanac Model Rel-10 Extension

GANSSAlmanacModel-R10-Ext ::= SEQUENCE {

completeAlmanacProvided BOOLEAN — TRUE means that complete Almanac is provided

}

— GANSS Almanac Model Rel-12 Extension

GANSSAlmanacModel-R12-Ext ::= SEQUENCE {

— Either toa in GANSSAlmanacModel or toa-ext shall be present if GANSS-ID indicates Galileo

toa-ext INTEGER (256..1023) OPTIONAL,

— Either ioda in GANSSAlmanacModel or ioda-ext shall be present if GANSS-ID indicates Galileo

ioda-ext INTEGER (4..15) OPTIONAL

}

— GANSS Universal Time Coordinate Model (Model-1)

GANSSUTCModel ::= SEQUENCE {

ganssUtcA1 INTEGER (-8388608..8388607),

ganssUtcA0 INTEGER (-2147483648..2147483647),

ganssUtcTot INTEGER (0..255),

ganssUtcWNt INTEGER (0..255),

ganssUtcDeltaTls INTEGER (-128..127),

ganssUtcWNlsf INTEGER (0..255),

ganssUtcDN INTEGER (-128..127),

ganssUtcDeltaTlsf INTEGER (-128..127)

}

–GANSS Ephemeris Extension

GANSSEphemerisExtension ::= SEQUENCE {

ganssEphemerisHeader GANSSEphemerisExtensionHeader OPTIONAL,

ganssReferenceSet SeqOfGANSSRefOrbit OPTIONAL,

ganssephemerisDeltasMatrix GANSSEphemerisDeltaMatrix OPTIONAL,

}

— The ganssEphemerisHeader and the ganssReferenceSet are mandatory only once in the delivery of the

— GANSS Ephemeris Extension. The ganssReferenceSet shall include all healthy satellite vehicles

— at the time of message construction.

GANSSEphemerisExtensionHeader ::= SEQUENCE {

timeAtEstimation GANSSEphemerisExtensionTime,

validityPeriod INTEGER(1..8),

— The validity period, represented in hours, is the validity period of each individual ephemeris

— delta payload

ephemerisExtensionDuration INTEGER(1..512),

— If the ephemerisExtensionDuration does not match the request duration made by the MS, the MS

— should regard the provided ephemerisExtensionDuration as the limit of the SMLC ephemeris

— extension capability at this time.

}

GANSSEphemerisExtensionTime ::= SEQUENCE {

ganssEphExtDay INTEGER(0..8191),

ganssEphExtTOD GANSSTOD,

}

— Reference Nav Model for Ephepmeris Extension

ReferenceNavModel ::= SEQUENCE {

keplerToe INTEGER (0..37799),

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)

}

SeqOfGANSSRefOrbit ::= SEQUENCE (SIZE(1..32)) OF GANSSReferenceOrbit

–The number of reference orbits can be read from number of elements in this sequence

GANSSReferenceOrbit ::= SEQUENCE {

svID SVID,

ganssOrbitModel ReferenceNavModel,

ganssClockModel GANSSClockModel,

}

GANSSEphemerisDeltaMatrix ::= SEQUENCE (SIZE(1 .. 128)) OF GANSSEphemerisDeltaEpoch

GANSSEphemerisDeltaEpoch ::= SEQUENCE {

ganssDeltaEpochHeader GANSSDeltaEpochHeader OPTIONAL,

ganssDeltaElementList GANSSDeltaElementList,

}

— Each GANSSDeltaEpoch element contains a header and the delta values for a particular time window

— for all PRN’s.

GANSSDeltaEpochHeader ::= SEQUENCE {

validityPeriod INTEGER(1..8) OPTIONAL,

ephemerisDeltaSizes GANSSEphemerisDeltaBitSizes OPTIONAL,

ephemerisDeltaScales GANSSEphemerisDeltaScales OPTIONAL,

}

— In each of the GANSSDeltaEpochs, if the optional element, validityPeriod is not included, the

— value in GANSSEphemerisExtensionHeader shall be used. If the optional elements

— ephemerisDeltaSizes or ephemerisDeltaScales are not included, then the default ephemeris delta

— sizes and scales shall be used. The default sizes and scales are found in the annex in the

— table 55.11.

GANSSDeltaElementList ::= SEQUENCE (SIZE(1 .. 32)) OF OCTET STRING(SIZE (1..49))

— Each octet string element in GANSSDeltaElementList corresponds to one PRN within one epoch

— Table 55.11 of the annex shows the organization of the delta ephemeris octet string.

— Decoding of each of the octet strings is accomplished by consulting the ephemerisDeltaSizes

— table to learn the length and order of each of the parameters in the ephemerisDelta payload.

— Post decode scaling is accomplished by consulting the ephemerisDeltaScales table to learn the

— scale factors to apply to the terms in the delta ephemeris.

— Ephemeris Delta Bit Sizes.

GANSSEphemerisDeltaBitSizes ::= SEQUENCE {

— This structure defines the order and sizes of the fields in the GANSSDeltaEpoch octet string

— seqNum and svID are the first two elements of each GANSS Ephemeris Delta Element Structure

— seqNum is always 7 bits, and svID is always 6 bits long and are thus not included in

— the GANSSEphemerisDeltaBitSizes table. The value of seqNum indicates the GANSSDeltaEpoch number

— The Ephemeris delta element payload mimics the bitsize table, but also includes the svID and

— seqNum as the first two elements (in that order),in each block.

bitsize-delta-omega INTEGER(1..32),

bitsize-delta-deltaN INTEGER(1..16),

bitsize-delta-m0 INTEGER(1..32),

bitsize-delta-omegadot INTEGER(1..24),

bitsize-delta-e INTEGER(1..32),

bitsize-delta-idot INTEGER(1..14),

bitsize-delta-sqrtA INTEGER(1..32),

bitsize-delta-i0 INTEGER(1..32),

bitsize-delta-omega0 INTEGER(1..32),

bitsize-delta-crs INTEGER(1..16),

bitsize-delta-cis INTEGER(1..16),

bitsize-delta-cus INTEGER(1..16),

bitsize-delta-crc INTEGER(1..16),

bitsize-delta-cic INTEGER(1..16),

bitsize-delta-cuc INTEGER(1..16),

bitsize-delta-tgd1 INTEGER(1..10),

bitsize-delta-tgd2 INTEGER(1..10),

}

GANSSEphemerisDeltaScales ::= SEQUENCE {

scale-delta-omega INTEGER(-16..15),

scale-delta-deltaN INTEGER(-16..15),

scale-delta-m0 INTEGER(-16..15),

scale-delta-omegadot INTEGER(-16..15),

scale-delta-e INTEGER(-16..15),

scale-delta-idot INTEGER(-16..15),

scale-delta-sqrtA INTEGER(-16..15),

scale-delta-i0 INTEGER(-16..15),

scale-delta-omega0 INTEGER(-16..15),

scale-delta-crs INTEGER(-16..15),

scale-delta-cis INTEGER(-16..15),

scale-delta-cus INTEGER(-16..15),

scale-delta-crc INTEGER(-16..15),

scale-delta-cic INTEGER(-16..15),

scale-delta-cuc INTEGER(-16..15),

scale-delta-tgd1 INTEGER(-16..15),

scale-delta-tgd2 INTEGER(-16..15),

}

— GANSS Ephemeris Extension Check

GANSSEphemerisExtensionCheck ::= SEQUENCE {

ganssBeginTime GANSSEphemerisExtensionTime,

ganssEndTime GANSSEphemerisExtensionTime,

ganssSatEventsInfo GANSSSatEventsInfo,

}

GANSSSatEventsInfo ::= SEQUENCE {

eventOccured BIT STRING (SIZE (64)),

futureEventNoted BIT STRING (SIZE (64)),

}

— If a bit is clear in the eventOccured field it indicates that no known errors have occured

— between the current time and the ganssBeginTime nor is a maneuver planned for the next sixty

— minutes.

— If a bit is set in the futureEventNoted field it indicates that a maneuver is planned during the

— time period between current time plus sixty minutes and the ganssEndTime

— GANSS Additional Universal Time Coordinate Model

GANSSAddUTCModel ::= CHOICE {

utcModel2 UTCmodelSet2,

utcModel3 UTCmodelSet3,

utcModel4 UTCmodelSet4,

… ,

utcModel5-r12 UTCmodelSet5-r12

}

UTCmodelSet2 ::= 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)

}

UTCmodelSet3 ::= SEQUENCE {

nA INTEGER (1..1461),

tauC INTEGER (-2147483648..2147483647),

b1 INTEGER (-1024..1023) OPTIONAL,

b2 INTEGER (-512..511) OPTIONAL,

kp BIT STRING (SIZE(2)) OPTIONAL

}

UTCmodelSet4 ::= 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) — coding according to annex

}

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

}

— GANSS Auxiliary Information

GANSSAuxiliaryInformation ::= CHOICE{

ganssID1 GANSS-ID1, — This choice may only be present if GANSS ID indicates Modernized GPS

ganssID3 GANSS-ID3, — This choice may only be present if GANSS ID indicates GLONASS

}

GANSS-ID1 ::= SEQUENCE (SIZE(1..64)) OF GANSS-ID1-element

GANSS-ID1-element ::= SEQUENCE {

svID SVID,

signalsAvailable GANSSSignals,

}

GANSS-ID3 ::= SEQUENCE (SIZE(1..64)) OF GANSS-ID3-element

GANSS-ID3-element ::= SEQUENCE {

svID SVID,

signalsAvailable GANSSSignals,

channelNumber INTEGER (-7..13),

}

— DGANSS Corrections Validity Period:

— This element may only be included if GANSSDiffCorrections IE is included in

— GANSSGenericAssistDataElement element.

— GANSSDiffCorrectionsValidityPeriod shall contain the same number of elements as the

— SeqOfSgnTypeElement included in GANSSDiffCorrections IE

GANSSDiffCorrectionsValidityPeriod ::= SEQUENCE (SIZE (1..3)) OF DGANSSExtensionSgnTypeElement

DGANSSExtensionSgnTypeElement ::= SEQUENCE {

ganssSignalID GANSSSignalID, — signal type identity

dganssExtensionSgnList SeqOfDGANSSExtensionSgnElement

}

— SeqOfDGANSSExtensionSgnElement shall contain the same number of elements as the

— SeqOfDGANSSSgnElement included in GANSSDiffCorrections IE

SeqOfDGANSSExtensionSgnElement ::= SEQUENCE (SIZE (1..16)) OF DGANSSExtensionSgnElement

DGANSSExtensionSgnElement ::= SEQUENCE {

svID SVID, — Satellite identity

udreGrowthRate INTEGER(0..7), — coding according to annex

udreValidityTime INTEGER(0..7), — coding according to annex

}

–Required Measurement Request Response Time, range is 1 to 128 seconds.

RequiredResponseTime ::= INTEGER (1..128)

— Control header for additional GPS assistance data

Add-GPS-AssistData ::= SEQUENCE {

add-GPS-controlHeader Add-GPS-ControlHeader

}

Add-GPS-ControlHeader ::= SEQUENCE {

gpsEphemerisExtension GPSEphemerisExtension OPTIONAL,

gpsEphemerisExtensionCheck GPSEphemerisExtensionCheck OPTIONAL,

… ,

dgpsCorrectionsValidityPeriod DGPSCorrectionsValidityPeriod OPTIONAL,

— If ReferenceTime is included in ControlHeader, GPSReferenceTime-R10-Ext

— shall also be included.

gpsReferenceTime-R10-Ext GPSReferenceTime-R10-Ext OPTIONAL,

— If AcquisAssist is included in ControlHeader, GPSAcquisAssist-R10-Ext

— shall also be included.

gpsAcquisAssist-R10-Ext GPSAcquisAssist-R10-Ext OPTIONAL,

— If Almanac is included in ControlHeader, GPSAlmanac-R10-Ext

— shall also be included.

gpsAlmanac-R10-Ext GPSAlmanac-R10-Ext OPTIONAL,

gpsAcquisAssist-R12-Ext GPSAcquisAssist-R12-Ext OPTIONAL

}

GPSClockModel ::= SEQUENCE {

af2 INTEGER (-128..127),

af1 INTEGER (-32768..32767),

af0 INTEGER (-2097152..2097151),

tgd INTEGER (-128..127)

}

–GPS Ephemeris Extension

GPSEphemerisExtension ::= SEQUENCE {

gpsEphemerisHeader GPSEphemerisExtensionHeader OPTIONAL,

gpsReferenceSet SeqOfGPSRefOrbit OPTIONAL,

gpsephemerisDeltaMatrix GPSEphemerisDeltaMatrix OPTIONAL,

}

— The gpsEphemerisHeader and the gpsReferenceSet are mandatory only once in the delivery of the

— GPS Ephemeris Extension. The gpsReferenceSet shall include all healthy satellite vehicles at the

— time of message construction

— The SMLC is required to deliver the gpsReferenceSet for all healthy satellite vehicles

— at the time of message construction.

GPSEphemerisExtensionHeader ::= SEQUENCE {

timeofEstimation GPSEphemerisExtensionTime,

validityPeriod INTEGER(1..8),

— The validity period, represented in hours is the validity period of each individual ephemeris

— delta payload

ephemerisExtensionDuration INTEGER(1..512),

— If the ephemerisExtensionDuration does not match the request duration made by the MS, the MS

— should regard the provided ephemerisExtensionDuration as the limit of the SMLC ephemeris

— extension capability at this time.

}

GPSEphemerisExtensionTime ::= SEQUENCE {

gpsWeek GPSWeek,

gpsTOW INTEGER (0..604799),

}

SeqOfGPSRefOrbit ::= SEQUENCE (SIZE(1..32)) OF GPSReferenceOrbit

–The number of reference orbits can be read from number of elements in this sequence

GPSReferenceOrbit ::= SEQUENCE {

svID SVID,

gpsOrbitModel ReferenceNavModel,

gpsClockModel GPSClockModel,

}

GPSEphemerisDeltaMatrix ::= SEQUENCE (SIZE(1 .. 128)) OF GPSEphemerisDeltaEpoch

GPSEphemerisDeltaEpoch ::= SEQUENCE {

gpsDeltaEpochHeader GPSDeltaEpochHeader OPTIONAL,

gpsDeltaElementList GPSDeltaElementList,

}

— Each GPSDeltaEpoch element contains a header and the delta values for a particular time window

— for all PRN’s.

GPSDeltaEpochHeader ::= SEQUENCE {

validityPeriod INTEGER(1..8) OPTIONAL,

ephemerisDeltaSizes GPSEphemerisDeltaBitSizes OPTIONAL,

ephemerisDeltaScales GPSEphemerisDeltaScales OPTIONAL,

}

— In each of the GPSDeltaEpochs, if the optional element validityPeriod is not included,

— the value in GPSEphemerisExtensionHeader shall be used. if the optional elements

— ephemerisDeltaSizes or ephemerisDeltaScales are not included, then the default ephemeris delta

— sizes and scales shall be used. The default sizes and scales are found in the annex in section

— A.29.m

GPSDeltaElementList ::= SEQUENCE (SIZE(1 .. 32)) OF OCTET STRING(SIZE (1..47))

— Each octet string element in GPSDeltaElementList corresponds to one PRN within one epoch

— Table A.29.m of the annex shows the organization of the delta ephemeris octet string.

— Decoding of each of the octet strings is accomplished by consulting the ephemerisDeltaSizes

— table to learn the length and order of each of the parameters in the ephemerisDelta payload

— Post decode scaling is accomplished by consulting the ephemerisDeltaScales table to learn the.

— scale factors to apply to the terms in the delta ephemeris

— Ephemeris Delta Bit Sizes.

GPSEphemerisDeltaBitSizes ::= SEQUENCE {

— This structure defines the order and sizes of the fields in the GPSsDeltaEpoch octet string

— seqNum and svID are the first two elements of each GPS Ephemeris Delta Element Structure

— seqNum is always 7 bits, and svID is always 5 bits long and are thus not included in

— the GPSEphemerisDeltaBitSizes table. seqNum indicates the GPSDeltaEpoch number.

— The Ephemeris delta element payload mimics the bitsize table, but also includes the svID and

— seqNum as the first two elements (in that order),in each block.

bitsize-delta-omega INTEGER(1..32),

bitsize-delta-deltaN INTEGER(1..16),

bitsize-delta-m0 INTEGER(1..32),

bitsize-delta-omegadot INTEGER(1..24),

bitsize-delta-e INTEGER(1..32),

bitsize-delta-idot INTEGER(1..14),

bitsize-delta-sqrtA INTEGER(1..32),

bitsize-delta-i0 INTEGER(1..32),

bitsize-delta-omega0 INTEGER(1..32),

bitsize-delta-crs INTEGER(1..16),

bitsize-delta-cis INTEGER(1..16),

bitsize-delta-cus INTEGER(1..16),

bitsize-delta-crc INTEGER(1..16),

bitsize-delta-cic INTEGER(1..16),

bitsize-delta-cuc INTEGER(1..16),

bitsize-delta-tgd INTEGER(1..10),

}

GPSEphemerisDeltaScales ::= SEQUENCE {

scale-delta-omega INTEGER(-16..15),

scale-delta-deltaN INTEGER(-16..15),

scale-delta-m0 INTEGER(-16..15),

scale-delta-omegadot INTEGER(-16..15),

scale-delta-e INTEGER(-16..15),

scale-delta-idot INTEGER(-16..15),

scale-delta-sqrtA INTEGER(-16..15),

scale-delta-i0 INTEGER(-16..15),

scale-delta-omega0 INTEGER(-16..15),

scale-delta-crs INTEGER(-16..15),

scale-delta-cis INTEGER(-16..15),

scale-delta-cus INTEGER(-16..15),

scale-delta-crc INTEGER(-16..15),

scale-delta-cic INTEGER(-16..15),

scale-delta-cuc INTEGER(-16..15),

scale-delta-tgd INTEGER(-16..15),

}

GPSEphemerisExtensionCheck ::= SEQUENCE {

gpsBeginTime GPSEphemerisExtensionTime,

gpsEndTime GPSEphemerisExtensionTime,

gpsSatEventsInfo GPSSatEventsInfo,

}

GPSSatEventsInfo ::= SEQUENCE {

eventOccured BIT STRING (SIZE (32)),

futureEventNoted BIT STRING (SIZE (32)),

}

— If a bit is clear in the eventOccured field it indicates that no known errors have occured since

— the gpsBeginTime nor is a maneuver planned for the next sixty minutes.

— If a bit is set in the futureEventNoted field it indicates that a maneuver is planned during the

— time period between current time plus sixty minutes and gpsEndTime

— DGPS Corrections Validity Period:

— This element may only be included if DGPSCorrections IE is included in ControlHeader element.

— DGPSCorrectionsValidityPeriod shall contain the same number of elements as the SeqOfSatElement

— included in DGPSCorrections IE

DGPSCorrectionsValidityPeriod ::= SEQUENCE (SIZE (1..16)) OF DGPSExtensionSatElement

DGPSExtensionSatElement ::= SEQUENCE {

satelliteID SatelliteID,

udreGrowthRate INTEGER(0..7), — coding according to annex

udreValidityTime INTEGER(0..7), — coding according to annex

}

— GPS Reference Time Rel-10 Extension:

GPSReferenceTime-R10-Ext ::= SEQUENCE {

gpsWeekCycleNumber INTEGER(0..7) — coding according to annex

}

— GPS Acquisition Assistance Rel-10 Extension:

— GPSAcquisAssist-R10-Ext shall contain the same number of elements as the SeqOfAcquisElement

— included in AcquisAssist IE

GPSAcquisAssist-R10-Ext ::= SEQUENCE(SIZE (1..16)) OF GPSAcquisAssist-R10-Ext-Element

GPSAcquisAssist-R10-Ext-Element::= SEQUENCE {

satelliteID SatelliteID,

azimuthLSB INTEGER(0..15),

elevationLSB INTEGER(0..15)

}

— GPS Acquisition Assistance Rel-12 Extension:

GPSAcquisAssist-R12-Ext ::= SEQUENCE {

confidence INTEGER (0..100) OPTIONAL,

acquisList SeqOfGPSAcquisAssist-R12-Ext OPTIONAL

}

SeqOfGPSAcquisAssist-R12-Ext ::= SEQUENCE (SIZE(1..16)) OF GPSAcquisAssist-R12-Ext-Element

GPSAcquisAssist-R12-Ext-Element ::= SEQUENCE {

satelliteID SatelliteID,

dopplerUncertaintyExt ENUMERATED { d300,

d400,

d500,

d600,

noInformation, …}

}

— GPS Almanac Rel-10 Extension:

GPSAlmanac-R10-Ext ::= SEQUENCE {

completeAlmanacProvided BOOLEAN — TRUE means that complete Almanac is provided

}

Rel-7-MsrPosition-Rsp-Extension ::= SEQUENCE {

velEstimate VelocityEstimate OPTIONAL,

— Horizontal Velocity

— Horizontal with Vertical Velocity

— Horizontal Velocity with Uncertainty

— Horizontal with Vertical Velocity and Uncertainty

ganssLocationInfo GANSSLocationInfo OPTIONAL,

ganssMeasureInfo GANSSMeasureInfo OPTIONAL,

— Further Release 7 extensions here

}

— GANSS Location Information contains location estimate, time stamp with uncertainty

— and optionally Reference Frame field

GANSSLocationInfo ::= SEQUENCE {

referenceFrame ReferenceFrame OPTIONAL, — Reference Frame Number

ganssTODm GANSSTODm OPTIONAL, — GNSS TOD modulo

ganssTODFrac INTEGER (0 .. 16384) OPTIONAL, — Coding according to Annex

— a value of 16384 shall not be encoded by the sender

— the receiver shall consider a value of 16384 to be invalid data

ganssTODUncertainty GANSSTODUncertainty OPTIONAL, — Coding according to Annex

ganssTimeID INTEGER (0 .. 7) OPTIONAL, — Coding according to Annex

fixType FixType,

posData PositionData,

stationaryIndication INTEGER(0 .. 1) OPTIONAL, — ‘0’ if moving or motion not

— known

— Possible shapes carried in posEstimate are

— ellipsoid point,

— ellipsoid point with uncertainty circle

— ellipsoid point with uncertainty ellipse

— ellipsoid point with altitude and uncertainty ellipsoid

posEstimate Ext-GeographicalInformation,

}

PositionData ::= BIT STRING {

e-otd (0),

gps (1),

galileo (2),

sbas (3),

modernizedGPS (4),

qzss (5),

glonass (6),

bds (7)} (SIZE (3..16))

— GANSS TOD modulo 1 hour

GANSSTODm ::= INTEGER (0 .. 3599999)

ReferenceFrame ::= SEQUENCE {

referenceFN INTEGER (0 .. 65535),

— Note that applicable range for referenceFN is 0 – 42431

referenceFNMSB INTEGER (0 .. 63) OPTIONAL — MSB of Reference Frame Number

}

— GANSS Measurement Information

GANSSMeasureInfo ::= SEQUENCE {

— Measurement info elements

ganssMsrSetList SeqOfGANSS-MsrSetElement

}

SeqOfGANSS-MsrSetElement ::= SEQUENCE (SIZE(1..3)) OF GANSS-MsrSetElement

— GANSS measurement information 1-3 times in a message

GANSS-MsrSetElement ::= SEQUENCE {

referenceFrame ReferenceFrame OPTIONAL, — Reference Frame Number

— if ganssTODm is included, it is the GNSS specific system time of the GANSS reported

— first in ganss-SgnTypeList. If GPS Measurement Information element is not included in

— a Measure Position Response component, this field shall be present.

ganssTODm GANSSTODm OPTIONAL, — GANSS TOD modulo 1 hour

deltaGANSSTOD INTEGER (0 .. 127) OPTIONAL,

ganssTODUncertainty GANSSTODUncertainty OPTIONAL, — Coding according to Annex

–N_GANSS can be read from number of elements of SeqOfGANSS-MsrElement

ganss-MsrElementList SeqOfGANSS-MsrElement

}

SeqOfGANSS-MsrElement ::= SEQUENCE (SIZE(1..8)) OF GANSS-MsrElement

GANSS-MsrElement ::= SEQUENCE {

ganssID INTEGER (0..7) OPTIONAL, –Absence means Galileo

ganss-SgnTypeList SeqOfGANSS-SgnTypeElement

}

— Measurements can be returned up to 8 different signal types

— N_SGN_TYPE can be read from number of elements of SeqOfGANSS-SgnTypeElement

— Reporting of multiple signal types as defined in A.2.2.4g

SeqOfGANSS-SgnTypeElement ::= SEQUENCE (SIZE(1..8)) OF GANSS-SgnTypeElement

GANSS-SgnTypeElement ::= SEQUENCE {

ganssSignalID GANSSSignalID, — Coding according to Annex

ganssCodePhaseAmbiguity INTEGER (0 .. 127) OPTIONAL,

–N_SGN can be read from number of elements of SeqOfGANSS-SgnElement

ganss-SgnList SeqOfGANSS-SgnElement,

}

— Up to 16 Measurements can be returned per signal type

SeqOfGANSS-SgnElement ::= SEQUENCE (SIZE(1..16)) OF GANSS-SgnElement

GANSS-SgnElement ::= SEQUENCE {

svID SVID,

cNo INTEGER (0 .. 63),

mpathDet MpathIndic, — Coding according to Annex

carrierQualityInd INTEGER (0 .. 3) OPTIONAL, — Coding according to Annex

codePhase INTEGER (0 .. 2097151),

integerCodePhase INTEGER (0 .. 127) OPTIONAL,

codePhaseRMSError INTEGER (0..63), — Coding according to Annex

doppler INTEGER (-32768 .. 32767) OPTIONAL,

adr INTEGER (0 .. 33554431) OPTIONAL

}

Rel7-AssistanceData-Extension ::= SEQUENCE {

ganss-AssistData GANSS-AssistData OPTIONAL,

ganssCarrierPhaseMeasurementRequest NULL OPTIONAL,

ganssTODGSMTimeAssociationMeasurementRequest NULL OPTIONAL,

add-GPS-AssistData Add-GPS-AssistData OPTIONAL,

— Possibly more extensions for Release 7 here

}

BDS-DiffCorrections-r12 ::= SEQUENCE {

dbds-RefTime-r12 INTEGER (0..3599),

— N_SGN_TYPE can be read from number of elements of bds-SgnTypeList-r12

bds-SgnTypeList-r12 BDS-SgnTypeList-r12,

}

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

BDS-SgnTypeElement-r12 ::= SEQUENCE {

ganssSignalID GANSSSignalID OPTIONAL,

— N_SAT can be read from number of elements of dbds-CorrectionList-r12

dbds-CorrectionList-r12 DBDS-CorrectionList-r12,

}

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

DBDS-CorrectionElement-r12 ::= SEQUENCE {

svID SVID,

bds-UDREI-r12 INTEGER (0..15),

bds-RURAI-r12 INTEGER (0..15),

bds-ECC-DeltaT-r12 INTEGER (-4096..4095),

}

BDS-GridModelParameter-r12 ::= SEQUENCE {

bds-RefTime-r12 INTEGER (0..3599),

–N_IGP can be read from number of elements of GridIonList-r12

gridIonList-r12 GridIonList-r12,

}

–Up to 16 instances are used in this version of the specification. The values 17 to 320 are reserved for future use.

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

}

— Rel-7 Positioning Capability parameters here

PosCapabilities ::= SEQUENCE {

— nonGANSSpositionMethods shall be included if and only if any

— of the non-GANSS methods is supported.

nonGANSSpositionMethods NonGANSSPositionMethods OPTIONAL,

— gANSSpositionMethods shall be included if and only if any of the GANSS methods is supported.

gANSSPositionMethods GANSSPositionMethods OPTIONAL,

— multipleMeasurementSets shall be present if and only if ‘multiple sets’ is supported

— for any of the positioning methods

multipleMeasurementSets MultipleMeasurementSets OPTIONAL,

}

NonGANSSPositionMethods ::= BIT STRING {

msAssistedEOTD (0),

msBasedEOTD (1),

msAssistedGPS (2), — If this bit is set, gpsAssistance in AssistanceSupported IE

— shall be present

msBasedGPS (3), — If this bit is set, gpsAssistance in AssistanceSupported IE

— shall be present

standaloneGPS (4) } (SIZE (1..16))

GANSSPositionMethods ::= SEQUENCE (SIZE(1..16)) OF GANSSPositionMethod

GANSSPositionMethod ::= SEQUENCE {

ganssID INTEGER (0..7) OPTIONAL, –Absence means Galileo

— gANSSPositioningMethodTypes may be present for PosCapability-Req

— and shall be present for PosCapability-Rsp

gANSSPositioningMethodTypes GANSSPositioningMethodTypes OPTIONAL,

gANSSSignals GANSSSignals,

… ,

— sbasID shall be present if and only if ganssID indicates SBAS

sbasID SBASID OPTIONAL

}

GANSSPositioningMethodTypes ::= BIT STRING {

msAssisted (0), — If this bit is set, gANSSAssistanceSet in AssistanceSupported IE

— shall be present.

msBased (1), — If this bit is set, gANSSAssistanceSet in AssistanceSupported IE

— shall be present.

standalone (2) } (SIZE (1..8))

— indicates MS support for particular GANSS signals and frequencies

GANSSSignals ::= BIT STRING {

signal1 (0),

signal2 (1),

signal3 (2),

signal4 (3),

signal5 (4),

signal6 (5),

signal7 (6),

signal8 (7) } (SIZE (1..8))

SBASID ::= BIT STRING {

waas (0),

egnos (1),

masas (2),

gagan (3) } (SIZE (1..8))

— indicates MS support of multiple measurement sets for MS assisted position methods

MultipleMeasurementSets ::= BIT STRING {

eotd (0),

gps (1),

ganss (2) } (SIZE (1..8))

— indicates MS support of different types of assistance data

AssistanceSupported ::= SEQUENCE {

gpsAssistance GPSAssistance OPTIONAL,

gANSSAssistanceSet GANSSAssistanceSet OPTIONAL,

… ,

— gANSSAdditionalAssistanceChoices shall be present if the MS supports other than native models

gANSSAdditionalAssistanceChoices GANSSAdditionalAssistanceChoices OPTIONAL

}

— GPS assistance data supported

GPSAssistance ::= BIT STRING {

almanac (0),

uTCmodel (1),

ionosphericModel (2),

navigationmodel (3),

dGPScorrections (4),

referenceLocation (5),

referenceTime (6),

acquisitionAssistance (7),

realTimeIntegrity (8),

ephemerisExtension (9),

ephemerisExtensionCheck (10),

gPSAcquisAssist-R12-Ext (11) } (SIZE (1..16))

— GANSS assistance data supported

GANSSAssistanceSet ::= SEQUENCE {

commonGANSSAssistance CommonGANSSAssistance,

specificGANSSAssistance SpecificGANSSAssistance,

}

— Common GANSS assistance data supported

CommonGANSSAssistance ::= BIT STRING {

referenceTime (0),

referenceLocation (1),

ionosphericModel (3),

addIonosphericModel (4),

earthOrientationParam (5) } (SIZE (1..8))

SpecificGANSSAssistance ::= SEQUENCE (SIZE(1..16)) OF GANSSAssistanceForOneGANSS

— assistance data supported for a particular GANSS system

GANSSAssistanceForOneGANSS ::= SEQUENCE {

ganssID INTEGER (0..7) OPTIONAL, –Absence means Galileo

gANSSAssistance GANSSAssistance,

}

— specific GANSS assistance data supported

GANSSAssistance ::= BIT STRING {

realTimeIntegrity (0),

differentialCorrections (1),

almanac (2),

referenceMeasurementInformation (3),

navigationModel (4),

timeModelGNSS-UTC (5),

timeModelGNSS-GNSS (6),

databitassistance (7),

ephemerisExtension (8),

ephemerisExtensionCheck (9),

addUTCmodel (10),

auxiliaryInformation (11),

gANSSRefMeasurementAssist-R12-Ext (12),

bdsDifferentialCorrections-r12 (13),

bdsGridModel-r12 (14) } (SIZE (1..16))

GANSSAdditionalAssistanceChoices ::= SEQUENCE (SIZE(1..16)) OF GANSSAdditionalAssistanceChoicesForOneGANSS

GANSSAdditionalAssistanceChoicesForOneGANSS ::= SEQUENCE {

ganssID INTEGER (0..7) OPTIONAL, –Absence means Galileo

ganssClockModelChoice GANSSModelID OPTIONAL,

gannsOrbitModelChoice GANSSModelID OPTIONAL,

ganssAlmanacModelChoice GANSSModelID OPTIONAL,

ganssAdditionalUTCModelChoice GANSSModelID OPTIONAL,

}

GANSSModelID ::= BIT STRING {

model1 (0),

model2 (1),

model3 (2),

model4 (3),

model5 (4),

model6 (5),

model7 (6),

model8 (7) } (SIZE (1..8))

— indicates assistance data that may be needed by the MS

— These elements are coded as defined in TS 49.031 with the exceptions defined in section A.8.2.3

AssistanceNeeded ::= SEQUENCE {

gpsAssistanceData GPSAssistanceData OPTIONAL,

ganssAssistanceData GANSSAssistanceData OPTIONAL,

}

CellSets ::= SEQUENCE {

cellSet1 CellSet, — set 1

cellSet2 CellSet OPTIONAL, — set 2

cellSet3 CellSet OPTIONAL, — set 3

cellSet4 CellSet OPTIONAL, — set 4

cellSet5 CellSet OPTIONAL, — set 5

cellSet6 CellSet OPTIONAL, — set 6

cellSet7 CellSet OPTIONAL, — set 7

cellSet8 CellSet OPTIONAL — set 8

}

CellSet ::= SEQUENCE {

    cell1          CellInfo, — provides a GSM ARFCN value

    cell2          CellInfo      OPTIONAL, — provides a GSM ARFCN and BSIC value

    cell3          CellInfo      OPTIONAL, — provides a GSM ARFCN and BSIC value

    cell4          CellInfo      OPTIONAL, — provides a GSM ARFCN and BSIC value

cell5          CellInfo      OPTIONAL, — provides a GSM ARFCN and BSIC value

cell6          CellInfo      OPTIONAL — provides a GSM ARFCN and BSIC value

}

CellInfo ::= SEQUENCE {

bsic INTEGER (0..511),

arfcn INTEGER (0..1023) OPTIONAL

}

OTDMeasurementResults ::= SEQUENCE {

oTDMeasurementInfo1 OTDMeasurementInfo, — Measurement 1

oTDMeasurementInfo2 OTDMeasurementInfo OPTIONAL, — Measurement 2

oTDMeasurementInfo3 OTDMeasurementInfo OPTIONAL, — Measurement 3

oTDMeasurementInfo4 OTDMeasurementInfo OPTIONAL, — Measurement 4

oTDMeasurementInfo5 OTDMeasurementInfo OPTIONAL, — Measurement 5

oTDMeasurementInfo6 OTDMeasurementInfo OPTIONAL, — Measurement 6

oTDMeasurementInfo7 OTDMeasurementInfo OPTIONAL — Measurement 7

}

OTDMeasurementInfo ::= SEQUENCE

{

reportedCell CellType,

msSyncAccuracy INTEGER(0..15),

observedTimeDiff INTEGER(0..999)

}

CellType ::= CHOICE

{

configuredNeighbourCellIdx INTEGER(1..48), –The cell is part of assistance info

detectedNeighbourCell CellInfo –The cell is not part of assistance info

}

RXLEVMeasurementResults ::= SEQUENCE {

rxLEVMeasurementInfo1 RXLEVMeasurementInfo, –Rxlevel Measurement 1

rxLEVMeasurementInfo2 RXLEVMeasurementInfo OPTIONAL, –Rxlevel Measurement 2

rxLEVMeasurementInfo3 RXLEVMeasurementInfo OPTIONAL, –Rxlevel Measurement 3

rxLEVMeasurementInfo4 RXLEVMeasurementInfo OPTIONAL, –Rxlevel Measurement 4

rxLEVMeasurementInfo5 RXLEVMeasurementInfo OPTIONAL, –Rxlevel Measurement 5

rxLEVMeasurementInfo6 RXLEVMeasurementInfo OPTIONAL –Rxlevel Measurement 6

}

RXLEVMeasurementInfo ::= SEQUENCE {

reportedCell CellType,

rxLEV INTEGER(0..63)

}

MTA-Method ::= CHOICE {

rlc-Data-Block NULL,

access-Burst NULL,

extended-Access-Burst Extended-Access-Burst,

spare NULL

}

Random-ID-Set ::= SEQUENCE {

random-ID1 INTEGER (0..65535),

random-ID2 INTEGER (0..65535),

random-ID3 INTEGER (0..65535) OPTIONAL,

random-ID4 INTEGER (0..65535) OPTIONAL,

random-ID5 INTEGER (0..65535) OPTIONAL,

random-ID6 INTEGER (0..65535) OPTIONAL,

random-ID7 INTEGER (0..65535) OPTIONAL,

random-ID8 INTEGER (0..65535) OPTIONAL,

random-ID9 INTEGER (0..65535) OPTIONAL

}

Extended-Access-Burst ::= SEQUENCE {

short-BSS-ID INTEGER (0..7)

}

Co-Sited-Cells ::= SEQUENCE {

co-sited-cell-Set-Member1 Co-Sited-Cell-Set-Member OPTIONAL,

co-sited-cell-set-Member2 Co-Sited-Cell-Set-Member OPTIONAL,

co-sited-cell-set-Member3 Co-Sited-Cell-Set-Member OPTIONAL,

co-sited-cell-set-Member4 Co-Sited-Cell-Set-Member OPTIONAL,

co-sited-cell-set-Member5 Co-Sited-Cell-Set-Member OPTIONAL,

co-sited-cell-set-Member6 Co-Sited-Cell-Set-Member OPTIONAL

}

Co-Sited-Cell-Set-Member ::= SEQUENCE {

arfcn INTEGER (0..1023),

bsic-Info BSIC-Info

}

Cell-Set ::= SEQUENCE {

cell-Set-Member1 Cell-Set-Member,

cell-set-Member2 Cell-Set-Member OPTIONAL,

cell-set-Member3 Cell-Set-Member OPTIONAL,

cell-set-Member4 Cell-Set-Member OPTIONAL,

cell-set-Member5 Cell-Set-Member OPTIONAL,

cell-set-Member6 Cell-Set-Member OPTIONAL

}

Cell-Set-Member ::= SEQUENCE {

arfcn INTEGER (0..1023),

bsic-Info BSIC-Info,

short-ID INTEGER (0..255) OPTIONAL,

ec-cell-information CHOICE {

ec-RACH-Control-Parameters EC-RACH-Control-Parameters, — May be included for any member of

— a Cell-Set that supports EC-GSM-IoT (see sub-clause A.9).

default-ec-RACH-Control-Parameters NULL — Indicates a member uses the same ec-RACH-Control

— Parameters as any other member of the Cell-Set for which this information is provided.

},

peo-cell-information CHOICE {

rach-Control-Parameters RACH-Control-Parameters, — May be included for any member of

— a Cell-Set that supports PEO (see sub-clause A.9).

default-rach-Control-Parameters NULL — Indicates a member uses the same rach-Control

— Parameters as any other member of the Cell-Set for which this information is provided.

}

}

BSIC-Info ::= SEQUENCE {

radio-Frequency-Colour-Code INTEGER (0..7),

network-Colour-Code INTEGER (0..7),

base-station-Colour-Code INTEGER (0..7)

}

EC-RACH-Control-Parameters ::= SEQUENCE {

ec-BS-CC-CHANS INTEGER (0..3),

ec-RXLEV-ACCESS-MIN INTEGER (0..63),

ms-TXPWR-MAX-CCH INTEGER (0..31),

lb-MS-TXPWR-MAX-CCH INTEGER (0..31) OPTIONAL,

cell-SELECTION-RLA-MARGIN INTEGER (0..7) OPTIONAL,

dl-CC-Selection BOOLEAN,

bt-Threshold-DL INTEGER (0..31),
cc2-Range-DL INTEGER (0..31) OPTIONAL,

cc3-Range-DL INTEGER (0..31) OPTIONAL,

bt-Threshold-UL INTEGER (0..31),
cc2-Range-UL INTEGER (0..31) OPTIONAL,

cc3-Range-UL INTEGER (0..31) OPTIONAL,

cc4-Range-UL INTEGER (0..31) OPTIONAL,

bsPWR INTEGER (0..63),

dl-Signal-Strength-Step-Size INTEGER (0..3) OPTIONAL,

ec-Reduced-PDCH-Allocation BOOLEAN, 

ec-Max-Retrans INTEGER ,

sm INTEGER (0..3),

tm INTEGER (0..3),

access-Timeslots BOOLEAN,

alpha INTEGER (0..15) OPTIONAL,

t3168 INTEGER (0..7) OPTIONAL,

t3192 INTEGER (0..7) OPTIONAL,

t3226 INTEGER (0..7) OPTIONAL,

t3248 INTEGER (0..3),

mta-BITMAP MTA-BITMAP

}

RACH-Control-Parameters ::= SEQUENCE {

rxlev-ACCESS-MIN INTEGER (0..63),

ms-TXPWR-MAX-CCH INTEGER (0..31),

max-Retrans INTEGER (0..3),

tx-integer INTEGER (0..15),

mta-BITMAP MTA-BITMAP

}

MTA-BITMAP ::= SEQUENCE {

mta-RLC-Data-Block-method BOOLEAN,

mta-Access-Burst-method BOOLEAN,

mta-Extended-Access-Burst-method BOOLEAN,

mta-spare BOOLEAN

}

MTA-Security ::= CHOICE {

mta-access-security-method NULL,

bss-duplication-detection-method NULL,

spare NULL

}