--- /dev/null
+-- RRLP-Components.asn
+--
+-- Taken from 3GPP TS 44.031 V7.4.0 (2007-03)
+-- http://www.3gpp.org/ftp/Specs/archive/44_series/44.031/44031-740.zip/44031-740.doc
+--
+-- 4 Components
+-- 5 Elements of Components
+--
+
+RRLP-Components
+-- { RRLP-Components }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ Ext-GeographicalInformation, VelocityEstimate
+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.
+
+-- 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,
+ -- Release 7 extension element
+rel7-MsrPosition-Req-extension Rel7-MsrPosition-Req-Extension OPTIONAL
+}
+
+-- 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
+ rel-7-MsrPosition-Rsp-Extension
+ Rel-7-MsrPosition-Rsp-Extension OPTIONAL
+}
+
+-- 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,
+ rel7-AssistanceData-Extension Rel7-AssistanceData-Extension OPTIONAL
+}
+
+-- Protocol Error component
+ProtocolError ::= SEQUENCE {
+ errorCause ErrorCodes,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ -- Release extensions here
+ rel-5-ProtocolError-Extension Rel-5-ProtocolError-Extension OPTIONAL
+}
+
+-- 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), -- 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,
+ ...
+ -- Further Release 7 extentions here
+}
+
+-- additional satellite systems may be added in future versions of the protocol
+GANSSPositioningMethod ::= BIT STRING {
+ gps (0),
+ galileo (1)} (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,
+ ...
+}
+
+-- 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,
+ ...
+}
+
+-- 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 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 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 .. 4095),
+ ai1 INTEGER (0 .. 4095),
+ ai2 INTEGER (0 .. 4095)
+}
+
+-- 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 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),
+ 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)
+
+-- 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 OPTIONAL, -- signal type identity
+ ganssStatusHealth INTEGER (0 .. 7),
+ -- N_SGN can be read from number of elements of dganssSgnList
+ dganssSgnList SeqOfDGANSSSgnElement
+}
+
+GANSSSignalID ::= INTEGER (0 .. 3) -- 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),
+ toeMSB INTEGER (0 .. 31) OPTIONAL, -- 5 MSB of toe and toc
+ eMSB INTEGER (0 .. 127) OPTIONAL,
+ sqrtAMBS INTEGER (0 .. 63) OPTIONAL,
+ ganssSatelliteList SeqOfGANSSSatelliteElement
+}
+
+SeqOfGANSSSatelliteElement ::= SEQUENCE (SIZE(1..32)) OF GANSSSatelliteElement
+
+GANSSSatelliteElement ::= SEQUENCE {
+ svID SVID,
+ svHealth INTEGER (-7 .. 13), -- Coding according to Annex
+ iod INTEGER (0 .. 1023), -- Coding according to Annex
+ ganssClockModel GANSSClockModel,
+ ganssOrbitModel GANSSOrbitModel,
+ ...
+}
+
+-- GANSS orbit model for the GNSS satellite according to the choice
+GANSSOrbitModel ::= CHOICE {
+ keplerianSet NavModel-KeplerianSet,
+ ...
+}
+
+-- Navigation model in Keplerian parameters
+NavModel-KeplerianSet ::= SEQUENCE {
+ keplerToeLSB INTEGER (0 .. 511), -- 9LSB are given in GANSSNavigationModel
+ keplerW INTEGER (-2147483648..2147483647),
+ keplerDeltaN INTEGER (-32768..32767),
+ keplerM0 INTEGER (-2147483648..2147483647),
+ keplerOmegaDot INTEGER (-8388608..8388607),
+ keplerELSB INTEGER (0..33554431),
+ keplerIDot INTEGER (-8192..8191),
+ keplerAPowerHalfLSB INTEGER (0.. 67108863),
+ 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)
+}
+
+-- GANSS clock model for the GNSS satellite according to the choice
+GANSSClockModel ::= CHOICE {
+ standardClockModelList SeqOfStandardClockModelElement,
+ ...
+}
+
+SeqOfStandardClockModelElement ::= SEQUENCE (SIZE(1..2)) OF StandardClockModelElement
+
+StandardClockModelElement ::= SEQUENCE {
+ stanClockTocLSB INTEGER (0 .. 511), -- 9LSB of time of clock
+ stanClockAF2 INTEGER (-2048 .. 2047),
+ stanClockAF1 INTEGER (-131072 .. 131071),
+ stanClockAF0 INTEGER (-134217728 .. 134217727),
+ stanClockTgd INTEGER (-512 .. 511) OPTIONAL,
+ stanModelID INTEGER (0 .. 1) OPTIONAL,
+ ...
+}
+
+-- GANSS Real-Time Integrity IE
+GANSSRealTimeIntegrity ::= SEQUENCE {
+ -- list of 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 INTEGER (0 .. 3) OPTIONAL -- Coding according to Annex
+}
+
+
+-- GANSS Data Bit Assistance IE
+GANSSDataBitAssist ::= SEQUENCE {
+ ganssTOD INTEGER (0 .. 59),
+ svID SVID,
+ ganssDataTypeID INTEGER (0 .. 2), -- Coding according to Annex
+ -- list of navigation data bits
+ -- 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 INTEGER (0 .. 3) OPTIONAL, -- Coding according to Annex
+ ganssRefMeasAssitList 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,
+ ...
+}
+
+AdditionalDopplerFields ::= SEQUENCE {
+ -- Doppler 1st order term, -0.2 - +0.1 m/s2
+ doppler1 INTEGER (0..63),
+ dopplerUncertainty INTEGER (0..4)
+}
+
+-- GANSS Almanac Model IE
+GANSSAlmanacModel ::= SEQUENCE {
+ weekNumber INTEGER (0 .. 255),
+ svIDMask SVIDMASK,
+ toa INTEGER (0 .. 255) OPTIONAL,
+ ioda INTEGER (0 .. 3) OPTIONAL,
+ ganssAlmanacList SeqOfGANSSAlmanacElement
+}
+
+-- SV ID Mask, LSB for ID 1 and MSB for ID 36
+SVIDMASK ::= BIT STRING (SIZE (1..36))
+
+SeqOfGANSSAlmanacElement ::= SEQUENCE (SIZE(1 .. 36)) OF GANSSAlmanacElement
+
+-- GANSS Almanac Model
+GANSSAlmanacElement ::= CHOICE {
+ keplerianAlmanacSet Almanac-KeplerianSet,
+ ...
+}
+
+-- Almanac parameters according to Keplerian parameters
+Almanac-KeplerianSet ::= SEQUENCE {
+ kepAlmanacE INTEGER (0 .. 2047),
+ kepAlmanacDeltaI INTEGER (-1024 .. 1023),
+ kepAlmanacOmegaDot INTEGER (-1024 .. 1023),
+ kepSVHealth INTEGER (0 .. 15), -- Coding according to Annex
+ kepAlmanacAPowerHalf INTEGER (-65536 .. 65535),
+ kepAlmanacOmega0 INTEGER (-32768 .. 32767),
+ kepAlmanacW INTEGER (-32768 .. 32767),
+ kepAlmanacM0 INTEGER (-32768 .. 32767),
+ kepAlmanacAF0 INTEGER (-8192 .. 8191),
+ kepAlmanacAF1 INTEGER (-1024..1023)
+}
+
+-- GANSS Universal Time Coordinate Model
+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)
+}
+
+--Required Measurement Request Response Time, range is 1 to 128 seconds.
+RequiredResponseTime ::= INTEGER (1..128)
+
+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
+ ganssTODUncertainty GANSSTODUncertainty OPTIONAL, -- Coding according to Annex
+ ganssTimeID INTEGER (0 .. 3) 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) } (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
+ -- user has to make sure that in this element is number of elements
+ -- defined in reference BTS identity
+ 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
+ ganssTODm GANSSTODm OPTIONAL, -- GANSS TOD modulo
+ deltaGNASSTOD INTEGER (0 .. 127) OPTIONAL,
+ ganssTODUncertainty GANSSTODUncertainty OPTIONAL, -- Coding accoring to Annex
+
+ --N_SGN_TYPE can be read from number of elements of SeqOfGANSS-SgnTypeElement
+ ganss-SgnTypeList SeqOfGANSS-SgnTypeElement
+}
+
+-- Measurements can be returned up to 6 different signal types
+SeqOfGANSS-SgnTypeElement ::= SEQUENCE (SIZE(1..6)) OF GANSS-SgnTypeElement
+
+GANSS-SgnTypeElement ::= SEQUENCE {
+ ganssSignalID INTEGER (0 .. 15), -- Coding accroding to Annex
+ --N_SGN can be read from number of elements of SeqOfGANSS-SgnElement
+ ganss-SgnList SeqOfGANSS-SgnElement
+}
+
+-- Measurements can be returned up to 16 per signal types
+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 .. 63) OPTIONAL,
+ codePhaseRMSError INTEGER (0..63), -- Coding accoring 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,
+ ...
+-- Possibly more extensions for Release 7 here
+}
+
+END
+++ /dev/null
-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
\ No newline at end of file
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* .\packet-rrlp.c */
-/* ../../tools/asn2wrs.py -u -e -p rrlp -c rrlp.cnf -s packet-rrlp-template rrlp.asn */
+/* ../../tools/asn2wrs.py -p rrlp -c rrlp.cnf -s packet-rrlp-template RRLP-Messages.asn RRLP-Components.asn ../gsmmap/MAP-ExtensionDataTypes.asn ../gsmmap/MAP-LCS-DataTypes.asn */
/* Input file: packet-rrlp-template.c */
#include <stdio.h>
#include <string.h>
-#include "packet-rrlp.h"
-
#include "packet-ber.h"
#include "packet-per.h"
#include "packet-gsm_map.h"
static int hf_rrlp_extensionContainer = -1; /* ExtensionContainer */
static int hf_rrlp_rel98_MsrPosition_Req_extension = -1; /* Rel98_MsrPosition_Req_Extension */
static int hf_rrlp_rel5_MsrPosition_Req_extension = -1; /* Rel5_MsrPosition_Req_Extension */
+static int hf_rrlp_rel7_MsrPosition_Req_extension = -1; /* Rel7_MsrPosition_Req_Extension */
static int hf_rrlp_multipleSets = -1; /* MultipleSets */
static int hf_rrlp_referenceIdentity = -1; /* ReferenceIdentity */
static int hf_rrlp_otd_MeasureInfo = -1; /* OTD_MeasureInfo */
static int hf_rrlp_locationError = -1; /* LocationError */
static int hf_rrlp_rel_98_MsrPosition_Rsp_Extension = -1; /* Rel_98_MsrPosition_Rsp_Extension */
static int hf_rrlp_rel_5_MsrPosition_Rsp_Extension = -1; /* Rel_5_MsrPosition_Rsp_Extension */
+static int hf_rrlp_rel_7_MsrPosition_Rsp_Extension = -1; /* Rel_7_MsrPosition_Rsp_Extension */
static int hf_rrlp_moreAssDataToBeSent = -1; /* MoreAssDataToBeSent */
static int hf_rrlp_rel98_AssistanceData_Extension = -1; /* Rel98_AssistanceData_Extension */
static int hf_rrlp_rel5_AssistanceData_Extension = -1; /* Rel5_AssistanceData_Extension */
+static int hf_rrlp_rel7_AssistanceData_Extension = -1; /* Rel7_AssistanceData_Extension */
static int hf_rrlp_errorCause = -1; /* ErrorCodes */
static int hf_rrlp_rel_5_ProtocolError_Extension = -1; /* Rel_5_ProtocolError_Extension */
static int hf_rrlp_methodType = -1; /* MethodType */
static int hf_rrlp_locErrorReason = -1; /* LocErrorReason */
static int hf_rrlp_additionalAssistanceData = -1; /* AdditionalAssistanceData */
static int hf_rrlp_gpsAssistanceData = -1; /* GPSAssistanceData */
+static int hf_rrlp_ganssAssistanceData = -1; /* GANSSAssistanceData */
static int hf_rrlp_controlHeader = -1; /* ControlHeader */
static int hf_rrlp_referenceTime = -1; /* ReferenceTime */
static int hf_rrlp_refLocation = -1; /* RefLocation */
static int hf_rrlp_ulPseudoSegInd = -1; /* UlPseudoSegInd */
static int hf_rrlp_smlc_code = -1; /* INTEGER_0_63 */
static int hf_rrlp_transaction_ID = -1; /* INTEGER_0_262143 */
+static int hf_rrlp_velocityRequested = -1; /* NULL */
+static int hf_rrlp_ganssPositionMethod = -1; /* GANSSPositioningMethod */
+static int hf_rrlp_ganss_AssistData = -1; /* GANSS_AssistData */
+static int hf_rrlp_ganssCarrierPhaseMeasurementRequest = -1; /* NULL */
+static int hf_rrlp_ganssTODGSMTimeAssociationMeasurementRequest = -1; /* NULL */
+static int hf_rrlp_requiredResponseTime = -1; /* RequiredResponseTime */
+static int hf_rrlp_ganss_controlHeader = -1; /* GANSS_ControlHeader */
+static int hf_rrlp_ganssCommonAssistData = -1; /* GANSSCommonAssistData */
+static int hf_rrlp_ganssGenericAssistDataList = -1; /* SeqOfGANSSGenericAssistDataElement */
+static int hf_rrlp_ganssReferenceTime = -1; /* GANSSReferenceTime */
+static int hf_rrlp_ganssRefLocation = -1; /* GANSSRefLocation */
+static int hf_rrlp_ganssIonosphericModel = -1; /* GANSSIonosphericModel */
+static int hf_rrlp_SeqOfGANSSGenericAssistDataElement_item = -1; /* GANSSGenericAssistDataElement */
+static int hf_rrlp_ganssID = -1; /* INTEGER_0_7 */
+static int hf_rrlp_ganssTimeModel = -1; /* SeqOfGANSSTimeModel */
+static int hf_rrlp_ganssDiffCorrections = -1; /* GANSSDiffCorrections */
+static int hf_rrlp_ganssNavigationModel = -1; /* GANSSNavModel */
+static int hf_rrlp_ganssRealTimeIntegrity = -1; /* GANSSRealTimeIntegrity */
+static int hf_rrlp_ganssDataBitAssist = -1; /* GANSSDataBitAssist */
+static int hf_rrlp_ganssRefMeasurementAssist = -1; /* GANSSRefMeasurementAssist */
+static int hf_rrlp_ganssAlmanacModel = -1; /* GANSSAlmanacModel */
+static int hf_rrlp_ganssUTCModel = -1; /* GANSSUTCModel */
+static int hf_rrlp_ganssRefTimeInfo = -1; /* GANSSRefTimeInfo */
+static int hf_rrlp_ganssTOD_GSMTimeAssociation = -1; /* GANSSTOD_GSMTimeAssociation */
+static int hf_rrlp_ganssDay = -1; /* INTEGER_0_8191 */
+static int hf_rrlp_ganssTOD = -1; /* GANSSTOD */
+static int hf_rrlp_ganssTODUncertainty = -1; /* GANSSTODUncertainty */
+static int hf_rrlp_ganssTimeID = -1; /* INTEGER_0_7 */
+static int hf_rrlp_frameDrift = -1; /* FrameDrift */
+static int hf_rrlp_ganssIonoModel = -1; /* GANSSIonosphereModel */
+static int hf_rrlp_ganssIonoStormFlags = -1; /* GANSSIonoStormFlags */
+static int hf_rrlp_ai0 = -1; /* INTEGER_0_4095 */
+static int hf_rrlp_ai1 = -1; /* INTEGER_0_4095 */
+static int hf_rrlp_ai2 = -1; /* INTEGER_0_4095 */
+static int hf_rrlp_ionoStormFlag1 = -1; /* INTEGER_0_1 */
+static int hf_rrlp_ionoStormFlag2 = -1; /* INTEGER_0_1 */
+static int hf_rrlp_ionoStormFlag3 = -1; /* INTEGER_0_1 */
+static int hf_rrlp_ionoStormFlag4 = -1; /* INTEGER_0_1 */
+static int hf_rrlp_ionoStormFlag5 = -1; /* INTEGER_0_1 */
+static int hf_rrlp_SeqOfGANSSTimeModel_item = -1; /* GANSSTimeModelElement */
+static int hf_rrlp_ganssTimeModelRefTime = -1; /* INTEGER_0_65535 */
+static int hf_rrlp_tA0 = -1; /* TA0 */
+static int hf_rrlp_tA1 = -1; /* TA1 */
+static int hf_rrlp_tA2 = -1; /* TA2 */
+static int hf_rrlp_gnssTOID = -1; /* INTEGER_0_7 */
+static int hf_rrlp_weekNumber = -1; /* INTEGER_0_8191 */
+static int hf_rrlp_dganssRefTime = -1; /* INTEGER_0_119 */
+static int hf_rrlp_sgnTypeList = -1; /* SeqOfSgnTypeElement */
+static int hf_rrlp_SeqOfSgnTypeElement_item = -1; /* SgnTypeElement */
+static int hf_rrlp_ganssSignalID = -1; /* GANSSSignalID */
+static int hf_rrlp_ganssStatusHealth = -1; /* INTEGER_0_7 */
+static int hf_rrlp_dganssSgnList = -1; /* SeqOfDGANSSSgnElement */
+static int hf_rrlp_SeqOfDGANSSSgnElement_item = -1; /* DGANSSSgnElement */
+static int hf_rrlp_svID = -1; /* SVID */
+static int hf_rrlp_iod = -1; /* INTEGER_0_1023 */
+static int hf_rrlp_nonBroadcastIndFlag = -1; /* INTEGER_0_1 */
+static int hf_rrlp_toeMSB = -1; /* INTEGER_0_31 */
+static int hf_rrlp_eMSB = -1; /* INTEGER_0_127 */
+static int hf_rrlp_sqrtAMBS = -1; /* INTEGER_0_63 */
+static int hf_rrlp_ganssSatelliteList = -1; /* SeqOfGANSSSatelliteElement */
+static int hf_rrlp_SeqOfGANSSSatelliteElement_item = -1; /* GANSSSatelliteElement */
+static int hf_rrlp_svHealth = -1; /* INTEGER_M7_13 */
+static int hf_rrlp_ganssClockModel = -1; /* GANSSClockModel */
+static int hf_rrlp_ganssOrbitModel = -1; /* GANSSOrbitModel */
+static int hf_rrlp_keplerianSet = -1; /* NavModel_KeplerianSet */
+static int hf_rrlp_keplerToeLSB = -1; /* INTEGER_0_511 */
+static int hf_rrlp_keplerW = -1; /* INTEGER_M2147483648_2147483647 */
+static int hf_rrlp_keplerDeltaN = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_keplerM0 = -1; /* INTEGER_M2147483648_2147483647 */
+static int hf_rrlp_keplerOmegaDot = -1; /* INTEGER_M8388608_8388607 */
+static int hf_rrlp_keplerELSB = -1; /* INTEGER_0_33554431 */
+static int hf_rrlp_keplerIDot = -1; /* INTEGER_M8192_8191 */
+static int hf_rrlp_keplerAPowerHalfLSB = -1; /* INTEGER_0_67108863 */
+static int hf_rrlp_keplerI0 = -1; /* INTEGER_M2147483648_2147483647 */
+static int hf_rrlp_keplerOmega0 = -1; /* INTEGER_M2147483648_2147483647 */
+static int hf_rrlp_keplerCrs = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_keplerCis = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_keplerCus = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_keplerCrc = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_keplerCic = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_keplerCuc = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_standardClockModelList = -1; /* SeqOfStandardClockModelElement */
+static int hf_rrlp_SeqOfStandardClockModelElement_item = -1; /* StandardClockModelElement */
+static int hf_rrlp_stanClockTocLSB = -1; /* INTEGER_0_511 */
+static int hf_rrlp_stanClockAF2 = -1; /* INTEGER_M2048_2047 */
+static int hf_rrlp_stanClockAF1 = -1; /* INTEGER_M131072_131071 */
+static int hf_rrlp_stanClockAF0 = -1; /* INTEGER_M134217728_134217727 */
+static int hf_rrlp_stanClockTgd = -1; /* INTEGER_M512_511 */
+static int hf_rrlp_stanModelID = -1; /* INTEGER_0_1 */
+static int hf_rrlp_ganssBadSignalList = -1; /* SeqOfBadSignalElement */
+static int hf_rrlp_SeqOfBadSignalElement_item = -1; /* BadSignalElement */
+static int hf_rrlp_badSVID = -1; /* SVID */
+static int hf_rrlp_badSignalID = -1; /* INTEGER_0_3 */
+static int hf_rrlp_ganssTOD1 = -1; /* INTEGER_0_59 */
+static int hf_rrlp_ganssDataTypeID = -1; /* INTEGER_0_2 */
+static int hf_rrlp_ganssDataBits = -1; /* SeqOf_GANSSDataBits */
+static int hf_rrlp_SeqOf_GANSSDataBits_item = -1; /* GANSSDataBit */
+static int hf_rrlp_ganssSignalID1 = -1; /* INTEGER_0_3 */
+static int hf_rrlp_ganssRefMeasAssitList = -1; /* SeqOfGANSSRefMeasurementElement */
+static int hf_rrlp_SeqOfGANSSRefMeasurementElement_item = -1; /* GANSSRefMeasurementElement */
+static int hf_rrlp_additionalDoppler = -1; /* AdditionalDopplerFields */
+static int hf_rrlp_intCodePhase1 = -1; /* INTEGER_0_127 */
+static int hf_rrlp_codePhaseSearchWindow1 = -1; /* INTEGER_0_31 */
+static int hf_rrlp_additionalAngle = -1; /* AddionalAngleFields */
+static int hf_rrlp_dopplerUncertainty1 = -1; /* INTEGER_0_4 */
+static int hf_rrlp_weekNumber1 = -1; /* INTEGER_0_255 */
+static int hf_rrlp_svIDMask = -1; /* SVIDMASK */
+static int hf_rrlp_toa = -1; /* INTEGER_0_255 */
+static int hf_rrlp_ioda = -1; /* INTEGER_0_3 */
+static int hf_rrlp_ganssAlmanacList = -1; /* SeqOfGANSSAlmanacElement */
+static int hf_rrlp_SeqOfGANSSAlmanacElement_item = -1; /* GANSSAlmanacElement */
+static int hf_rrlp_keplerianAlmanacSet = -1; /* Almanac_KeplerianSet */
+static int hf_rrlp_kepAlmanacE = -1; /* INTEGER_0_2047 */
+static int hf_rrlp_kepAlmanacDeltaI = -1; /* INTEGER_M1024_1023 */
+static int hf_rrlp_kepAlmanacOmegaDot = -1; /* INTEGER_M1024_1023 */
+static int hf_rrlp_kepSVHealth = -1; /* INTEGER_0_15 */
+static int hf_rrlp_kepAlmanacAPowerHalf = -1; /* INTEGER_M65536_65535 */
+static int hf_rrlp_kepAlmanacOmega0 = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_kepAlmanacW = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_kepAlmanacM0 = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_kepAlmanacAF0 = -1; /* INTEGER_M8192_8191 */
+static int hf_rrlp_kepAlmanacAF1 = -1; /* INTEGER_M1024_1023 */
+static int hf_rrlp_ganssUtcA1 = -1; /* INTEGER_M8388608_8388607 */
+static int hf_rrlp_ganssUtcA0 = -1; /* INTEGER_M2147483648_2147483647 */
+static int hf_rrlp_ganssUtcTot = -1; /* INTEGER_0_255 */
+static int hf_rrlp_ganssUtcWNt = -1; /* INTEGER_0_255 */
+static int hf_rrlp_ganssUtcDeltaTls = -1; /* INTEGER_M128_127 */
+static int hf_rrlp_ganssUtcWNlsf = -1; /* INTEGER_0_255 */
+static int hf_rrlp_ganssUtcDN = -1; /* INTEGER_M128_127 */
+static int hf_rrlp_ganssUtcDeltaTlsf = -1; /* INTEGER_M128_127 */
+static int hf_rrlp_velEstimate = -1; /* VelocityEstimate */
+static int hf_rrlp_ganssLocationInfo = -1; /* GANSSLocationInfo */
+static int hf_rrlp_ganssMeasureInfo = -1; /* GANSSMeasureInfo */
+static int hf_rrlp_referenceFrame = -1; /* ReferenceFrame */
+static int hf_rrlp_ganssTODm = -1; /* GANSSTODm */
+static int hf_rrlp_ganssTODFrac = -1; /* INTEGER_0_16384 */
+static int hf_rrlp_ganssTimeID1 = -1; /* INTEGER_0_3 */
+static int hf_rrlp_posData = -1; /* PositionData */
+static int hf_rrlp_stationaryIndication = -1; /* INTEGER_0_1 */
+static int hf_rrlp_referenceFN = -1; /* INTEGER_0_65535 */
+static int hf_rrlp_referenceFNMSB = -1; /* INTEGER_0_63 */
+static int hf_rrlp_ganssMsrSetList = -1; /* SeqOfGANSS_MsrSetElement */
+static int hf_rrlp_SeqOfGANSS_MsrSetElement_item = -1; /* GANSS_MsrSetElement */
+static int hf_rrlp_deltaGNASSTOD = -1; /* INTEGER_0_127 */
+static int hf_rrlp_ganss_SgnTypeList = -1; /* SeqOfGANSS_SgnTypeElement */
+static int hf_rrlp_SeqOfGANSS_SgnTypeElement_item = -1; /* GANSS_SgnTypeElement */
+static int hf_rrlp_ganssSignalID2 = -1; /* INTEGER_0_15 */
+static int hf_rrlp_ganss_SgnList = -1; /* SeqOfGANSS_SgnElement */
+static int hf_rrlp_SeqOfGANSS_SgnElement_item = -1; /* GANSS_SgnElement */
+static int hf_rrlp_mpathDet = -1; /* MpathIndic */
+static int hf_rrlp_carrierQualityInd = -1; /* INTEGER_0_3 */
+static int hf_rrlp_codePhase1 = -1; /* INTEGER_0_2097151 */
+static int hf_rrlp_integerCodePhase = -1; /* INTEGER_0_63 */
+static int hf_rrlp_codePhaseRMSError = -1; /* INTEGER_0_63 */
+static int hf_rrlp_adr = -1; /* INTEGER_0_33554431 */
+static int hf_rrlp_privateExtensionList = -1; /* PrivateExtensionList */
+static int hf_rrlp_pcs_Extensions = -1; /* PCS_Extensions */
+static int hf_rrlp_slr_Arg_PCS_Extensions = -1; /* SLR_Arg_PCS_Extensions */
+static int hf_rrlp_PrivateExtensionList_item = -1; /* PrivateExtension */
+static int hf_rrlp_extId = -1; /* OBJECT_IDENTIFIER */
+static int hf_rrlp_extType = -1; /* T_extType */
+static int hf_rrlp_na_ESRK_Request = -1; /* NULL */
+/* named bits */
+static int hf_rrlp_GANSSPositioningMethod_gps = -1;
+static int hf_rrlp_GANSSPositioningMethod_galileo = -1;
+static int hf_rrlp_PositionData_e_otd = -1;
+static int hf_rrlp_PositionData_gps = -1;
+static int hf_rrlp_PositionData_galileo = -1;
/*--- End of included file: packet-rrlp-hf.c ---*/
-#line 66 "packet-rrlp-template.c"
+#line 64 "packet-rrlp-template.c"
/* Initialize the subtree pointers */
static gint ett_rrlp = -1;
static gint ett_rrlp_Rel5_MsrPosition_Req_Extension = -1;
static gint ett_rrlp_Rel5_AssistanceData_Extension = -1;
static gint ett_rrlp_Rel_5_ProtocolError_Extension = -1;
+static gint ett_rrlp_Rel7_MsrPosition_Req_Extension = -1;
+static gint ett_rrlp_GANSSPositioningMethod = -1;
+static gint ett_rrlp_GANSS_AssistData = -1;
+static gint ett_rrlp_GANSS_ControlHeader = -1;
+static gint ett_rrlp_GANSSCommonAssistData = -1;
+static gint ett_rrlp_SeqOfGANSSGenericAssistDataElement = -1;
+static gint ett_rrlp_GANSSGenericAssistDataElement = -1;
+static gint ett_rrlp_GANSSReferenceTime = -1;
+static gint ett_rrlp_GANSSRefTimeInfo = -1;
+static gint ett_rrlp_GANSSTOD_GSMTimeAssociation = -1;
+static gint ett_rrlp_GANSSRefLocation = -1;
+static gint ett_rrlp_GANSSIonosphericModel = -1;
+static gint ett_rrlp_GANSSIonosphereModel = -1;
+static gint ett_rrlp_GANSSIonoStormFlags = -1;
+static gint ett_rrlp_SeqOfGANSSTimeModel = -1;
+static gint ett_rrlp_GANSSTimeModelElement = -1;
+static gint ett_rrlp_GANSSDiffCorrections = -1;
+static gint ett_rrlp_SeqOfSgnTypeElement = -1;
+static gint ett_rrlp_SgnTypeElement = -1;
+static gint ett_rrlp_SeqOfDGANSSSgnElement = -1;
+static gint ett_rrlp_DGANSSSgnElement = -1;
+static gint ett_rrlp_GANSSNavModel = -1;
+static gint ett_rrlp_SeqOfGANSSSatelliteElement = -1;
+static gint ett_rrlp_GANSSSatelliteElement = -1;
+static gint ett_rrlp_GANSSOrbitModel = -1;
+static gint ett_rrlp_NavModel_KeplerianSet = -1;
+static gint ett_rrlp_GANSSClockModel = -1;
+static gint ett_rrlp_SeqOfStandardClockModelElement = -1;
+static gint ett_rrlp_StandardClockModelElement = -1;
+static gint ett_rrlp_GANSSRealTimeIntegrity = -1;
+static gint ett_rrlp_SeqOfBadSignalElement = -1;
+static gint ett_rrlp_BadSignalElement = -1;
+static gint ett_rrlp_GANSSDataBitAssist = -1;
+static gint ett_rrlp_SeqOf_GANSSDataBits = -1;
+static gint ett_rrlp_GANSSRefMeasurementAssist = -1;
+static gint ett_rrlp_SeqOfGANSSRefMeasurementElement = -1;
+static gint ett_rrlp_GANSSRefMeasurementElement = -1;
+static gint ett_rrlp_AdditionalDopplerFields = -1;
+static gint ett_rrlp_GANSSAlmanacModel = -1;
+static gint ett_rrlp_SeqOfGANSSAlmanacElement = -1;
+static gint ett_rrlp_GANSSAlmanacElement = -1;
+static gint ett_rrlp_Almanac_KeplerianSet = -1;
+static gint ett_rrlp_GANSSUTCModel = -1;
+static gint ett_rrlp_Rel_7_MsrPosition_Rsp_Extension = -1;
+static gint ett_rrlp_GANSSLocationInfo = -1;
+static gint ett_rrlp_PositionData = -1;
+static gint ett_rrlp_ReferenceFrame = -1;
+static gint ett_rrlp_GANSSMeasureInfo = -1;
+static gint ett_rrlp_SeqOfGANSS_MsrSetElement = -1;
+static gint ett_rrlp_GANSS_MsrSetElement = -1;
+static gint ett_rrlp_SeqOfGANSS_SgnTypeElement = -1;
+static gint ett_rrlp_GANSS_SgnTypeElement = -1;
+static gint ett_rrlp_SeqOfGANSS_SgnElement = -1;
+static gint ett_rrlp_GANSS_SgnElement = -1;
+static gint ett_rrlp_Rel7_AssistanceData_Extension = -1;
+static gint ett_rrlp_ExtensionContainer = -1;
+static gint ett_rrlp_SLR_ArgExtensionContainer = -1;
+static gint ett_rrlp_PrivateExtensionList = -1;
+static gint ett_rrlp_PrivateExtension = -1;
+static gint ett_rrlp_PCS_Extensions = -1;
+static gint ett_rrlp_SLR_Arg_PCS_Extensions = -1;
/*--- End of included file: packet-rrlp-ett.c ---*/
-#line 70 "packet-rrlp-template.c"
+#line 68 "packet-rrlp-template.c"
/* Include constants */
/*--- Included file: packet-rrlp-val.h ---*/
#line 1 "packet-rrlp-val.h"
#define maxGPSAssistanceData 40
+#define maxGANSSAssistanceData 40
+#define maxNumOfPrivateExtensions 10
+#define maxExt_GeographicalInformation 20
/*--- End of included file: packet-rrlp-val.h ---*/
-#line 73 "packet-rrlp-template.c"
+#line 71 "packet-rrlp-template.c"
#line 1 "packet-rrlp-fn.c"
-static int
-dissect_rrlp_Ext_GeographicalInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 21 "rrlp.cnf"
-
-tvbuff_t *parameter_tvb = NULL;
-
- offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 20, ¶meter_tvb);
-
-
- if(parameter_tvb)
- dissect_geographical_description(parameter_tvb, actx->pinfo, tree);
-
-
- return offset;
-}
-
-
-
-static int
-dissect_rrlp_ExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
-
- return offset;
-}
-
-
-
static int
dissect_rrlp_INTEGER_0_7(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+static int
+dissect_rrlp_Ext_GeographicalInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 35 "rrlp.cnf"
+
+tvbuff_t *parameter_tvb = NULL;
+
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 1, maxExt_GeographicalInformation, ¶meter_tvb);
+
+
+ if(parameter_tvb)
+ dissect_geographical_description(parameter_tvb, actx->pinfo, tree);
+
+
+ return offset;
+}
+
+
+
static int
dissect_rrlp_BTSPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_rrlp_Ext_GeographicalInformation(tvb, offset, actx, tree, hf_index);
+static int
+dissect_rrlp_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_T_extType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_open_type(tvb, offset, actx, tree, hf_index, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t PrivateExtension_sequence[] = {
+ { &hf_rrlp_extId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_OBJECT_IDENTIFIER },
+ { &hf_rrlp_extType , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_T_extType },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_PrivateExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_PrivateExtension, PrivateExtension_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t PrivateExtensionList_sequence_of[1] = {
+ { &hf_rrlp_PrivateExtensionList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_PrivateExtension },
+};
+
+static int
+dissect_rrlp_PrivateExtensionList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_PrivateExtensionList, PrivateExtensionList_sequence_of,
+ 1, maxNumOfPrivateExtensions);
+
+ return offset;
+}
+
+
+static const per_sequence_t PCS_Extensions_sequence[] = {
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_PCS_Extensions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_PCS_Extensions, PCS_Extensions_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t ExtensionContainer_sequence[] = {
+ { &hf_rrlp_privateExtensionList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_PrivateExtensionList },
+ { &hf_rrlp_pcs_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_PCS_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_ExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_ExtensionContainer, ExtensionContainer_sequence);
+
+ return offset;
+}
+
+
+
static int
dissect_rrlp_ExpectedOTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
}
-static const per_sequence_t MsrPosition_Req_sequence[] = {
- { &hf_rrlp_positionInstruct, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_PositionInstruct },
- { &hf_rrlp_referenceAssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ReferenceAssistData },
- { &hf_rrlp_msrAssistData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_MsrAssistData },
- { &hf_rrlp_systemInfoAssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_SystemInfoAssistData },
- { &hf_rrlp_gps_AssistData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPS_AssistData },
- { &hf_rrlp_extensionContainer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ExtensionContainer },
- { &hf_rrlp_rel98_MsrPosition_Req_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel98_MsrPosition_Req_Extension },
- { &hf_rrlp_rel5_MsrPosition_Req_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel5_MsrPosition_Req_Extension },
- { NULL, 0, 0, NULL }
+static const asn_namedbit GANSSPositioningMethod_bits[] = {
+ { 0, &hf_rrlp_GANSSPositioningMethod_gps, -1, -1, "gps", NULL },
+ { 1, &hf_rrlp_GANSSPositioningMethod_galileo, -1, -1, "galileo", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
};
static int
-dissect_rrlp_MsrPosition_Req(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
- ett_rrlp_MsrPosition_Req, MsrPosition_Req_sequence);
+dissect_rrlp_GANSSPositioningMethod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
+ 2, 16, FALSE, NULL);
return offset;
}
static int
-dissect_rrlp_INTEGER_2_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_rrlp_INTEGER_0_8191(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 2U, 3U, NULL, FALSE);
+ 0U, 8191U, NULL, FALSE);
return offset;
}
static int
-dissect_rrlp_INTEGER_1_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_rrlp_GANSSTOD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 1U, 3U, NULL, FALSE);
+ 0U, 86399U, NULL, FALSE);
return offset;
}
-static const value_string rrlp_ReferenceRelation_vals[] = {
- { 0, "secondBTSThirdSet" },
- { 1, "secondBTSSecondSet" },
- { 2, "firstBTSFirstSet" },
- { 0, NULL }
-};
-
static int
-dissect_rrlp_ReferenceRelation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
- 3, NULL, FALSE, 0, NULL);
+dissect_rrlp_GANSSTODUncertainty(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 127U, NULL, FALSE);
return offset;
}
-static const per_sequence_t MultipleSets_sequence[] = {
- { &hf_rrlp_nbrOfSets , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_2_3 },
- { &hf_rrlp_nbrOfReferenceBTSs, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_3 },
- { &hf_rrlp_referenceRelation, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_ReferenceRelation },
+static const per_sequence_t GANSSRefTimeInfo_sequence[] = {
+ { &hf_rrlp_ganssDay , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_8191 },
+ { &hf_rrlp_ganssTOD , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSTOD },
+ { &hf_rrlp_ganssTODUncertainty, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSTODUncertainty },
+ { &hf_rrlp_ganssTimeID , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_7 },
{ NULL, 0, 0, NULL }
};
static int
-dissect_rrlp_MultipleSets(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_rrlp_GANSSRefTimeInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
- ett_rrlp_MultipleSets, MultipleSets_sequence);
+ ett_rrlp_GANSSRefTimeInfo, GANSSRefTimeInfo_sequence);
return offset;
}
-static const per_sequence_t BSICAndCarrier_sequence[] = {
- { &hf_rrlp_carrier , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BCCHCarrier },
- { &hf_rrlp_bsic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BSIC },
- { NULL, 0, 0, NULL }
-};
static int
-dissect_rrlp_BSICAndCarrier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
- ett_rrlp_BSICAndCarrier, BSICAndCarrier_sequence);
+dissect_rrlp_FrameDrift(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ -64, 63U, NULL, FALSE);
return offset;
}
+static const per_sequence_t GANSSTOD_GSMTimeAssociation_sequence[] = {
+ { &hf_rrlp_bcchCarrier , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BCCHCarrier },
+ { &hf_rrlp_bsic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BSIC },
+ { &hf_rrlp_frameNumber , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_FrameNumber },
+ { &hf_rrlp_timeSlot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_TimeSlot },
+ { &hf_rrlp_bitNumber , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BitNumber },
+ { &hf_rrlp_frameDrift , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_FrameDrift },
+ { NULL, 0, 0, NULL }
+};
static int
-dissect_rrlp_CellID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 0U, 65535U, NULL, FALSE);
+dissect_rrlp_GANSSTOD_GSMTimeAssociation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSTOD_GSMTimeAssociation, GANSSTOD_GSMTimeAssociation_sequence);
return offset;
}
+static const per_sequence_t GANSSReferenceTime_sequence[] = {
+ { &hf_rrlp_ganssRefTimeInfo, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSRefTimeInfo },
+ { &hf_rrlp_ganssTOD_GSMTimeAssociation, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSTOD_GSMTimeAssociation },
+ { NULL, 0, 0, NULL }
+};
static int
-dissect_rrlp_RequestIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 1U, 16U, NULL, FALSE);
+dissect_rrlp_GANSSReferenceTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSReferenceTime, GANSSReferenceTime_sequence);
return offset;
}
+static const per_sequence_t GANSSRefLocation_sequence[] = {
+ { &hf_rrlp_threeDLocation , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_Ext_GeographicalInformation },
+ { NULL, 0, 0, NULL }
+};
static int
-dissect_rrlp_SystemInfoIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 1U, 32U, NULL, FALSE);
+dissect_rrlp_GANSSRefLocation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSRefLocation, GANSSRefLocation_sequence);
return offset;
}
static int
-dissect_rrlp_LAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_rrlp_INTEGER_0_4095(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 0U, 65535U, NULL, FALSE);
+ 0U, 4095U, NULL, FALSE);
return offset;
}
-static const per_sequence_t CellIDAndLAC_sequence[] = {
- { &hf_rrlp_referenceLAC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_LAC },
- { &hf_rrlp_referenceCI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_CellID },
+static const per_sequence_t GANSSIonosphereModel_sequence[] = {
+ { &hf_rrlp_ai0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4095 },
+ { &hf_rrlp_ai1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4095 },
+ { &hf_rrlp_ai2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4095 },
{ NULL, 0, 0, NULL }
};
static int
-dissect_rrlp_CellIDAndLAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_rrlp_GANSSIonosphereModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
- ett_rrlp_CellIDAndLAC, CellIDAndLAC_sequence);
+ ett_rrlp_GANSSIonosphereModel, GANSSIonosphereModel_sequence);
return offset;
}
-static const value_string rrlp_ReferenceIdentityType_vals[] = {
- { 0, "bsicAndCarrier" },
- { 1, "ci" },
- { 2, "requestIndex" },
- { 3, "systemInfoIndex" },
- { 4, "ciAndLAC" },
- { 0, NULL }
-};
-
-static const per_choice_t ReferenceIdentityType_choice[] = {
- { 0, &hf_rrlp_bsicAndCarrier , ASN1_NO_EXTENSIONS , dissect_rrlp_BSICAndCarrier },
- { 1, &hf_rrlp_ci , ASN1_NO_EXTENSIONS , dissect_rrlp_CellID },
- { 2, &hf_rrlp_requestIndex , ASN1_NO_EXTENSIONS , dissect_rrlp_RequestIndex },
- { 3, &hf_rrlp_systemInfoIndex, ASN1_NO_EXTENSIONS , dissect_rrlp_SystemInfoIndex },
- { 4, &hf_rrlp_ciAndLAC , ASN1_NO_EXTENSIONS , dissect_rrlp_CellIDAndLAC },
- { 0, NULL, 0, NULL }
+static const per_sequence_t GANSSIonoStormFlags_sequence[] = {
+ { &hf_rrlp_ionoStormFlag1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
+ { &hf_rrlp_ionoStormFlag2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
+ { &hf_rrlp_ionoStormFlag3 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
+ { &hf_rrlp_ionoStormFlag4 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
+ { &hf_rrlp_ionoStormFlag5 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
+ { NULL, 0, 0, NULL }
};
static int
-dissect_rrlp_ReferenceIdentityType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
- ett_rrlp_ReferenceIdentityType, ReferenceIdentityType_choice,
- NULL);
+dissect_rrlp_GANSSIonoStormFlags(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSIonoStormFlags, GANSSIonoStormFlags_sequence);
return offset;
}
-static const per_sequence_t SeqOfReferenceIdentityType_sequence_of[1] = {
- { &hf_rrlp_SeqOfReferenceIdentityType_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_ReferenceIdentityType },
+static const per_sequence_t GANSSIonosphericModel_sequence[] = {
+ { &hf_rrlp_ganssIonoModel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSIonosphereModel },
+ { &hf_rrlp_ganssIonoStormFlags, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSIonoStormFlags },
+ { NULL, 0, 0, NULL }
};
static int
-dissect_rrlp_SeqOfReferenceIdentityType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
- ett_rrlp_SeqOfReferenceIdentityType, SeqOfReferenceIdentityType_sequence_of,
- 1, 3);
+dissect_rrlp_GANSSIonosphericModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSIonosphericModel, GANSSIonosphericModel_sequence);
return offset;
}
-static const per_sequence_t ReferenceIdentity_sequence[] = {
- { &hf_rrlp_refBTSList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfReferenceIdentityType },
+static const per_sequence_t GANSSCommonAssistData_sequence[] = {
+ { &hf_rrlp_ganssReferenceTime, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSReferenceTime },
+ { &hf_rrlp_ganssRefLocation, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSRefLocation },
+ { &hf_rrlp_ganssIonosphericModel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSIonosphericModel },
{ NULL, 0, 0, NULL }
};
static int
-dissect_rrlp_ReferenceIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_rrlp_GANSSCommonAssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
- ett_rrlp_ReferenceIdentity, ReferenceIdentity_sequence);
+ ett_rrlp_GANSSCommonAssistData, GANSSCommonAssistData_sequence);
return offset;
}
static int
-dissect_rrlp_INTEGER_0_42431(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_rrlp_TA0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 0U, 42431U, NULL, FALSE);
+ -2147483648, 2147483647U, NULL, FALSE);
return offset;
}
static int
-dissect_rrlp_ModuloTimeSlot(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_rrlp_TA1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 0U, 3U, NULL, FALSE);
+ -8388608, 8388607U, NULL, FALSE);
return offset;
}
static int
-dissect_rrlp_RefQuality(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_rrlp_TA2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 0U, 31U, NULL, FALSE);
+ -64, 63U, NULL, FALSE);
return offset;
}
+static const per_sequence_t GANSSTimeModelElement_sequence[] = {
+ { &hf_rrlp_ganssTimeModelRefTime, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_65535 },
+ { &hf_rrlp_tA0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_TA0 },
+ { &hf_rrlp_tA1 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_TA1 },
+ { &hf_rrlp_tA2 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_TA2 },
+ { &hf_rrlp_gnssTOID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
+ { &hf_rrlp_weekNumber , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_8191 },
+ { NULL, 0, 0, NULL }
+};
static int
-dissect_rrlp_NumOfMeasurements(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 0U, 7U, NULL, FALSE);
+dissect_rrlp_GANSSTimeModelElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSTimeModelElement, GANSSTimeModelElement_sequence);
return offset;
}
-static const per_sequence_t TOA_MeasurementsOfRef_sequence[] = {
- { &hf_rrlp_refQuality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_RefQuality },
- { &hf_rrlp_numOfMeasurements, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_NumOfMeasurements },
- { NULL, 0, 0, NULL }
+static const per_sequence_t SeqOfGANSSTimeModel_sequence_of[1] = {
+ { &hf_rrlp_SeqOfGANSSTimeModel_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSTimeModelElement },
};
static int
-dissect_rrlp_TOA_MeasurementsOfRef(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
- ett_rrlp_TOA_MeasurementsOfRef, TOA_MeasurementsOfRef_sequence);
+dissect_rrlp_SeqOfGANSSTimeModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfGANSSTimeModel, SeqOfGANSSTimeModel_sequence_of,
+ 1, 7);
return offset;
}
static int
-dissect_rrlp_StdResolution(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_rrlp_INTEGER_0_119(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 119U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_GANSSSignalID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 3U, NULL, FALSE);
static int
-dissect_rrlp_INTEGER_0_960(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_rrlp_SVID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 0U, 960U, NULL, FALSE);
+ 0U, 63U, NULL, FALSE);
return offset;
}
-static const per_sequence_t MultiFrameCarrier_sequence[] = {
- { &hf_rrlp_bcchCarrier , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BCCHCarrier },
- { &hf_rrlp_multiFrameOffset, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_MultiFrameOffset },
+static const per_sequence_t DGANSSSgnElement_sequence[] = {
+ { &hf_rrlp_svID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &hf_rrlp_iod , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1023 },
+ { &hf_rrlp_udre , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_3 },
+ { &hf_rrlp_pseudoRangeCor , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2047_2047 },
+ { &hf_rrlp_rangeRateCor , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M127_127 },
{ NULL, 0, 0, NULL }
};
static int
-dissect_rrlp_MultiFrameCarrier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_rrlp_DGANSSSgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
- ett_rrlp_MultiFrameCarrier, MultiFrameCarrier_sequence);
+ ett_rrlp_DGANSSSgnElement, DGANSSSgnElement_sequence);
return offset;
}
-static const value_string rrlp_NeighborIdentity_vals[] = {
- { 0, "bsicAndCarrier" },
- { 1, "ci" },
- { 2, "multiFrameCarrier" },
- { 3, "requestIndex" },
- { 4, "systemInfoIndex" },
- { 5, "ciAndLAC" },
+static const per_sequence_t SeqOfDGANSSSgnElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfDGANSSSgnElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_DGANSSSgnElement },
+};
+
+static int
+dissect_rrlp_SeqOfDGANSSSgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfDGANSSSgnElement, SeqOfDGANSSSgnElement_sequence_of,
+ 1, 16);
+
+ return offset;
+}
+
+
+static const per_sequence_t SgnTypeElement_sequence[] = {
+ { &hf_rrlp_ganssSignalID , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSSignalID },
+ { &hf_rrlp_ganssStatusHealth, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
+ { &hf_rrlp_dganssSgnList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfDGANSSSgnElement },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_SgnTypeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SgnTypeElement, SgnTypeElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfSgnTypeElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfSgnTypeElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SgnTypeElement },
+};
+
+static int
+dissect_rrlp_SeqOfSgnTypeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfSgnTypeElement, SeqOfSgnTypeElement_sequence_of,
+ 1, 3);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSDiffCorrections_sequence[] = {
+ { &hf_rrlp_dganssRefTime , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_119 },
+ { &hf_rrlp_sgnTypeList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfSgnTypeElement },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSDiffCorrections(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSDiffCorrections, GANSSDiffCorrections_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 127U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_M7_13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ -7, 13U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_511(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 511U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_M131072_131071(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ -131072, 131071U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_M134217728_134217727(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ -134217728, 134217727U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_M512_511(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ -512, 511U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t StandardClockModelElement_sequence[] = {
+ { &hf_rrlp_stanClockTocLSB, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_511 },
+ { &hf_rrlp_stanClockAF2 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2048_2047 },
+ { &hf_rrlp_stanClockAF1 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M131072_131071 },
+ { &hf_rrlp_stanClockAF0 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M134217728_134217727 },
+ { &hf_rrlp_stanClockTgd , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M512_511 },
+ { &hf_rrlp_stanModelID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_1 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_StandardClockModelElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_StandardClockModelElement, StandardClockModelElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfStandardClockModelElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfStandardClockModelElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_StandardClockModelElement },
+};
+
+static int
+dissect_rrlp_SeqOfStandardClockModelElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfStandardClockModelElement, SeqOfStandardClockModelElement_sequence_of,
+ 1, 2);
+
+ return offset;
+}
+
+
+static const value_string rrlp_GANSSClockModel_vals[] = {
+ { 0, "standardClockModelList" },
+ { 0, NULL }
+};
+
+static const per_choice_t GANSSClockModel_choice[] = {
+ { 0, &hf_rrlp_standardClockModelList, ASN1_EXTENSION_ROOT , dissect_rrlp_SeqOfStandardClockModelElement },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSClockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSClockModel, GANSSClockModel_choice,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_33554431(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 33554431U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_67108863(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 67108863U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t NavModel_KeplerianSet_sequence[] = {
+ { &hf_rrlp_keplerToeLSB , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_511 },
+ { &hf_rrlp_keplerW , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
+ { &hf_rrlp_keplerDeltaN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_keplerM0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
+ { &hf_rrlp_keplerOmegaDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
+ { &hf_rrlp_keplerELSB , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_33554431 },
+ { &hf_rrlp_keplerIDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8192_8191 },
+ { &hf_rrlp_keplerAPowerHalfLSB, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_67108863 },
+ { &hf_rrlp_keplerI0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
+ { &hf_rrlp_keplerOmega0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
+ { &hf_rrlp_keplerCrs , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_keplerCis , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_keplerCus , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_keplerCrc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_keplerCic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_keplerCuc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_NavModel_KeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_NavModel_KeplerianSet, NavModel_KeplerianSet_sequence);
+
+ return offset;
+}
+
+
+static const value_string rrlp_GANSSOrbitModel_vals[] = {
+ { 0, "keplerianSet" },
+ { 0, NULL }
+};
+
+static const per_choice_t GANSSOrbitModel_choice[] = {
+ { 0, &hf_rrlp_keplerianSet , ASN1_EXTENSION_ROOT , dissect_rrlp_NavModel_KeplerianSet },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSOrbitModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSOrbitModel, GANSSOrbitModel_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSSatelliteElement_sequence[] = {
+ { &hf_rrlp_svID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &hf_rrlp_svHealth , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M7_13 },
+ { &hf_rrlp_iod , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1023 },
+ { &hf_rrlp_ganssClockModel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSClockModel },
+ { &hf_rrlp_ganssOrbitModel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSOrbitModel },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSSatelliteElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSSatelliteElement, GANSSSatelliteElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfGANSSSatelliteElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfGANSSSatelliteElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSSatelliteElement },
+};
+
+static int
+dissect_rrlp_SeqOfGANSSSatelliteElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfGANSSSatelliteElement, SeqOfGANSSSatelliteElement_sequence_of,
+ 1, 32);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSNavModel_sequence[] = {
+ { &hf_rrlp_nonBroadcastIndFlag, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
+ { &hf_rrlp_toeMSB , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_31 },
+ { &hf_rrlp_eMSB , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_127 },
+ { &hf_rrlp_sqrtAMBS , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_63 },
+ { &hf_rrlp_ganssSatelliteList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSSSatelliteElement },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSNavModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSNavModel, GANSSNavModel_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t BadSignalElement_sequence[] = {
+ { &hf_rrlp_badSVID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &hf_rrlp_badSignalID , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_3 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_BadSignalElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_BadSignalElement, BadSignalElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfBadSignalElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfBadSignalElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BadSignalElement },
+};
+
+static int
+dissect_rrlp_SeqOfBadSignalElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfBadSignalElement, SeqOfBadSignalElement_sequence_of,
+ 1, 16);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSRealTimeIntegrity_sequence[] = {
+ { &hf_rrlp_ganssBadSignalList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfBadSignalElement },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSRealTimeIntegrity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSRealTimeIntegrity, GANSSRealTimeIntegrity_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_59(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 59U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 2U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_GANSSDataBit(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 1U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOf_GANSSDataBits_sequence_of[1] = {
+ { &hf_rrlp_SeqOf_GANSSDataBits_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSDataBit },
+};
+
+static int
+dissect_rrlp_SeqOf_GANSSDataBits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOf_GANSSDataBits, SeqOf_GANSSDataBits_sequence_of,
+ 1, 1024);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSDataBitAssist_sequence[] = {
+ { &hf_rrlp_ganssTOD1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_59 },
+ { &hf_rrlp_svID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &hf_rrlp_ganssDataTypeID, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2 },
+ { &hf_rrlp_ganssDataBits , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOf_GANSSDataBits },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSDataBitAssist(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSDataBitAssist, GANSSDataBitAssist_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 4U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t AdditionalDopplerFields_sequence[] = {
+ { &hf_rrlp_doppler1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 },
+ { &hf_rrlp_dopplerUncertainty1, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_AdditionalDopplerFields(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_AdditionalDopplerFields, AdditionalDopplerFields_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSRefMeasurementElement_sequence[] = {
+ { &hf_rrlp_svID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &hf_rrlp_doppler0 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2048_2047 },
+ { &hf_rrlp_additionalDoppler, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_AdditionalDopplerFields },
+ { &hf_rrlp_codePhase , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1022 },
+ { &hf_rrlp_intCodePhase1 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_127 },
+ { &hf_rrlp_codePhaseSearchWindow1, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_31 },
+ { &hf_rrlp_additionalAngle, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_AddionalAngleFields },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSRefMeasurementElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSRefMeasurementElement, GANSSRefMeasurementElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfGANSSRefMeasurementElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfGANSSRefMeasurementElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSRefMeasurementElement },
+};
+
+static int
+dissect_rrlp_SeqOfGANSSRefMeasurementElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfGANSSRefMeasurementElement, SeqOfGANSSRefMeasurementElement_sequence_of,
+ 1, 16);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSRefMeasurementAssist_sequence[] = {
+ { &hf_rrlp_ganssSignalID1 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_3 },
+ { &hf_rrlp_ganssRefMeasAssitList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSSRefMeasurementElement },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSRefMeasurementAssist(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSRefMeasurementAssist, GANSSRefMeasurementAssist_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_SVIDMASK(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
+ 1, 36, FALSE, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_2047(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 2047U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_M65536_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ -65536, 65535U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t Almanac_KeplerianSet_sequence[] = {
+ { &hf_rrlp_kepAlmanacE , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2047 },
+ { &hf_rrlp_kepAlmanacDeltaI, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
+ { &hf_rrlp_kepAlmanacOmegaDot, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
+ { &hf_rrlp_kepSVHealth , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_15 },
+ { &hf_rrlp_kepAlmanacAPowerHalf, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M65536_65535 },
+ { &hf_rrlp_kepAlmanacOmega0, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_kepAlmanacW , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_kepAlmanacM0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_kepAlmanacAF0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8192_8191 },
+ { &hf_rrlp_kepAlmanacAF1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_Almanac_KeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_Almanac_KeplerianSet, Almanac_KeplerianSet_sequence);
+
+ return offset;
+}
+
+
+static const value_string rrlp_GANSSAlmanacElement_vals[] = {
+ { 0, "keplerianAlmanacSet" },
+ { 0, NULL }
+};
+
+static const per_choice_t GANSSAlmanacElement_choice[] = {
+ { 0, &hf_rrlp_keplerianAlmanacSet, ASN1_EXTENSION_ROOT , dissect_rrlp_Almanac_KeplerianSet },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSAlmanacElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSAlmanacElement, GANSSAlmanacElement_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfGANSSAlmanacElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfGANSSAlmanacElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSAlmanacElement },
+};
+
+static int
+dissect_rrlp_SeqOfGANSSAlmanacElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfGANSSAlmanacElement, SeqOfGANSSAlmanacElement_sequence_of,
+ 1, 36);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSAlmanacModel_sequence[] = {
+ { &hf_rrlp_weekNumber1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
+ { &hf_rrlp_svIDMask , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVIDMASK },
+ { &hf_rrlp_toa , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_255 },
+ { &hf_rrlp_ioda , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_3 },
+ { &hf_rrlp_ganssAlmanacList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSSAlmanacElement },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSAlmanacModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSAlmanacModel, GANSSAlmanacModel_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSUTCModel_sequence[] = {
+ { &hf_rrlp_ganssUtcA1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
+ { &hf_rrlp_ganssUtcA0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
+ { &hf_rrlp_ganssUtcTot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
+ { &hf_rrlp_ganssUtcWNt , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
+ { &hf_rrlp_ganssUtcDeltaTls, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
+ { &hf_rrlp_ganssUtcWNlsf , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
+ { &hf_rrlp_ganssUtcDN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
+ { &hf_rrlp_ganssUtcDeltaTlsf, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSUTCModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSUTCModel, GANSSUTCModel_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSGenericAssistDataElement_sequence[] = {
+ { &hf_rrlp_ganssID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_7 },
+ { &hf_rrlp_ganssTimeModel , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_SeqOfGANSSTimeModel },
+ { &hf_rrlp_ganssDiffCorrections, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSDiffCorrections },
+ { &hf_rrlp_ganssNavigationModel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSNavModel },
+ { &hf_rrlp_ganssRealTimeIntegrity, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSRealTimeIntegrity },
+ { &hf_rrlp_ganssDataBitAssist, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSDataBitAssist },
+ { &hf_rrlp_ganssRefMeasurementAssist, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSRefMeasurementAssist },
+ { &hf_rrlp_ganssAlmanacModel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSAlmanacModel },
+ { &hf_rrlp_ganssUTCModel , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSUTCModel },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSGenericAssistDataElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSGenericAssistDataElement, GANSSGenericAssistDataElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfGANSSGenericAssistDataElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfGANSSGenericAssistDataElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSGenericAssistDataElement },
+};
+
+static int
+dissect_rrlp_SeqOfGANSSGenericAssistDataElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfGANSSGenericAssistDataElement, SeqOfGANSSGenericAssistDataElement_sequence_of,
+ 1, 8);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSS_ControlHeader_sequence[] = {
+ { &hf_rrlp_ganssCommonAssistData, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSCommonAssistData },
+ { &hf_rrlp_ganssGenericAssistDataList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_SeqOfGANSSGenericAssistDataElement },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSS_ControlHeader(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSS_ControlHeader, GANSS_ControlHeader_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSS_AssistData_sequence[] = {
+ { &hf_rrlp_ganss_controlHeader, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSS_ControlHeader },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSS_AssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSS_AssistData, GANSS_AssistData_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_RequiredResponseTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 1U, 128U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t Rel7_MsrPosition_Req_Extension_sequence[] = {
+ { &hf_rrlp_velocityRequested, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NULL },
+ { &hf_rrlp_ganssPositionMethod, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSPositioningMethod },
+ { &hf_rrlp_ganss_AssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSS_AssistData },
+ { &hf_rrlp_ganssCarrierPhaseMeasurementRequest, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NULL },
+ { &hf_rrlp_ganssTODGSMTimeAssociationMeasurementRequest, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NULL },
+ { &hf_rrlp_requiredResponseTime, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_RequiredResponseTime },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_Rel7_MsrPosition_Req_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_Rel7_MsrPosition_Req_Extension, Rel7_MsrPosition_Req_Extension_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t MsrPosition_Req_sequence[] = {
+ { &hf_rrlp_positionInstruct, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_PositionInstruct },
+ { &hf_rrlp_referenceAssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ReferenceAssistData },
+ { &hf_rrlp_msrAssistData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_MsrAssistData },
+ { &hf_rrlp_systemInfoAssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_SystemInfoAssistData },
+ { &hf_rrlp_gps_AssistData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPS_AssistData },
+ { &hf_rrlp_extensionContainer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ExtensionContainer },
+ { &hf_rrlp_rel98_MsrPosition_Req_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel98_MsrPosition_Req_Extension },
+ { &hf_rrlp_rel5_MsrPosition_Req_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel5_MsrPosition_Req_Extension },
+ { &hf_rrlp_rel7_MsrPosition_Req_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel7_MsrPosition_Req_Extension },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_MsrPosition_Req(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_MsrPosition_Req, MsrPosition_Req_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_2_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 2U, 3U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_1_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 1U, 3U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const value_string rrlp_ReferenceRelation_vals[] = {
+ { 0, "secondBTSThirdSet" },
+ { 1, "secondBTSSecondSet" },
+ { 2, "firstBTSFirstSet" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_rrlp_ReferenceRelation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 3, NULL, FALSE, 0, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t MultipleSets_sequence[] = {
+ { &hf_rrlp_nbrOfSets , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_2_3 },
+ { &hf_rrlp_nbrOfReferenceBTSs, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_3 },
+ { &hf_rrlp_referenceRelation, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_ReferenceRelation },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_MultipleSets(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_MultipleSets, MultipleSets_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t BSICAndCarrier_sequence[] = {
+ { &hf_rrlp_carrier , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BCCHCarrier },
+ { &hf_rrlp_bsic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BSIC },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_BSICAndCarrier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_BSICAndCarrier, BSICAndCarrier_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_CellID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 65535U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_RequestIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 1U, 16U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_SystemInfoIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 1U, 32U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_LAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 65535U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t CellIDAndLAC_sequence[] = {
+ { &hf_rrlp_referenceLAC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_LAC },
+ { &hf_rrlp_referenceCI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_CellID },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_CellIDAndLAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_CellIDAndLAC, CellIDAndLAC_sequence);
+
+ return offset;
+}
+
+
+static const value_string rrlp_ReferenceIdentityType_vals[] = {
+ { 0, "bsicAndCarrier" },
+ { 1, "ci" },
+ { 2, "requestIndex" },
+ { 3, "systemInfoIndex" },
+ { 4, "ciAndLAC" },
+ { 0, NULL }
+};
+
+static const per_choice_t ReferenceIdentityType_choice[] = {
+ { 0, &hf_rrlp_bsicAndCarrier , ASN1_NO_EXTENSIONS , dissect_rrlp_BSICAndCarrier },
+ { 1, &hf_rrlp_ci , ASN1_NO_EXTENSIONS , dissect_rrlp_CellID },
+ { 2, &hf_rrlp_requestIndex , ASN1_NO_EXTENSIONS , dissect_rrlp_RequestIndex },
+ { 3, &hf_rrlp_systemInfoIndex, ASN1_NO_EXTENSIONS , dissect_rrlp_SystemInfoIndex },
+ { 4, &hf_rrlp_ciAndLAC , ASN1_NO_EXTENSIONS , dissect_rrlp_CellIDAndLAC },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_rrlp_ReferenceIdentityType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_ReferenceIdentityType, ReferenceIdentityType_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfReferenceIdentityType_sequence_of[1] = {
+ { &hf_rrlp_SeqOfReferenceIdentityType_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_ReferenceIdentityType },
+};
+
+static int
+dissect_rrlp_SeqOfReferenceIdentityType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfReferenceIdentityType, SeqOfReferenceIdentityType_sequence_of,
+ 1, 3);
+
+ return offset;
+}
+
+
+static const per_sequence_t ReferenceIdentity_sequence[] = {
+ { &hf_rrlp_refBTSList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfReferenceIdentityType },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_ReferenceIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_ReferenceIdentity, ReferenceIdentity_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_42431(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 42431U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_ModuloTimeSlot(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 3U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_RefQuality(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 31U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_NumOfMeasurements(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 7U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t TOA_MeasurementsOfRef_sequence[] = {
+ { &hf_rrlp_refQuality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_RefQuality },
+ { &hf_rrlp_numOfMeasurements, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_NumOfMeasurements },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_TOA_MeasurementsOfRef(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_TOA_MeasurementsOfRef, TOA_MeasurementsOfRef_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_StdResolution(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 3U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_960(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 960U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t MultiFrameCarrier_sequence[] = {
+ { &hf_rrlp_bcchCarrier , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BCCHCarrier },
+ { &hf_rrlp_multiFrameOffset, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_MultiFrameOffset },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_MultiFrameCarrier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_MultiFrameCarrier, MultiFrameCarrier_sequence);
+
+ return offset;
+}
+
+
+static const value_string rrlp_NeighborIdentity_vals[] = {
+ { 0, "bsicAndCarrier" },
+ { 1, "ci" },
+ { 2, "multiFrameCarrier" },
+ { 3, "requestIndex" },
+ { 4, "systemInfoIndex" },
+ { 5, "ciAndLAC" },
{ 0, NULL }
};
{ 8, "notProcessed" },
{ 9, "refBTSForGPSNotServingBTS" },
{ 10, "refBTSForEOTDNotServingBTS" },
+ { 11, "notEnoughGANSSSats" },
+ { 12, "ganssAssDataMissing" },
+ { 13, "refBTSForGANSSNotServingBTS" },
{ 0, NULL }
};
static int
dissect_rrlp_LocErrorReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
- 11, NULL, TRUE, 0, NULL);
+ 11, NULL, TRUE, 3, NULL);
return offset;
}
}
+
+static int
+dissect_rrlp_GANSSAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 1, maxGANSSAssistanceData, NULL);
+
+ return offset;
+}
+
+
static const per_sequence_t AdditionalAssistanceData_sequence[] = {
{ &hf_rrlp_gpsAssistanceData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPSAssistanceData },
{ &hf_rrlp_extensionContainer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ExtensionContainer },
+ { &hf_rrlp_ganssAssistanceData, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GANSSAssistanceData },
{ NULL, 0, 0, NULL }
};
}
-
-static int
-dissect_rrlp_INTEGER_0_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 0U, 127U, NULL, FALSE);
-
- return offset;
-}
-
-
static const per_sequence_t GPSTimeAssistanceMeasurements_sequence[] = {
{ &hf_rrlp_referenceFrameMSB, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 },
{ &hf_rrlp_gpsTowSubms , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_9999 },
}
+
+static int
+dissect_rrlp_VelocityEstimate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 4, 7, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t ReferenceFrame_sequence[] = {
+ { &hf_rrlp_referenceFN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_65535 },
+ { &hf_rrlp_referenceFNMSB , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_63 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_ReferenceFrame(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_ReferenceFrame, ReferenceFrame_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_GANSSTODm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 3599999U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_16384(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 16384U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const asn_namedbit PositionData_bits[] = {
+ { 0, &hf_rrlp_PositionData_e_otd, -1, -1, "e-otd", NULL },
+ { 1, &hf_rrlp_PositionData_gps, -1, -1, "gps", NULL },
+ { 2, &hf_rrlp_PositionData_galileo, -1, -1, "galileo", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_rrlp_PositionData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
+ 3, 16, FALSE, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSLocationInfo_sequence[] = {
+ { &hf_rrlp_referenceFrame , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ReferenceFrame },
+ { &hf_rrlp_ganssTODm , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSTODm },
+ { &hf_rrlp_ganssTODFrac , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_16384 },
+ { &hf_rrlp_ganssTODUncertainty, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSTODUncertainty },
+ { &hf_rrlp_ganssTimeID1 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_3 },
+ { &hf_rrlp_fixType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_FixType },
+ { &hf_rrlp_posData , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_PositionData },
+ { &hf_rrlp_stationaryIndication, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_1 },
+ { &hf_rrlp_posEstimate , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_Ext_GeographicalInformation },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSLocationInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSLocationInfo, GANSSLocationInfo_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_2097151(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 2097151U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSS_SgnElement_sequence[] = {
+ { &hf_rrlp_svID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &hf_rrlp_cNo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 },
+ { &hf_rrlp_mpathDet , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_MpathIndic },
+ { &hf_rrlp_carrierQualityInd, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_3 },
+ { &hf_rrlp_codePhase1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2097151 },
+ { &hf_rrlp_integerCodePhase, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_63 },
+ { &hf_rrlp_codePhaseRMSError, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 },
+ { &hf_rrlp_doppler , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_adr , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_33554431 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSS_SgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSS_SgnElement, GANSS_SgnElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfGANSS_SgnElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfGANSS_SgnElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSS_SgnElement },
+};
+
+static int
+dissect_rrlp_SeqOfGANSS_SgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfGANSS_SgnElement, SeqOfGANSS_SgnElement_sequence_of,
+ 1, 16);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSS_SgnTypeElement_sequence[] = {
+ { &hf_rrlp_ganssSignalID2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_15 },
+ { &hf_rrlp_ganss_SgnList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSS_SgnElement },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSS_SgnTypeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSS_SgnTypeElement, GANSS_SgnTypeElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfGANSS_SgnTypeElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfGANSS_SgnTypeElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSS_SgnTypeElement },
+};
+
+static int
+dissect_rrlp_SeqOfGANSS_SgnTypeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfGANSS_SgnTypeElement, SeqOfGANSS_SgnTypeElement_sequence_of,
+ 1, 6);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSS_MsrSetElement_sequence[] = {
+ { &hf_rrlp_referenceFrame , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_ReferenceFrame },
+ { &hf_rrlp_ganssTODm , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSTODm },
+ { &hf_rrlp_deltaGNASSTOD , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_127 },
+ { &hf_rrlp_ganssTODUncertainty, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSTODUncertainty },
+ { &hf_rrlp_ganss_SgnTypeList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSS_SgnTypeElement },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSS_MsrSetElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSS_MsrSetElement, GANSS_MsrSetElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfGANSS_MsrSetElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfGANSS_MsrSetElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSS_MsrSetElement },
+};
+
+static int
+dissect_rrlp_SeqOfGANSS_MsrSetElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfGANSS_MsrSetElement, SeqOfGANSS_MsrSetElement_sequence_of,
+ 1, 3);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSMeasureInfo_sequence[] = {
+ { &hf_rrlp_ganssMsrSetList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSS_MsrSetElement },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSMeasureInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSMeasureInfo, GANSSMeasureInfo_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t Rel_7_MsrPosition_Rsp_Extension_sequence[] = {
+ { &hf_rrlp_velEstimate , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_VelocityEstimate },
+ { &hf_rrlp_ganssLocationInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSLocationInfo },
+ { &hf_rrlp_ganssMeasureInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSMeasureInfo },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_Rel_7_MsrPosition_Rsp_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_Rel_7_MsrPosition_Rsp_Extension, Rel_7_MsrPosition_Rsp_Extension_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t MsrPosition_Rsp_sequence[] = {
{ &hf_rrlp_multipleSets , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_MultipleSets },
{ &hf_rrlp_referenceIdentity, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ReferenceIdentity },
{ &hf_rrlp_extensionContainer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ExtensionContainer },
{ &hf_rrlp_rel_98_MsrPosition_Rsp_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel_98_MsrPosition_Rsp_Extension },
{ &hf_rrlp_rel_5_MsrPosition_Rsp_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel_5_MsrPosition_Rsp_Extension },
+ { &hf_rrlp_rel_7_MsrPosition_Rsp_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel_7_MsrPosition_Rsp_Extension },
{ NULL, 0, 0, NULL }
};
static int
dissect_rrlp_Rel5_AssistanceData_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
- ett_rrlp_Rel5_AssistanceData_Extension, Rel5_AssistanceData_Extension_sequence);
+ ett_rrlp_Rel5_AssistanceData_Extension, Rel5_AssistanceData_Extension_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t Rel7_AssistanceData_Extension_sequence[] = {
+ { &hf_rrlp_ganss_AssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSS_AssistData },
+ { &hf_rrlp_ganssCarrierPhaseMeasurementRequest, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NULL },
+ { &hf_rrlp_ganssTODGSMTimeAssociationMeasurementRequest, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NULL },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_Rel7_AssistanceData_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_Rel7_AssistanceData_Extension, Rel7_AssistanceData_Extension_sequence);
return offset;
}
{ &hf_rrlp_extensionContainer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ExtensionContainer },
{ &hf_rrlp_rel98_AssistanceData_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel98_AssistanceData_Extension },
{ &hf_rrlp_rel5_AssistanceData_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel5_AssistanceData_Extension },
+ { &hf_rrlp_rel7_AssistanceData_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel7_AssistanceData_Extension },
{ NULL, 0, 0, NULL }
};
static int
dissect_rrlp_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 10 "rrlp.cnf"
+#line 26 "rrlp.cnf"
proto_tree_add_item(tree, proto_rrlp, tvb, 0, -1, FALSE);
if (check_col(actx->pinfo->cinfo, COL_PROTOCOL))
col_append_str(actx->pinfo->cinfo, COL_PROTOCOL, "/RRLP");
- offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrlp_PDU, PDU_sequence);
+ return offset;
+}
+
+
+static const per_sequence_t SLR_Arg_PCS_Extensions_sequence[] = {
+ { &hf_rrlp_na_ESRK_Request, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_NULL },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_SLR_Arg_PCS_Extensions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SLR_Arg_PCS_Extensions, SLR_Arg_PCS_Extensions_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SLR_ArgExtensionContainer_sequence[] = {
+ { &hf_rrlp_privateExtensionList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_PrivateExtensionList },
+ { &hf_rrlp_slr_Arg_PCS_Extensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_SLR_Arg_PCS_Extensions },
+ { NULL, 0, 0, NULL }
+};
+static int
+dissect_rrlp_SLR_ArgExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SLR_ArgExtensionContainer, SLR_ArgExtensionContainer_sequence);
return offset;
}
/*--- End of included file: packet-rrlp-fn.c ---*/
-#line 76 "packet-rrlp-template.c"
+#line 74 "packet-rrlp-template.c"
/*--- proto_register_rrlp -------------------------------------------*/
"rrlp.GPS_AssistData", HFILL }},
{ &hf_rrlp_extensionContainer,
{ "extensionContainer", "rrlp.extensionContainer",
- FT_BYTES, BASE_HEX, NULL, 0,
+ FT_NONE, BASE_NONE, NULL, 0,
"rrlp.ExtensionContainer", HFILL }},
{ &hf_rrlp_rel98_MsrPosition_Req_extension,
{ "rel98-MsrPosition-Req-extension", "rrlp.rel98_MsrPosition_Req_extension",
{ "rel5-MsrPosition-Req-extension", "rrlp.rel5_MsrPosition_Req_extension",
FT_NONE, BASE_NONE, NULL, 0,
"rrlp.Rel5_MsrPosition_Req_Extension", HFILL }},
+ { &hf_rrlp_rel7_MsrPosition_Req_extension,
+ { "rel7-MsrPosition-Req-extension", "rrlp.rel7_MsrPosition_Req_extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.Rel7_MsrPosition_Req_Extension", HFILL }},
{ &hf_rrlp_multipleSets,
{ "multipleSets", "rrlp.multipleSets",
FT_NONE, BASE_NONE, NULL, 0,
{ "rel-5-MsrPosition-Rsp-Extension", "rrlp.rel_5_MsrPosition_Rsp_Extension",
FT_NONE, BASE_NONE, NULL, 0,
"rrlp.Rel_5_MsrPosition_Rsp_Extension", HFILL }},
+ { &hf_rrlp_rel_7_MsrPosition_Rsp_Extension,
+ { "rel-7-MsrPosition-Rsp-Extension", "rrlp.rel_7_MsrPosition_Rsp_Extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.Rel_7_MsrPosition_Rsp_Extension", HFILL }},
{ &hf_rrlp_moreAssDataToBeSent,
{ "moreAssDataToBeSent", "rrlp.moreAssDataToBeSent",
FT_UINT32, BASE_DEC, VALS(rrlp_MoreAssDataToBeSent_vals), 0,
{ "rel5-AssistanceData-Extension", "rrlp.rel5_AssistanceData_Extension",
FT_NONE, BASE_NONE, NULL, 0,
"rrlp.Rel5_AssistanceData_Extension", HFILL }},
+ { &hf_rrlp_rel7_AssistanceData_Extension,
+ { "rel7-AssistanceData-Extension", "rrlp.rel7_AssistanceData_Extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.Rel7_AssistanceData_Extension", HFILL }},
{ &hf_rrlp_errorCause,
{ "errorCause", "rrlp.errorCause",
FT_UINT32, BASE_DEC, VALS(rrlp_ErrorCodes_vals), 0,
{ "gpsAssistanceData", "rrlp.gpsAssistanceData",
FT_BYTES, BASE_HEX, NULL, 0,
"rrlp.GPSAssistanceData", HFILL }},
+ { &hf_rrlp_ganssAssistanceData,
+ { "ganssAssistanceData", "rrlp.ganssAssistanceData",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "rrlp.GANSSAssistanceData", HFILL }},
{ &hf_rrlp_controlHeader,
{ "controlHeader", "rrlp.controlHeader",
FT_NONE, BASE_NONE, NULL, 0,
{ "transaction-ID", "rrlp.transaction_ID",
FT_UINT32, BASE_DEC, NULL, 0,
"rrlp.INTEGER_0_262143", HFILL }},
+ { &hf_rrlp_velocityRequested,
+ { "velocityRequested", "rrlp.velocityRequested",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.NULL", HFILL }},
+ { &hf_rrlp_ganssPositionMethod,
+ { "ganssPositionMethod", "rrlp.ganssPositionMethod",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "rrlp.GANSSPositioningMethod", HFILL }},
+ { &hf_rrlp_ganss_AssistData,
+ { "ganss-AssistData", "rrlp.ganss_AssistData",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSS_AssistData", HFILL }},
+ { &hf_rrlp_ganssCarrierPhaseMeasurementRequest,
+ { "ganssCarrierPhaseMeasurementRequest", "rrlp.ganssCarrierPhaseMeasurementRequest",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.NULL", HFILL }},
+ { &hf_rrlp_ganssTODGSMTimeAssociationMeasurementRequest,
+ { "ganssTODGSMTimeAssociationMeasurementRequest", "rrlp.ganssTODGSMTimeAssociationMeasurementRequest",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.NULL", HFILL }},
+ { &hf_rrlp_requiredResponseTime,
+ { "requiredResponseTime", "rrlp.requiredResponseTime",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.RequiredResponseTime", HFILL }},
+ { &hf_rrlp_ganss_controlHeader,
+ { "ganss-controlHeader", "rrlp.ganss_controlHeader",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSS_ControlHeader", HFILL }},
+ { &hf_rrlp_ganssCommonAssistData,
+ { "ganssCommonAssistData", "rrlp.ganssCommonAssistData",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSCommonAssistData", HFILL }},
+ { &hf_rrlp_ganssGenericAssistDataList,
+ { "ganssGenericAssistDataList", "rrlp.ganssGenericAssistDataList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfGANSSGenericAssistDataElement", HFILL }},
+ { &hf_rrlp_ganssReferenceTime,
+ { "ganssReferenceTime", "rrlp.ganssReferenceTime",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSReferenceTime", HFILL }},
+ { &hf_rrlp_ganssRefLocation,
+ { "ganssRefLocation", "rrlp.ganssRefLocation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSRefLocation", HFILL }},
+ { &hf_rrlp_ganssIonosphericModel,
+ { "ganssIonosphericModel", "rrlp.ganssIonosphericModel",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSIonosphericModel", HFILL }},
+ { &hf_rrlp_SeqOfGANSSGenericAssistDataElement_item,
+ { "Item", "rrlp.SeqOfGANSSGenericAssistDataElement_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSGenericAssistDataElement", HFILL }},
+ { &hf_rrlp_ganssID,
+ { "ganssID", "rrlp.ganssID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_7", HFILL }},
+ { &hf_rrlp_ganssTimeModel,
+ { "ganssTimeModel", "rrlp.ganssTimeModel",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfGANSSTimeModel", HFILL }},
+ { &hf_rrlp_ganssDiffCorrections,
+ { "ganssDiffCorrections", "rrlp.ganssDiffCorrections",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSDiffCorrections", HFILL }},
+ { &hf_rrlp_ganssNavigationModel,
+ { "ganssNavigationModel", "rrlp.ganssNavigationModel",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSNavModel", HFILL }},
+ { &hf_rrlp_ganssRealTimeIntegrity,
+ { "ganssRealTimeIntegrity", "rrlp.ganssRealTimeIntegrity",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSRealTimeIntegrity", HFILL }},
+ { &hf_rrlp_ganssDataBitAssist,
+ { "ganssDataBitAssist", "rrlp.ganssDataBitAssist",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSDataBitAssist", HFILL }},
+ { &hf_rrlp_ganssRefMeasurementAssist,
+ { "ganssRefMeasurementAssist", "rrlp.ganssRefMeasurementAssist",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSRefMeasurementAssist", HFILL }},
+ { &hf_rrlp_ganssAlmanacModel,
+ { "ganssAlmanacModel", "rrlp.ganssAlmanacModel",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSAlmanacModel", HFILL }},
+ { &hf_rrlp_ganssUTCModel,
+ { "ganssUTCModel", "rrlp.ganssUTCModel",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSUTCModel", HFILL }},
+ { &hf_rrlp_ganssRefTimeInfo,
+ { "ganssRefTimeInfo", "rrlp.ganssRefTimeInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSRefTimeInfo", HFILL }},
+ { &hf_rrlp_ganssTOD_GSMTimeAssociation,
+ { "ganssTOD-GSMTimeAssociation", "rrlp.ganssTOD_GSMTimeAssociation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSTOD_GSMTimeAssociation", HFILL }},
+ { &hf_rrlp_ganssDay,
+ { "ganssDay", "rrlp.ganssDay",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_8191", HFILL }},
+ { &hf_rrlp_ganssTOD,
+ { "ganssTOD", "rrlp.ganssTOD",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.GANSSTOD", HFILL }},
+ { &hf_rrlp_ganssTODUncertainty,
+ { "ganssTODUncertainty", "rrlp.ganssTODUncertainty",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.GANSSTODUncertainty", HFILL }},
+ { &hf_rrlp_ganssTimeID,
+ { "ganssTimeID", "rrlp.ganssTimeID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_7", HFILL }},
+ { &hf_rrlp_frameDrift,
+ { "frameDrift", "rrlp.frameDrift",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.FrameDrift", HFILL }},
+ { &hf_rrlp_ganssIonoModel,
+ { "ganssIonoModel", "rrlp.ganssIonoModel",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSIonosphereModel", HFILL }},
+ { &hf_rrlp_ganssIonoStormFlags,
+ { "ganssIonoStormFlags", "rrlp.ganssIonoStormFlags",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSIonoStormFlags", HFILL }},
+ { &hf_rrlp_ai0,
+ { "ai0", "rrlp.ai0",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_4095", HFILL }},
+ { &hf_rrlp_ai1,
+ { "ai1", "rrlp.ai1",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_4095", HFILL }},
+ { &hf_rrlp_ai2,
+ { "ai2", "rrlp.ai2",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_4095", HFILL }},
+ { &hf_rrlp_ionoStormFlag1,
+ { "ionoStormFlag1", "rrlp.ionoStormFlag1",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_1", HFILL }},
+ { &hf_rrlp_ionoStormFlag2,
+ { "ionoStormFlag2", "rrlp.ionoStormFlag2",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_1", HFILL }},
+ { &hf_rrlp_ionoStormFlag3,
+ { "ionoStormFlag3", "rrlp.ionoStormFlag3",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_1", HFILL }},
+ { &hf_rrlp_ionoStormFlag4,
+ { "ionoStormFlag4", "rrlp.ionoStormFlag4",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_1", HFILL }},
+ { &hf_rrlp_ionoStormFlag5,
+ { "ionoStormFlag5", "rrlp.ionoStormFlag5",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_1", HFILL }},
+ { &hf_rrlp_SeqOfGANSSTimeModel_item,
+ { "Item", "rrlp.SeqOfGANSSTimeModel_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSTimeModelElement", HFILL }},
+ { &hf_rrlp_ganssTimeModelRefTime,
+ { "ganssTimeModelRefTime", "rrlp.ganssTimeModelRefTime",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_65535", HFILL }},
+ { &hf_rrlp_tA0,
+ { "tA0", "rrlp.tA0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.TA0", HFILL }},
+ { &hf_rrlp_tA1,
+ { "tA1", "rrlp.tA1",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.TA1", HFILL }},
+ { &hf_rrlp_tA2,
+ { "tA2", "rrlp.tA2",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.TA2", HFILL }},
+ { &hf_rrlp_gnssTOID,
+ { "gnssTOID", "rrlp.gnssTOID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_7", HFILL }},
+ { &hf_rrlp_weekNumber,
+ { "weekNumber", "rrlp.weekNumber",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_8191", HFILL }},
+ { &hf_rrlp_dganssRefTime,
+ { "dganssRefTime", "rrlp.dganssRefTime",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_119", HFILL }},
+ { &hf_rrlp_sgnTypeList,
+ { "sgnTypeList", "rrlp.sgnTypeList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfSgnTypeElement", HFILL }},
+ { &hf_rrlp_SeqOfSgnTypeElement_item,
+ { "Item", "rrlp.SeqOfSgnTypeElement_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.SgnTypeElement", HFILL }},
+ { &hf_rrlp_ganssSignalID,
+ { "ganssSignalID", "rrlp.ganssSignalID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.GANSSSignalID", HFILL }},
+ { &hf_rrlp_ganssStatusHealth,
+ { "ganssStatusHealth", "rrlp.ganssStatusHealth",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_7", HFILL }},
+ { &hf_rrlp_dganssSgnList,
+ { "dganssSgnList", "rrlp.dganssSgnList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfDGANSSSgnElement", HFILL }},
+ { &hf_rrlp_SeqOfDGANSSSgnElement_item,
+ { "Item", "rrlp.SeqOfDGANSSSgnElement_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.DGANSSSgnElement", HFILL }},
+ { &hf_rrlp_svID,
+ { "svID", "rrlp.svID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SVID", HFILL }},
+ { &hf_rrlp_iod,
+ { "iod", "rrlp.iod",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_1023", HFILL }},
+ { &hf_rrlp_nonBroadcastIndFlag,
+ { "nonBroadcastIndFlag", "rrlp.nonBroadcastIndFlag",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_1", HFILL }},
+ { &hf_rrlp_toeMSB,
+ { "toeMSB", "rrlp.toeMSB",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_31", HFILL }},
+ { &hf_rrlp_eMSB,
+ { "eMSB", "rrlp.eMSB",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_127", HFILL }},
+ { &hf_rrlp_sqrtAMBS,
+ { "sqrtAMBS", "rrlp.sqrtAMBS",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_63", HFILL }},
+ { &hf_rrlp_ganssSatelliteList,
+ { "ganssSatelliteList", "rrlp.ganssSatelliteList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfGANSSSatelliteElement", HFILL }},
+ { &hf_rrlp_SeqOfGANSSSatelliteElement_item,
+ { "Item", "rrlp.SeqOfGANSSSatelliteElement_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSSatelliteElement", HFILL }},
+ { &hf_rrlp_svHealth,
+ { "svHealth", "rrlp.svHealth",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M7_13", HFILL }},
+ { &hf_rrlp_ganssClockModel,
+ { "ganssClockModel", "rrlp.ganssClockModel",
+ FT_UINT32, BASE_DEC, VALS(rrlp_GANSSClockModel_vals), 0,
+ "rrlp.GANSSClockModel", HFILL }},
+ { &hf_rrlp_ganssOrbitModel,
+ { "ganssOrbitModel", "rrlp.ganssOrbitModel",
+ FT_UINT32, BASE_DEC, VALS(rrlp_GANSSOrbitModel_vals), 0,
+ "rrlp.GANSSOrbitModel", HFILL }},
+ { &hf_rrlp_keplerianSet,
+ { "keplerianSet", "rrlp.keplerianSet",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.NavModel_KeplerianSet", HFILL }},
+ { &hf_rrlp_keplerToeLSB,
+ { "keplerToeLSB", "rrlp.keplerToeLSB",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_511", HFILL }},
+ { &hf_rrlp_keplerW,
+ { "keplerW", "rrlp.keplerW",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M2147483648_2147483647", HFILL }},
+ { &hf_rrlp_keplerDeltaN,
+ { "keplerDeltaN", "rrlp.keplerDeltaN",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_keplerM0,
+ { "keplerM0", "rrlp.keplerM0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M2147483648_2147483647", HFILL }},
+ { &hf_rrlp_keplerOmegaDot,
+ { "keplerOmegaDot", "rrlp.keplerOmegaDot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M8388608_8388607", HFILL }},
+ { &hf_rrlp_keplerELSB,
+ { "keplerELSB", "rrlp.keplerELSB",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_33554431", HFILL }},
+ { &hf_rrlp_keplerIDot,
+ { "keplerIDot", "rrlp.keplerIDot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M8192_8191", HFILL }},
+ { &hf_rrlp_keplerAPowerHalfLSB,
+ { "keplerAPowerHalfLSB", "rrlp.keplerAPowerHalfLSB",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_67108863", HFILL }},
+ { &hf_rrlp_keplerI0,
+ { "keplerI0", "rrlp.keplerI0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M2147483648_2147483647", HFILL }},
+ { &hf_rrlp_keplerOmega0,
+ { "keplerOmega0", "rrlp.keplerOmega0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M2147483648_2147483647", HFILL }},
+ { &hf_rrlp_keplerCrs,
+ { "keplerCrs", "rrlp.keplerCrs",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_keplerCis,
+ { "keplerCis", "rrlp.keplerCis",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_keplerCus,
+ { "keplerCus", "rrlp.keplerCus",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_keplerCrc,
+ { "keplerCrc", "rrlp.keplerCrc",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_keplerCic,
+ { "keplerCic", "rrlp.keplerCic",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_keplerCuc,
+ { "keplerCuc", "rrlp.keplerCuc",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_standardClockModelList,
+ { "standardClockModelList", "rrlp.standardClockModelList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfStandardClockModelElement", HFILL }},
+ { &hf_rrlp_SeqOfStandardClockModelElement_item,
+ { "Item", "rrlp.SeqOfStandardClockModelElement_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.StandardClockModelElement", HFILL }},
+ { &hf_rrlp_stanClockTocLSB,
+ { "stanClockTocLSB", "rrlp.stanClockTocLSB",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_511", HFILL }},
+ { &hf_rrlp_stanClockAF2,
+ { "stanClockAF2", "rrlp.stanClockAF2",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M2048_2047", HFILL }},
+ { &hf_rrlp_stanClockAF1,
+ { "stanClockAF1", "rrlp.stanClockAF1",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M131072_131071", HFILL }},
+ { &hf_rrlp_stanClockAF0,
+ { "stanClockAF0", "rrlp.stanClockAF0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M134217728_134217727", HFILL }},
+ { &hf_rrlp_stanClockTgd,
+ { "stanClockTgd", "rrlp.stanClockTgd",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M512_511", HFILL }},
+ { &hf_rrlp_stanModelID,
+ { "stanModelID", "rrlp.stanModelID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_1", HFILL }},
+ { &hf_rrlp_ganssBadSignalList,
+ { "ganssBadSignalList", "rrlp.ganssBadSignalList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfBadSignalElement", HFILL }},
+ { &hf_rrlp_SeqOfBadSignalElement_item,
+ { "Item", "rrlp.SeqOfBadSignalElement_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.BadSignalElement", HFILL }},
+ { &hf_rrlp_badSVID,
+ { "badSVID", "rrlp.badSVID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SVID", HFILL }},
+ { &hf_rrlp_badSignalID,
+ { "badSignalID", "rrlp.badSignalID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_3", HFILL }},
+ { &hf_rrlp_ganssTOD1,
+ { "ganssTOD", "rrlp.ganssTOD",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_59", HFILL }},
+ { &hf_rrlp_ganssDataTypeID,
+ { "ganssDataTypeID", "rrlp.ganssDataTypeID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_2", HFILL }},
+ { &hf_rrlp_ganssDataBits,
+ { "ganssDataBits", "rrlp.ganssDataBits",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOf_GANSSDataBits", HFILL }},
+ { &hf_rrlp_SeqOf_GANSSDataBits_item,
+ { "Item", "rrlp.SeqOf_GANSSDataBits_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.GANSSDataBit", HFILL }},
+ { &hf_rrlp_ganssSignalID1,
+ { "ganssSignalID", "rrlp.ganssSignalID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_3", HFILL }},
+ { &hf_rrlp_ganssRefMeasAssitList,
+ { "ganssRefMeasAssitList", "rrlp.ganssRefMeasAssitList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfGANSSRefMeasurementElement", HFILL }},
+ { &hf_rrlp_SeqOfGANSSRefMeasurementElement_item,
+ { "Item", "rrlp.SeqOfGANSSRefMeasurementElement_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSRefMeasurementElement", HFILL }},
+ { &hf_rrlp_additionalDoppler,
+ { "additionalDoppler", "rrlp.additionalDoppler",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.AdditionalDopplerFields", HFILL }},
+ { &hf_rrlp_intCodePhase1,
+ { "intCodePhase", "rrlp.intCodePhase",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_127", HFILL }},
+ { &hf_rrlp_codePhaseSearchWindow1,
+ { "codePhaseSearchWindow", "rrlp.codePhaseSearchWindow",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_31", HFILL }},
+ { &hf_rrlp_additionalAngle,
+ { "additionalAngle", "rrlp.additionalAngle",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.AddionalAngleFields", HFILL }},
+ { &hf_rrlp_dopplerUncertainty1,
+ { "dopplerUncertainty", "rrlp.dopplerUncertainty",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_4", HFILL }},
+ { &hf_rrlp_weekNumber1,
+ { "weekNumber", "rrlp.weekNumber",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_255", HFILL }},
+ { &hf_rrlp_svIDMask,
+ { "svIDMask", "rrlp.svIDMask",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "rrlp.SVIDMASK", HFILL }},
+ { &hf_rrlp_toa,
+ { "toa", "rrlp.toa",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_255", HFILL }},
+ { &hf_rrlp_ioda,
+ { "ioda", "rrlp.ioda",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_3", HFILL }},
+ { &hf_rrlp_ganssAlmanacList,
+ { "ganssAlmanacList", "rrlp.ganssAlmanacList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfGANSSAlmanacElement", HFILL }},
+ { &hf_rrlp_SeqOfGANSSAlmanacElement_item,
+ { "Item", "rrlp.SeqOfGANSSAlmanacElement_item",
+ FT_UINT32, BASE_DEC, VALS(rrlp_GANSSAlmanacElement_vals), 0,
+ "rrlp.GANSSAlmanacElement", HFILL }},
+ { &hf_rrlp_keplerianAlmanacSet,
+ { "keplerianAlmanacSet", "rrlp.keplerianAlmanacSet",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.Almanac_KeplerianSet", HFILL }},
+ { &hf_rrlp_kepAlmanacE,
+ { "kepAlmanacE", "rrlp.kepAlmanacE",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_2047", HFILL }},
+ { &hf_rrlp_kepAlmanacDeltaI,
+ { "kepAlmanacDeltaI", "rrlp.kepAlmanacDeltaI",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M1024_1023", HFILL }},
+ { &hf_rrlp_kepAlmanacOmegaDot,
+ { "kepAlmanacOmegaDot", "rrlp.kepAlmanacOmegaDot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M1024_1023", HFILL }},
+ { &hf_rrlp_kepSVHealth,
+ { "kepSVHealth", "rrlp.kepSVHealth",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_15", HFILL }},
+ { &hf_rrlp_kepAlmanacAPowerHalf,
+ { "kepAlmanacAPowerHalf", "rrlp.kepAlmanacAPowerHalf",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M65536_65535", HFILL }},
+ { &hf_rrlp_kepAlmanacOmega0,
+ { "kepAlmanacOmega0", "rrlp.kepAlmanacOmega0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_kepAlmanacW,
+ { "kepAlmanacW", "rrlp.kepAlmanacW",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_kepAlmanacM0,
+ { "kepAlmanacM0", "rrlp.kepAlmanacM0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_kepAlmanacAF0,
+ { "kepAlmanacAF0", "rrlp.kepAlmanacAF0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M8192_8191", HFILL }},
+ { &hf_rrlp_kepAlmanacAF1,
+ { "kepAlmanacAF1", "rrlp.kepAlmanacAF1",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M1024_1023", HFILL }},
+ { &hf_rrlp_ganssUtcA1,
+ { "ganssUtcA1", "rrlp.ganssUtcA1",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M8388608_8388607", HFILL }},
+ { &hf_rrlp_ganssUtcA0,
+ { "ganssUtcA0", "rrlp.ganssUtcA0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M2147483648_2147483647", HFILL }},
+ { &hf_rrlp_ganssUtcTot,
+ { "ganssUtcTot", "rrlp.ganssUtcTot",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_255", HFILL }},
+ { &hf_rrlp_ganssUtcWNt,
+ { "ganssUtcWNt", "rrlp.ganssUtcWNt",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_255", HFILL }},
+ { &hf_rrlp_ganssUtcDeltaTls,
+ { "ganssUtcDeltaTls", "rrlp.ganssUtcDeltaTls",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M128_127", HFILL }},
+ { &hf_rrlp_ganssUtcWNlsf,
+ { "ganssUtcWNlsf", "rrlp.ganssUtcWNlsf",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_255", HFILL }},
+ { &hf_rrlp_ganssUtcDN,
+ { "ganssUtcDN", "rrlp.ganssUtcDN",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M128_127", HFILL }},
+ { &hf_rrlp_ganssUtcDeltaTlsf,
+ { "ganssUtcDeltaTlsf", "rrlp.ganssUtcDeltaTlsf",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M128_127", HFILL }},
+ { &hf_rrlp_velEstimate,
+ { "velEstimate", "rrlp.velEstimate",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "rrlp.VelocityEstimate", HFILL }},
+ { &hf_rrlp_ganssLocationInfo,
+ { "ganssLocationInfo", "rrlp.ganssLocationInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSLocationInfo", HFILL }},
+ { &hf_rrlp_ganssMeasureInfo,
+ { "ganssMeasureInfo", "rrlp.ganssMeasureInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSMeasureInfo", HFILL }},
+ { &hf_rrlp_referenceFrame,
+ { "referenceFrame", "rrlp.referenceFrame",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.ReferenceFrame", HFILL }},
+ { &hf_rrlp_ganssTODm,
+ { "ganssTODm", "rrlp.ganssTODm",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.GANSSTODm", HFILL }},
+ { &hf_rrlp_ganssTODFrac,
+ { "ganssTODFrac", "rrlp.ganssTODFrac",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_16384", HFILL }},
+ { &hf_rrlp_ganssTimeID1,
+ { "ganssTimeID", "rrlp.ganssTimeID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_3", HFILL }},
+ { &hf_rrlp_posData,
+ { "posData", "rrlp.posData",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "rrlp.PositionData", HFILL }},
+ { &hf_rrlp_stationaryIndication,
+ { "stationaryIndication", "rrlp.stationaryIndication",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_1", HFILL }},
+ { &hf_rrlp_referenceFN,
+ { "referenceFN", "rrlp.referenceFN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_65535", HFILL }},
+ { &hf_rrlp_referenceFNMSB,
+ { "referenceFNMSB", "rrlp.referenceFNMSB",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_63", HFILL }},
+ { &hf_rrlp_ganssMsrSetList,
+ { "ganssMsrSetList", "rrlp.ganssMsrSetList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfGANSS_MsrSetElement", HFILL }},
+ { &hf_rrlp_SeqOfGANSS_MsrSetElement_item,
+ { "Item", "rrlp.SeqOfGANSS_MsrSetElement_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSS_MsrSetElement", HFILL }},
+ { &hf_rrlp_deltaGNASSTOD,
+ { "deltaGNASSTOD", "rrlp.deltaGNASSTOD",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_127", HFILL }},
+ { &hf_rrlp_ganss_SgnTypeList,
+ { "ganss-SgnTypeList", "rrlp.ganss_SgnTypeList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfGANSS_SgnTypeElement", HFILL }},
+ { &hf_rrlp_SeqOfGANSS_SgnTypeElement_item,
+ { "Item", "rrlp.SeqOfGANSS_SgnTypeElement_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSS_SgnTypeElement", HFILL }},
+ { &hf_rrlp_ganssSignalID2,
+ { "ganssSignalID", "rrlp.ganssSignalID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_15", HFILL }},
+ { &hf_rrlp_ganss_SgnList,
+ { "ganss-SgnList", "rrlp.ganss_SgnList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfGANSS_SgnElement", HFILL }},
+ { &hf_rrlp_SeqOfGANSS_SgnElement_item,
+ { "Item", "rrlp.SeqOfGANSS_SgnElement_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSS_SgnElement", HFILL }},
+ { &hf_rrlp_mpathDet,
+ { "mpathDet", "rrlp.mpathDet",
+ FT_UINT32, BASE_DEC, VALS(rrlp_MpathIndic_vals), 0,
+ "rrlp.MpathIndic", HFILL }},
+ { &hf_rrlp_carrierQualityInd,
+ { "carrierQualityInd", "rrlp.carrierQualityInd",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_3", HFILL }},
+ { &hf_rrlp_codePhase1,
+ { "codePhase", "rrlp.codePhase",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_2097151", HFILL }},
+ { &hf_rrlp_integerCodePhase,
+ { "integerCodePhase", "rrlp.integerCodePhase",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_63", HFILL }},
+ { &hf_rrlp_codePhaseRMSError,
+ { "codePhaseRMSError", "rrlp.codePhaseRMSError",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_63", HFILL }},
+ { &hf_rrlp_adr,
+ { "adr", "rrlp.adr",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_33554431", HFILL }},
+ { &hf_rrlp_privateExtensionList,
+ { "privateExtensionList", "rrlp.privateExtensionList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.PrivateExtensionList", HFILL }},
+ { &hf_rrlp_pcs_Extensions,
+ { "pcs-Extensions", "rrlp.pcs_Extensions",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.PCS_Extensions", HFILL }},
+ { &hf_rrlp_slr_Arg_PCS_Extensions,
+ { "slr-Arg-PCS-Extensions", "rrlp.slr_Arg_PCS_Extensions",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.SLR_Arg_PCS_Extensions", HFILL }},
+ { &hf_rrlp_PrivateExtensionList_item,
+ { "Item", "rrlp.PrivateExtensionList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.PrivateExtension", HFILL }},
+ { &hf_rrlp_extId,
+ { "extId", "rrlp.extId",
+ FT_OID, BASE_NONE, NULL, 0,
+ "rrlp.OBJECT_IDENTIFIER", HFILL }},
+ { &hf_rrlp_extType,
+ { "extType", "rrlp.extType",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.T_extType", HFILL }},
+ { &hf_rrlp_na_ESRK_Request,
+ { "na-ESRK-Request", "rrlp.na_ESRK_Request",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.NULL", HFILL }},
+ { &hf_rrlp_GANSSPositioningMethod_gps,
+ { "gps", "rrlp.gps",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_rrlp_GANSSPositioningMethod_galileo,
+ { "galileo", "rrlp.galileo",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_rrlp_PositionData_e_otd,
+ { "e-otd", "rrlp.e-otd",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_rrlp_PositionData_gps,
+ { "gps", "rrlp.gps",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_rrlp_PositionData_galileo,
+ { "galileo", "rrlp.galileo",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ "", HFILL }},
/*--- End of included file: packet-rrlp-hfarr.c ---*/
-#line 85 "packet-rrlp-template.c"
+#line 83 "packet-rrlp-template.c"
};
/* List of subtrees */
&ett_rrlp_Rel5_MsrPosition_Req_Extension,
&ett_rrlp_Rel5_AssistanceData_Extension,
&ett_rrlp_Rel_5_ProtocolError_Extension,
+ &ett_rrlp_Rel7_MsrPosition_Req_Extension,
+ &ett_rrlp_GANSSPositioningMethod,
+ &ett_rrlp_GANSS_AssistData,
+ &ett_rrlp_GANSS_ControlHeader,
+ &ett_rrlp_GANSSCommonAssistData,
+ &ett_rrlp_SeqOfGANSSGenericAssistDataElement,
+ &ett_rrlp_GANSSGenericAssistDataElement,
+ &ett_rrlp_GANSSReferenceTime,
+ &ett_rrlp_GANSSRefTimeInfo,
+ &ett_rrlp_GANSSTOD_GSMTimeAssociation,
+ &ett_rrlp_GANSSRefLocation,
+ &ett_rrlp_GANSSIonosphericModel,
+ &ett_rrlp_GANSSIonosphereModel,
+ &ett_rrlp_GANSSIonoStormFlags,
+ &ett_rrlp_SeqOfGANSSTimeModel,
+ &ett_rrlp_GANSSTimeModelElement,
+ &ett_rrlp_GANSSDiffCorrections,
+ &ett_rrlp_SeqOfSgnTypeElement,
+ &ett_rrlp_SgnTypeElement,
+ &ett_rrlp_SeqOfDGANSSSgnElement,
+ &ett_rrlp_DGANSSSgnElement,
+ &ett_rrlp_GANSSNavModel,
+ &ett_rrlp_SeqOfGANSSSatelliteElement,
+ &ett_rrlp_GANSSSatelliteElement,
+ &ett_rrlp_GANSSOrbitModel,
+ &ett_rrlp_NavModel_KeplerianSet,
+ &ett_rrlp_GANSSClockModel,
+ &ett_rrlp_SeqOfStandardClockModelElement,
+ &ett_rrlp_StandardClockModelElement,
+ &ett_rrlp_GANSSRealTimeIntegrity,
+ &ett_rrlp_SeqOfBadSignalElement,
+ &ett_rrlp_BadSignalElement,
+ &ett_rrlp_GANSSDataBitAssist,
+ &ett_rrlp_SeqOf_GANSSDataBits,
+ &ett_rrlp_GANSSRefMeasurementAssist,
+ &ett_rrlp_SeqOfGANSSRefMeasurementElement,
+ &ett_rrlp_GANSSRefMeasurementElement,
+ &ett_rrlp_AdditionalDopplerFields,
+ &ett_rrlp_GANSSAlmanacModel,
+ &ett_rrlp_SeqOfGANSSAlmanacElement,
+ &ett_rrlp_GANSSAlmanacElement,
+ &ett_rrlp_Almanac_KeplerianSet,
+ &ett_rrlp_GANSSUTCModel,
+ &ett_rrlp_Rel_7_MsrPosition_Rsp_Extension,
+ &ett_rrlp_GANSSLocationInfo,
+ &ett_rrlp_PositionData,
+ &ett_rrlp_ReferenceFrame,
+ &ett_rrlp_GANSSMeasureInfo,
+ &ett_rrlp_SeqOfGANSS_MsrSetElement,
+ &ett_rrlp_GANSS_MsrSetElement,
+ &ett_rrlp_SeqOfGANSS_SgnTypeElement,
+ &ett_rrlp_GANSS_SgnTypeElement,
+ &ett_rrlp_SeqOfGANSS_SgnElement,
+ &ett_rrlp_GANSS_SgnElement,
+ &ett_rrlp_Rel7_AssistanceData_Extension,
+ &ett_rrlp_ExtensionContainer,
+ &ett_rrlp_SLR_ArgExtensionContainer,
+ &ett_rrlp_PrivateExtensionList,
+ &ett_rrlp_PrivateExtension,
+ &ett_rrlp_PCS_Extensions,
+ &ett_rrlp_SLR_Arg_PCS_Extensions,
/*--- End of included file: packet-rrlp-ettarr.c ---*/
-#line 91 "packet-rrlp-template.c"
+#line 89 "packet-rrlp-template.c"
};