RRLP-Messages -- { RRLP-messages } DEFINITIONS AUTOMATIC TAGS ::= BEGIN --IMPORTS -- MsrPosition-Req, MsrPosition-Rsp, AssistanceData, -- ProtocolError --FROM -- RRLP-Components -- { RRLP-Components } --; IMPORTS -- Ext-GeographicalInformation --FROM -- MAP-LCS-DataTypes { -- ccitt identified-organization (4) etsi (0) mobileDomain (0) -- gsm-Network (1) modules (3) map-LCS-DataTypes (25) version5 (5)} -- ExtensionContainer --FROM MAP-ExtensionDataTypes { -- ccitt identified-organization (4) etsi (0) mobileDomain (0) -- gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version4 (4)} ; -- local import -- maxExt-GeographicalInformation INTEGER ::= 20 Ext-GeographicalInformation ::= OCTET STRING (SIZE (1..20)) ExtensionContainer ::= OCTET STRING --ExtensionContainer ::= SEQUENCE { -- privateExtensionList [0] IMPLICIT PrivateExtensionList OPTIONAL, -- pcsExtensions [1] IMPLICIT PcsExtensions OPTIONAL, -- ... } --PrivateExtensionList ::= SEQUENCE OF PrivateExtension --PrivateExtension ::= SEQUENCE { -- extId OBJECT IDENTIFIER, MAP-EXTENSION .&extensionId -- extType ANY OPTIONAL { @extId } --} --PcsExtensions ::= SEQUENCE { -- ... -- } PDU ::= SEQUENCE { referenceNumber INTEGER (0..7), component RRLP-Component } RRLP-Component ::= CHOICE { msrPositionReq MsrPosition-Req, msrPositionRsp MsrPosition-Rsp, assistanceData AssistanceData, assistanceDataAck NULL, protocolError ProtocolError, ... } --RRLP-Components -- { RRLP-Components } -- ETSI TS 144 031 V6.8.0 --DEFINITIONS AUTOMATIC TAGS ::= --BEGIN --IMPORTS -- Ext-GeographicalInformation --FROM -- MAP-LCS-DataTypes { -- ccitt identified-organization (4) etsi (0) mobileDomain (0) -- gsm-Network (1) modules (3) map-LCS-DataTypes (25) version5 (5)} -- ExtensionContainer --FROM MAP-ExtensionDataTypes { -- ccitt identified-organization (4) etsi (0) mobileDomain (0) -- gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version4 (4)} -- ; -- Add here other ASN.1 definitions presented below -- in chapters 4 and 5. -- add this definition to RRLP-Components module -- Measurement Position request component MsrPosition-Req ::= SEQUENCE { positionInstruct PositionInstruct, referenceAssistData ReferenceAssistData OPTIONAL, msrAssistData MsrAssistData OPTIONAL, systemInfoAssistData SystemInfoAssistData OPTIONAL, gps-AssistData GPS-AssistData OPTIONAL, extensionContainer ExtensionContainer OPTIONAL, ..., -- Release 98 extension element rel98-MsrPosition-Req-extension Rel98-MsrPosition-Req-Extension OPTIONAL, -- Release 5 extension element rel5-MsrPosition-Req-extension Rel5-MsrPosition-Req-Extension OPTIONAL } -- add this defintion to RRLP-Components module -- Measurement Position response component MsrPosition-Rsp ::= SEQUENCE { multipleSets MultipleSets OPTIONAL, referenceIdentity ReferenceIdentity OPTIONAL, otd-MeasureInfo OTD-MeasureInfo OPTIONAL, locationInfo LocationInfo OPTIONAL, gps-MeasureInfo GPS-MeasureInfo OPTIONAL, locationError LocationError OPTIONAL, extensionContainer ExtensionContainer OPTIONAL, ..., -- Release extension here rel-98-MsrPosition-Rsp-Extension Rel-98-MsrPosition-Rsp-Extension OPTIONAL, rel-5-MsrPosition-Rsp-Extension Rel-5-MsrPosition-Rsp-Extension OPTIONAL -- rel-5-MsrPosition-Rsp-Extension and other possible future extensions -- are the only information elements that may be included in the 2nd -- MsrPosition-Rsp component when RRLP pseudo-segmentation is used } -- add this defintion to RRLP-Components module -- Assistance Data component AssistanceData ::= SEQUENCE { referenceAssistData ReferenceAssistData OPTIONAL, msrAssistData MsrAssistData OPTIONAL, systemInfoAssistData SystemInfoAssistData OPTIONAL, gps-AssistData GPS-AssistData OPTIONAL, moreAssDataToBeSent MoreAssDataToBeSent OPTIONAL, -- If not present, interpret as only -- Assistance Data component used to -- deliver entire set of assistance -- data. extensionContainer ExtensionContainer OPTIONAL, ..., -- Release extension here rel98-AssistanceData-Extension Rel98-AssistanceData-Extension OPTIONAL, rel5-AssistanceData-Extension Rel5-AssistanceData-Extension OPTIONAL } -- add this defintion to RRLP-Components module -- Protocol Error component ProtocolError ::= SEQUENCE { errorCause ErrorCodes, extensionContainer ExtensionContainer OPTIONAL, ..., -- Release extensions here rel-5-ProtocolError-Extension Rel-5-ProtocolError-Extension OPTIONAL } 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), ... } -- 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, ... } 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 -- 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), -- 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 } END