aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--asn1/rrlp/RRLP-Components.asn1182
-rw-r--r--asn1/rrlp/RRLP-Messages.asn9
-rw-r--r--asn1/rrlp/rrlp.cnf13
-rw-r--r--epan/dissectors/packet-rrlp.c4377
4 files changed, 5245 insertions, 336 deletions
diff --git a/asn1/rrlp/RRLP-Components.asn b/asn1/rrlp/RRLP-Components.asn
index ef7253bdbd..a25bd6adce 100644
--- a/asn1/rrlp/RRLP-Components.asn
+++ b/asn1/rrlp/RRLP-Components.asn
@@ -1,6 +1,6 @@
-- RRLP-Components.asn
-- $Id$
--- Taken from 3GPP TS 44.031 V7.4.0 (2007-03)
+-- Taken from 3GPP TS 44.031 V9.1.0 (2009-12)
-- http://www.3gpp.org/ftp/Specs/archive/44_series/44.031/44031-740.zip/44031-740.doc
--
-- 4 Components
@@ -47,6 +47,7 @@ rel5-MsrPosition-Req-extension Rel5-MsrPosition-Req-Extension OPTIONAL,
rel7-MsrPosition-Req-extension Rel7-MsrPosition-Req-Extension OPTIONAL
}
+
-- Measurement Position response component
MsrPosition-Rsp ::= SEQUENCE {
multipleSets MultipleSets OPTIONAL,
@@ -62,9 +63,9 @@ MsrPosition-Rsp ::= SEQUENCE {
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
+ -- When RRLP pseudo-segmentation is used, rel-5-MsrPosition-Rsp-Extension
+ -- and other possible future extensions should be the ones included in
+ -- the 2nd MsrPosition-Rsp component.
rel-7-MsrPosition-Rsp-Extension
Rel-7-MsrPosition-Rsp-Extension OPTIONAL
}
@@ -96,6 +97,25 @@ ProtocolError ::= SEQUENCE {
rel-5-ProtocolError-Extension Rel-5-ProtocolError-Extension OPTIONAL
}
+-- Positioning Capability request component
+PosCapability-Req ::= SEQUENCE {
+ extended-reference Extended-reference,
+ gANSSPositionMethods GANSSPositionMethods OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...
+}
+
+-- Positioning Capability response component
+PosCapability-Rsp ::= SEQUENCE {
+ extended-reference Extended-reference,
+ posCapabilities PosCapabilities,
+ assistanceSupported AssistanceSupported OPTIONAL,
+ assistanceNeeded AssistanceNeeded OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...
+}
+
+-- add these defintions to RRLP-Components module
-- Position instructions
PositionInstruct ::= SEQUENCE {
-- Method type
@@ -122,7 +142,6 @@ AccuracyOpt ::= SEQUENCE {
-- The values of this field are defined in 3GPP TS 23.032 (Uncertainty code)
Accuracy ::= INTEGER (0..127)
-
-- Position Method
PositionMethod ::= ENUMERATED {
eotd (0),
@@ -515,6 +534,7 @@ AdditionalAssistanceData ::= SEQUENCE {
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
@@ -527,7 +547,6 @@ GANSSAssistanceData ::= OCTET STRING (SIZE (1..maxGANSSAssistanceData))
maxGANSSAssistanceData INTEGER ::= 40
-
-- Protocol Error Causes
ErrorCodes ::= ENUMERATED {
unDefined (0),
@@ -567,9 +586,9 @@ ControlHeader ::= SEQUENCE {
refLocation RefLocation OPTIONAL,
dgpsCorrections DGPSCorrections OPTIONAL,
navigationModel NavigationModel OPTIONAL,
- ionosphericModel IonosphericModel OPTIONAL,
+ ionosphericModel IonosphericModel OPTIONAL,
utcModel UTCModel OPTIONAL,
- almanac Almanac OPTIONAL,
+ almanac Almanac OPTIONAL,
acquisAssist AcquisAssist OPTIONAL,
realTimeIntegrity SeqOf-BadSatelliteSet OPTIONAL
}
@@ -654,7 +673,6 @@ SeqOfSatElement ::= SEQUENCE (SIZE (1..16)) OF SatElement
SatElement ::= SEQUENCE {
satelliteID SatelliteID,
-
--- Sequence number for ephemeris
iode INTEGER (0..239),
-- User Differential Range Error
@@ -937,12 +955,12 @@ ExpOTDUncertainty ::= INTEGER(0..7)
-- Release 98 extensions
-GPSReferenceTimeUncertainty ::= INTEGER (0 .. 127) -- Coding according to Annex
+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
+ referenceFrameMSB INTEGER (0 .. 63) OPTIONAL, -- MSB of frame number
+ gpsTowSubms INTEGER (0 .. 9999) OPTIONAL, -- in units of 100ns, for MS based AGPS
+ deltaTow INTEGER (0 .. 127) OPTIONAL, -- for MS assisted AGPS
gpsReferenceTimeUncertainty GPSReferenceTimeUncertainty OPTIONAL
}
@@ -1032,69 +1050,82 @@ Rel-5-ProtocolError-Extension::= SEQUENCE {
-- 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,
+ velocityRequested NULL OPTIONAL,
+ ganssPositionMethod GANSSPositioningMethod OPTIONAL,
+ ganss-AssistData GANSS-AssistData OPTIONAL,
+ ganssCarrierPhaseMeasurementRequest NULL OPTIONAL,
+ ganssTODGSMTimeAssociationMeasurementRequest NULL OPTIONAL,
+ requiredResponseTime RequiredResponseTime OPTIONAL,
+ add-GPS-AssistData Add-GPS-AssistData OPTIONAL,
+ ganssMultiFreqMeasurementRequest NULL OPTIONAL,
...
-- Further Release 7 extentions here
}
-- additional satellite systems may be added in future versions of the protocol
+-- Bit 0 of GANSSPositioningMethod bit map shall not be the only one set to TRUE (‘1’)
GANSSPositioningMethod ::= BIT STRING {
- gps (0),
- galileo (1)} (SIZE (2..16))
+ gps (0),
+ galileo (1),
+ sbas (2),
+ modernizedGPS (3),
+ qzss (4),
+ glonass (5) } (SIZE (2..16))
GANSS-AssistData ::= SEQUENCE {
ganss-controlHeader GANSS-ControlHeader
}
-
GANSS-ControlHeader ::= SEQUENCE {
- ganssCommonAssistData GANSSCommonAssistData OPTIONAL,
- ganssGenericAssistDataList SeqOfGANSSGenericAssistDataElement OPTIONAL
+ ganssCommonAssistData GANSSCommonAssistData OPTIONAL,
+ ganssGenericAssistDataList SeqOfGANSSGenericAssistDataElement OPTIONAL
}
-- GANSS Common Assistance Data Elements
GANSSCommonAssistData ::= SEQUENCE {
- ganssReferenceTime GANSSReferenceTime OPTIONAL,
- ganssRefLocation GANSSRefLocation OPTIONAL,
- ganssIonosphericModel GANSSIonosphericModel OPTIONAL,
- ...
+ ganssReferenceTime GANSSReferenceTime OPTIONAL,
+ ganssRefLocation GANSSRefLocation OPTIONAL,
+ ganssIonosphericModel GANSSIonosphericModel OPTIONAL,
+ ... ,
+ ganssAddIonosphericModel GANSSAddIonosphericModel OPTIONAL,
+ ganssEarthOrientParam GANSSEarthOrientParam 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,
- ...
+ ganssID INTEGER (0..7) OPTIONAL, -- Coding according to Annex
+ ganssTimeModel SeqOfGANSSTimeModel OPTIONAL,
+ ganssDiffCorrections GANSSDiffCorrections OPTIONAL,
+ ganssNavigationModel GANSSNavModel OPTIONAL,
+ ganssRealTimeIntegrity GANSSRealTimeIntegrity OPTIONAL,
+ ganssDataBitAssist GANSSDataBitAssist OPTIONAL,
+ ganssRefMeasurementAssist GANSSRefMeasurementAssist OPTIONAL,
+ ganssAlmanacModel GANSSAlmanacModel OPTIONAL,
+ ganssUTCModel GANSSUTCModel OPTIONAL,
+ ganssEphemerisExtension GANSSEphemerisExtension OPTIONAL,
+ ganssEphemerisExtCheck GANSSEphemerisExtensionCheck OPTIONAL,
+ ... ,
+ sbasID INTEGER (0..7) OPTIONAL, -- Coding according to Annex
+ ganssAddUTCModel GANSSAddUTCModel OPTIONAL,
+ ganssAuxiliaryInfo GANSSAuxiliaryInformation OPTIONAL,
+ ganssDiffCorrectionsValidityPeriod GANSSDiffCorrectionsValidityPeriod OPTIONAL
}
-- GANSS COMMON ASSISTANCE DATA ELEMENTS
-- GANSS Reference Time IE
GANSSReferenceTime ::= SEQUENCE {
- ganssRefTimeInfo GANSSRefTimeInfo,
- ganssTOD-GSMTimeAssociation GANSSTOD-GSMTimeAssociation OPTIONAL
+ 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
+ ganssDay INTEGER(0 .. 8191) OPTIONAL,
+ ganssTOD GANSSTOD,
+ ganssTODUncertainty GANSSTODUncertainty OPTIONAL,
+ ganssTimeID INTEGER (0 .. 7) OPTIONAL
}
-- GANSS TOD integer seconds
@@ -1110,7 +1141,7 @@ GANSSTOD-GSMTimeAssociation ::= SEQUENCE {
frameNumber FrameNumber,
timeSlot TimeSlot,
bitNumber BitNumber,
- frameDrift FrameDrift OPTIONAL
+ frameDrift FrameDrift OPTIONAL
}
-- Frame drift
@@ -1123,18 +1154,17 @@ GANSSRefLocation ::= SEQUENCE {
-- GANSS Ionospheric Model IE
-- GANSS Ionospheric Model consists of NeQuick model parameters and storm flags
-
GANSSIonosphericModel ::= SEQUENCE {
- ganssIonoModel GANSSIonosphereModel,
- ganssIonoStormFlags GANSSIonoStormFlags OPTIONAL,
- ...
+ 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)
+ ai0 INTEGER (0 .. 4095),
+ ai1 INTEGER (0 .. 4095),
+ ai2 INTEGER (0 .. 4095)
}
-- GANSS ionosphere storm flags
@@ -1146,6 +1176,24 @@ GANSSIonoStormFlags ::= SEQUENCE {
ionoStormFlag5 INTEGER (0 .. 1)
}
+-- GANSS Additional Ionospheric Model IE
+-- GANSS Additional Ionospheric Model consists of Klobuchar model parameters
+GANSSAddIonosphericModel ::= SEQUENCE {
+ dataID BIT STRING (SIZE (2)), -- Coding according to Annex
+ ionoModel IonosphericModel
+}
+
+-- GANSS Earth Orientation Paramaters IE
+GANSSEarthOrientParam ::= SEQUENCE {
+ teop INTEGER (0..65535),
+ pmX INTEGER (-1048576..1048575),
+ pmXdot INTEGER (-16384..16383),
+ pmY INTEGER (-1048576..1048575),
+ pmYdot INTEGER (-16384..16383),
+ deltaUT1 INTEGER (-1073741824..1073741823),
+ deltaUT1dot INTEGER (-262144..262143)
+}
+
-- GANSS GENERIC ASSISTANCE DATA ELEMENTS
-- GANSS Time Model IE consists of time offset and first and second order parameters to relate GNSS
@@ -1154,11 +1202,11 @@ 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
+ tA0 TA0,
+ tA1 TA1 OPTIONAL,
+ tA2 TA2 OPTIONAL,
+ gnssTOID INTEGER (0 .. 7), -- coding according to annex
+ weekNumber INTEGER (0 .. 8191) OPTIONAL
}
-- GANSS time model parameter A0
@@ -1170,6 +1218,7 @@ 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
@@ -1182,18 +1231,18 @@ SeqOfSgnTypeElement ::= SEQUENCE (SIZE (1..3)) OF SgnTypeElement -- max three si
-- 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 GANSSSignalID, -- signal type identity
+ ganssStatusHealth INTEGER (0 .. 7),
+ -- N_SAT can be read from number of elements of dganssSgnList
+ dganssSgnList SeqOfDGANSSSgnElement
}
-GANSSSignalID ::= INTEGER (0 .. 3) -- Coding according to Annex
+GANSSSignalID ::= INTEGER (0 .. 7) -- Coding according to Annex
SeqOfDGANSSSgnElement ::= SEQUENCE (SIZE (1..16)) OF DGANSSSgnElement
-- number of correction for signals
DGANSSSgnElement ::= SEQUENCE {
- svID SVID, -- Satellite identity
+ svID SVID, -- Satellite identity
--- Sequence number for GANSS Navigation Model that matches the DGANSS correction set
iod INTEGER (0 .. 1023),
@@ -1214,42 +1263,45 @@ 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
+ nonBroadcastIndFlag INTEGER (0 .. 1),
+ 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,
- ...
+ svID SVID,
+ svHealth BIT STRING (SIZE(5)), -- Coding according to Annex
+ iod INTEGER (0 .. 1023), -- Coding according to Annex
+ ganssClockModel GANSSClockModel,
+ ganssOrbitModel GANSSOrbitModel,
+ ...,
+ svHealthMSB BIT STRING (SIZE(1)) OPTIONAL, -- Coding according to Annex
+ iodMSB INTEGER (0 .. 1) OPTIONAL -- Coding according to Annex
}
-- GANSS orbit model for the GNSS satellite according to the choice
GANSSOrbitModel ::= CHOICE {
- keplerianSet NavModel-KeplerianSet,
- ...
+ keplerianSet NavModel-KeplerianSet, -- Model-1
+ ... ,
+ navKeplerianSet NavModel-NAVKeplerianSet, -- Model-2
+ cnavKeplerianSet NavModel-CNAVKeplerianSet, -- Model-3
+ glonassECEF NavModel-GLONASSecef, -- Model-4
+ sbasECEF NavModel-SBASecef -- Model-5
}
-- Navigation model in Keplerian parameters
NavModel-KeplerianSet ::= SEQUENCE {
- keplerToeLSB INTEGER (0 .. 511), -- 9LSB are given in GANSSNavigationModel
+ keplerToe INTEGER (0 .. 16383),
keplerW INTEGER (-2147483648..2147483647),
keplerDeltaN INTEGER (-32768..32767),
keplerM0 INTEGER (-2147483648..2147483647),
keplerOmegaDot INTEGER (-8388608..8388607),
- keplerELSB INTEGER (0..33554431),
+ keplerE INTEGER (0..4294967295),
keplerIDot INTEGER (-8192..8191),
- keplerAPowerHalfLSB INTEGER (0.. 67108863),
+ keplerAPowerHalf INTEGER (0.. 4294967295),
keplerI0 INTEGER (-2147483648..2147483647),
- keplerOmega0 INTEGER (-2147483648..2147483647),
+ keplerOmega0 INTEGER (-2147483648..2147483647),
keplerCrs INTEGER (-32768..32767),
keplerCis INTEGER (-32768..32767),
keplerCus INTEGER (-32768..32767),
@@ -1258,47 +1310,178 @@ NavModel-KeplerianSet ::= SEQUENCE {
keplerCuc INTEGER (-32768..32767)
}
+NavModel-NAVKeplerianSet ::= SEQUENCE {
+ navURA INTEGER (0..15),
+ navFitFlag INTEGER (0..1),
+ navToe INTEGER (0..37799),
+ navOmega INTEGER (-2147483648..2147483647),
+ navDeltaN INTEGER (-32768..32767),
+ navM0 INTEGER (-2147483648..2147483647),
+ navOmegaADot INTEGER (-8388608..8388607),
+ navE INTEGER (0..4294967295),
+ navIDot INTEGER (-8192..8191),
+ navAPowerHalf INTEGER (0..4294967295),
+ navI0 INTEGER (-2147483648..2147483647),
+ navOmegaA0 INTEGER (-2147483648..2147483647),
+ navCrs INTEGER (-32768..32767),
+ navCis INTEGER (-32768..32767),
+ navCus INTEGER (-32768..32767),
+ navCrc INTEGER (-32768..32767),
+ navCic INTEGER (-32768..32767),
+ navCuc INTEGER (-32768..32767)
+}
+
+NavModel-CNAVKeplerianSet ::= SEQUENCE {
+ cnavTop INTEGER (0..2015),
+ cnavURAindex INTEGER (-16..15),
+ cnavDeltaA INTEGER (-33554432..33554431),
+ cnavAdot INTEGER (-16777216..16777215),
+ cnavDeltaNo INTEGER (-65536..65535),
+ cnavDeltaNoDot INTEGER (-4194304..4194303),
+ cnavMo INTEGER (-4294967296..4294967295),
+ cnavE INTEGER (0..8589934591),
+ cnavOmega INTEGER (-4294967296..4294967295),
+ cnavOMEGA0 INTEGER (-4294967296..4294967295),
+ cnavDeltaOmegaDot INTEGER (-65536..65535),
+ cnavIo INTEGER (-4294967296..4294967295),
+ cnavIoDot INTEGER (-16384..16383),
+ cnavCis INTEGER (-32768..32767),
+ cnavCic INTEGER (-32768..32767),
+ cnavCrs INTEGER (-8388608..8388607),
+ cnavCrc INTEGER (-8388608..8388607),
+ cnavCus INTEGER (-1048576..1048575),
+ cnavCuc INTEGER (-1048576..1048575)
+}
+
+NavModel-GLONASSecef ::= SEQUENCE {
+ gloEn INTEGER (0..31),
+ gloP1 BIT STRING (SIZE(2)),
+ gloP2 BOOLEAN,
+ gloM INTEGER (0..3),
+ gloX INTEGER (-67108864..67108863),
+ gloXdot INTEGER (-8388608..8388607),
+ gloXdotdot INTEGER (-16..15),
+ gloY INTEGER (-67108864..67108863),
+ gloYdot INTEGER (-8388608..8388607),
+ gloYdotdot INTEGER (-16..15),
+ gloZ INTEGER (-67108864..67108863),
+ gloZdot INTEGER (-8388608..8388607),
+ gloZdotdot INTEGER (-16..15)
+}
+
+
+NavModel-SBASecef ::= SEQUENCE {
+ sbasTo INTEGER (0..5399) OPTIONAL,
+ sbasAccuracy BIT STRING (SIZE(4)),
+ sbasXg INTEGER (-536870912..536870911),
+ sbasYg INTEGER (-536870912..536870911),
+ sbasZg INTEGER (-16777216..16777215),
+ sbasXgDot INTEGER (-65536..65535),
+ sbasYgDot INTEGER (-65536..65535),
+ sbasZgDot INTEGER (-131072..131071),
+ sbasXgDotDot INTEGER (-512..511),
+ sbagYgDotDot INTEGER (-512..511),
+ sbasZgDotDot INTEGER (-512..511)
+}
+
-- GANSS clock model for the GNSS satellite according to the choice
GANSSClockModel ::= CHOICE {
- standardClockModelList SeqOfStandardClockModelElement,
- ...
+ standardClockModelList SeqOfStandardClockModelElement, -- Model-1
+ ... ,
+ navClockModel NAVclockModel, -- Model-2
+ cnavClockModel CNAVclockModel, -- Model-3
+ glonassClockModel GLONASSclockModel, -- Model-4
+ sbasClockModel SBASclockModel -- Model-5
}
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,
- ...
+ stanClockToc INTEGER (0 .. 16383),
+ stanClockAF2 INTEGER (-2048 .. 2047),
+ stanClockAF1 INTEGER (-131072 .. 131071),
+ stanClockAF0 INTEGER (-134217728 .. 134217727),
+ stanClockTgd INTEGER (-512 .. 511) OPTIONAL,
+ stanModelID INTEGER (0 .. 1) OPTIONAL,
+ ...
}
+NAVclockModel ::= SEQUENCE {
+ navToc INTEGER (0.. 37799),
+ navaf2 INTEGER (-128..127),
+ navaf1 INTEGER (-32768..32767),
+ navaf0 INTEGER (-2097152..2097151),
+ navTgd INTEGER (-128..127)
+}
+
+CNAVclockModel ::= SEQUENCE {
+ cnavToc INTEGER (0..2015),
+ cnavTop INTEGER (0..2015),
+ cnavURA0 INTEGER (-16..15),
+ cnavURA1 INTEGER (0..7),
+ cnavURA2 INTEGER (0..7),
+ cnavAf2 INTEGER (-512..511),
+ cnavAf1 INTEGER (-524288..524287),
+ cnavAf0 INTEGER (-33554432..33554431),
+ cnavTgd INTEGER (-4096..4095),
+ cnavISCl1cp INTEGER (-4096..4095) OPTIONAL,
+ cnavISCl1cd INTEGER (-4096..4095) OPTIONAL,
+ cnavISCl1ca INTEGER (-4096..4095) OPTIONAL,
+ cnavISCl2c INTEGER (-4096..4095) OPTIONAL,
+ cnavISCl5i5 INTEGER (-4096..4095) OPTIONAL,
+ cnavISCl5q5 INTEGER (-4096..4095) OPTIONAL
+}
+
+GLONASSclockModel ::= SEQUENCE {
+ gloTau INTEGER (-2097152..2097151),
+ gloGamma INTEGER (-1024..1023),
+ gloDeltaTau INTEGER (-16..15) OPTIONAL
+}
+
+SBASclockModel ::= SEQUENCE {
+ sbasTo INTEGER (0..5399),
+ sbasAgfo INTEGER (-2048..2047),
+ sbasAgf1 INTEGER (-128..127)
+}
+
-- GANSS Real-Time Integrity IE
GANSSRealTimeIntegrity ::= SEQUENCE {
- -- list of bad signals
+ -- list of satellites with bad signals
-- NBS can be read from number of elements in SeqOf-BadSignalSet
- ganssBadSignalList SeqOfBadSignalElement
+ 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
+ badSVID SVID, -- Coding according to Annex
+ badSignalID GANSSSignals 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
+ ganssTOD INTEGER (0 .. 59),
+ -- N_SAT can be read from number of elements in SeqOfGanssDataBitsElement
+ ganssDataBitsSatList SeqOfGanssDataBitsElement,
+ ...
+}
+
+SeqOfGanssDataBitsElement ::= SEQUENCE (SIZE(1 .. 32))OF GanssDataBitsElement
+
+GanssDataBitsElement ::= SEQUENCE {
+ svID SVID,
+ -- N_SGN can be read from number of elements in Seq-OfGANSSDataBitsSgn
+ ganssDataBitsSgnList Seq-OfGANSSDataBitsSgn,
+ ...
+}
+
+Seq-OfGANSSDataBitsSgn ::= SEQUENCE (SIZE(1..8)) OF GANSSDataBitsSgnElement
+
+GANSSDataBitsSgnElement ::= SEQUENCE {
+ ganssSignalType GANSSSignalID,
+ -- N_BIT can be read from number of elements in SeqOf-DataBits
+ ganssDataBits SeqOf-GANSSDataBits,
+ ...
}
SeqOf-GANSSDataBits ::= SEQUENCE (SIZE(1 .. 1024)) OF GANSSDataBit
@@ -1307,66 +1490,139 @@ 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
+ ganssSignalID GANSSSignalID, -- Coding according to Annex
+ ganssRefMeasAssistList SeqOfGANSSRefMeasurementElement
}
SeqOfGANSSRefMeasurementElement ::= SEQUENCE (SIZE(1 .. 16)) OF GANSSRefMeasurementElement
GANSSRefMeasurementElement ::= SEQUENCE {
- svID SVID,
+ 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,
- ...
+ 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
+ -- ( = -42 + (0 to 63) with 1/210 m/s2 resolution)
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
+ weekNumber INTEGER (0 .. 255),
+ 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,
- ...
+ keplerianAlmanacSet Almanac-KeplerianSet, -- Model-1
+ ...,
+ keplerianNAVAlmanac Almanac-NAVKeplerianSet, -- Model-2
+ keplerianReducedAlmanac Almanac-ReducedKeplerianSet, -- Model-3
+ keplerianMidiAlmanac Almanac-MidiAlmanacSet, -- Model-4
+ keplerianGLONASS Almanac-GlonassAlmanacSet, -- Model-5
+ ecefSBASAlmanac Almanac-ECEFsbasAlmanacSet -- Model-6
}
-- Almanac parameters according to Keplerian parameters
Almanac-KeplerianSet ::= SEQUENCE {
- kepAlmanacE INTEGER (0 .. 2047),
+ svID SVID,
+ kepAlmanacE INTEGER (0 .. 2047),
kepAlmanacDeltaI INTEGER (-1024 .. 1023),
kepAlmanacOmegaDot INTEGER (-1024 .. 1023),
- kepSVHealth INTEGER (0 .. 15), -- Coding according to Annex
+ kepSVHealth INTEGER (0 .. 15), -- Coding according to Annex
kepAlmanacAPowerHalf INTEGER (-65536 .. 65535),
kepAlmanacOmega0 INTEGER (-32768 .. 32767),
- kepAlmanacW INTEGER (-32768 .. 32767),
+ kepAlmanacW INTEGER (-32768 .. 32767),
kepAlmanacM0 INTEGER (-32768 .. 32767),
kepAlmanacAF0 INTEGER (-8192 .. 8191),
kepAlmanacAF1 INTEGER (-1024..1023)
}
--- GANSS Universal Time Coordinate Model
+Almanac-NAVKeplerianSet ::= SEQUENCE {
+ svID SVID,
+ navAlmE INTEGER (0..65535),
+ navAlmDeltaI INTEGER (-32768..32767),
+ navAlmOMEGADOT INTEGER (-32768..32767),
+ navAlmSVHealth INTEGER (0..255),
+ navAlmSqrtA INTEGER (0..16777215),
+ navAlmOMEGAo INTEGER (-8388608..8388607),
+ navAlmOmega INTEGER (-8388608..8388607),
+ navAlmMo INTEGER (-8388608..8388607),
+ navAlmaf0 INTEGER (-1024..1023),
+ navAlmaf1 INTEGER (-1024..1023)
+}
+
+Almanac-ReducedKeplerianSet ::= SEQUENCE {
+ svID SVID,
+ redAlmDeltaA INTEGER (-128..127),
+ redAlmOmega0 INTEGER (-64..63),
+ redAlmPhi0 INTEGER (-64..63),
+ redAlmL1Health BOOLEAN,
+ redAlmL2Health BOOLEAN,
+ redAlmL5Health BOOLEAN
+}
+
+Almanac-MidiAlmanacSet ::= SEQUENCE {
+ svID SVID,
+ midiAlmE INTEGER (0..2047),
+ midiAlmDeltaI INTEGER (-1024..1023),
+ midiAlmOmegaDot INTEGER (-1024..1023),
+ midiAlmSqrtA INTEGER (0..131071),
+ midiAlmOmega0 INTEGER (-32768..32767),
+ midiAlmOmega INTEGER (-32768..32767),
+ midiAlmMo INTEGER (-32768..32767),
+ midiAlmaf0 INTEGER (-1024..1023),
+ midiAlmaf1 INTEGER (-512..511),
+ midiAlmL1Health BOOLEAN,
+ midiAlmL2Health BOOLEAN,
+ midiAlmL5Health BOOLEAN
+}
+
+Almanac-GlonassAlmanacSet ::= SEQUENCE {
+ gloAlmNA INTEGER (1..1461),
+ gloAlmnA INTEGER (1..24),
+ gloAlmHA INTEGER (0..31),
+ gloAlmLambdaA INTEGER (-1048576..1048575),
+ gloAlmtlambdaA INTEGER (0..2097151),
+ gloAlmDeltaIa INTEGER (-131072..131071),
+ gloAlmDeltaTA INTEGER (-2097152..2097151),
+ gloAlmDeltaTdotA INTEGER (-64..63),
+ gloAlmEpsilonA INTEGER (0..32767),
+ gloAlmOmegaA INTEGER (-32768..32767),
+ gloAlmTauA INTEGER (-512..511),
+ gloAlmCA INTEGER (0..1),
+ gloAlmMA BIT STRING (SIZE(2)) OPTIONAL
+}
+
+Almanac-ECEFsbasAlmanacSet ::= SEQUENCE {
+ sbasAlmDataID INTEGER (0..3),
+ svID SVID,
+ sbasAlmHealth BIT STRING (SIZE(8)),
+ sbasAlmXg INTEGER (-16384..16383),
+ sbasAlmYg INTEGER (-16384..16383),
+ sbasAlmZg INTEGER (-256..255),
+ sbasAlmXgdot INTEGER (-4..3),
+ sbasAlmYgDot INTEGER (-4..3),
+ sbasAlmZgDot INTEGER (-8..7),
+ sbasAlmTo INTEGER (0..2047)
+}
+
+-- GANSS Universal Time Coordinate Model (Model-1)
GANSSUTCModel ::= SEQUENCE {
ganssUtcA1 INTEGER (-8388608..8388607),
ganssUtcA0 INTEGER (-2147483648..2147483647),
@@ -1378,9 +1634,437 @@ GANSSUTCModel ::= SEQUENCE {
ganssUtcDeltaTlsf INTEGER (-128..127)
}
+--GANSS Ephemeris Extension
+GANSSEphemerisExtension ::= SEQUENCE {
+ ganssEphemerisHeader GANSSEphemerisExtensionHeader OPTIONAL,
+ ganssReferenceSet SeqOfGANSSRefOrbit OPTIONAL,
+ ganssephemerisDeltasMatrix GANSSEphemerisDeltaMatrix OPTIONAL,
+...
+}
+
+-- The ganssEphemerisHeader and the ganssReferenceSet are mandatory only once in the delivery of the
+-- GANSS Ephemeris Extension. The ganssReferenceSet shall include all healthy satellite vehicles
+-- at the time of message construction.
+
+GANSSEphemerisExtensionHeader ::= SEQUENCE {
+ timeAtEstimation GANSSEphemerisExtensionTime,
+ validityPeriod INTEGER(1..8),
+-- The validity period, represented in hours, is the validity period of each individual ephemeris
+-- delta payload
+ ephemerisExtensionDuration INTEGER(1..512),
+-- If the ephemerisExtensionDuration does not match the request duration made by the MS, the MS
+-- should regard the provided ephemerisExtensionDuration as the limit of the SMLC ephemeris
+-- extension capability at this time.
+...
+}
+
+GANSSEphemerisExtensionTime ::= SEQUENCE {
+ ganssEphExtDay INTEGER(0..8191),
+ ganssEphExtTOD GANSSTOD,
+...
+}
+
+-- Reference Nav Model for Ephepmeris Extension
+ReferenceNavModel ::= SEQUENCE {
+ keplerToe INTEGER (0..37799),
+ keplerW INTEGER (-2147483648..2147483647),
+ keplerDeltaN INTEGER (-32768..32767),
+ keplerM0 INTEGER (-2147483648..2147483647),
+ keplerOmegaDot INTEGER (-8388608..8388607),
+ keplerE INTEGER (0..4294967295),
+ keplerIDot INTEGER (-8192..8191),
+ keplerAPowerHalf INTEGER (0.. 4294967295),
+ keplerI0 INTEGER (-2147483648..2147483647),
+ keplerOmega0 INTEGER (-2147483648..2147483647),
+ keplerCrs INTEGER (-32768..32767),
+ keplerCis INTEGER (-32768..32767),
+ keplerCus INTEGER (-32768..32767),
+ keplerCrc INTEGER (-32768..32767),
+ keplerCic INTEGER (-32768..32767),
+ keplerCuc INTEGER (-32768..32767)
+}
+
+SeqOfGANSSRefOrbit ::= SEQUENCE (SIZE(1..32)) OF GANSSReferenceOrbit
+--The number of reference orbits can be read from number of elements in this sequence
+
+GANSSReferenceOrbit ::= SEQUENCE {
+ svID SVID,
+ ganssOrbitModel ReferenceNavModel,
+ ganssClockModel GANSSClockModel,
+...
+}
+
+GANSSEphemerisDeltaMatrix ::= SEQUENCE (SIZE(1 .. 128)) OF GANSSEphemerisDeltaEpoch
+
+GANSSEphemerisDeltaEpoch ::= SEQUENCE {
+ ganssDeltaEpochHeader GANSSDeltaEpochHeader OPTIONAL,
+ ganssDeltaElementList GANSSDeltaElementList,
+...
+}
+-- Each GANSSDeltaEpoch element contains a header and the delta values for a particular time window
+-- for all PRN’s.
+
+GANSSDeltaEpochHeader ::= SEQUENCE {
+ validityPeriod INTEGER(1..8) OPTIONAL,
+ ephemerisDeltaSizes GANSSEphemerisDeltaBitSizes OPTIONAL,
+ ephemerisDeltaScales GANSSEphemerisDeltaScales OPTIONAL,
+...
+}
+-- In each of the GANSSDeltaEpochs, if the optional element, validityPeriod is not included, the
+-- value in GANSSEphemerisExtensionHeader shall be used. If the optional elements
+-- ephemerisDeltaSizes or ephemerisDeltaScales are not included, then the default ephemeris delta
+-- sizes and scales shall be used. The default sizes and scales are found in the annex in the
+-- table 55.11.
+
+GANSSDeltaElementList ::= SEQUENCE (SIZE(1 .. 32)) OF OCTET STRING(SIZE (1..49))
+-- Each octet string element in GANSSDeltaElementList corresponds to one PRN within one epoch
+
+-- Table 55.11 of the annex shows the organization of the delta ephemeris octet string.
+-- Decoding of each of the octet strings is accomplished by consulting the ephemerisDeltaSizes
+-- table to learn the length and order of each of the parameters in the ephemerisDelta payload.
+
+-- Post decode scaling is accomplished by consulting the ephemerisDeltaScales table to learn the
+-- scale factors to apply to the terms in the delta ephemeris.
+
+-- Ephemeris Delta Bit Sizes.
+
+GANSSEphemerisDeltaBitSizes ::= SEQUENCE {
+
+-- This structure defines the order and sizes of the fields in the GANSSDeltaEpoch octet string
+-- seqNum and svID are the first two elements of each GANSS Ephemeris Delta Element Structure
+-- seqNum is always 7 bits, and svID is always 6 bits long and are thus not included in
+-- the GANSSEphemerisDeltaBitSizes table. The value of seqNum indicates the GANSSDeltaEpoch number
+
+-- The Ephemeris delta element payload mimics the bitsize table, but also includes the svID and
+-- seqNum as the first two elements (in that order),in each block.
+
+ bitsize-delta-omega INTEGER(1..32),
+ bitsize-delta-deltaN INTEGER(1..16),
+ bitsize-delta-m0 INTEGER(1..32),
+ bitsize-delta-omegadot INTEGER(1..24),
+ bitsize-delta-e INTEGER(1..32),
+ bitsize-delta-idot INTEGER(1..14),
+ bitsize-delta-sqrtA INTEGER(1..32),
+ bitsize-delta-i0 INTEGER(1..32),
+ bitsize-delta-omega0 INTEGER(1..32),
+ bitsize-delta-crs INTEGER(1..16),
+ bitsize-delta-cis INTEGER(1..16),
+ bitsize-delta-cus INTEGER(1..16),
+ bitsize-delta-crc INTEGER(1..16),
+ bitsize-delta-cic INTEGER(1..16),
+ bitsize-delta-cuc INTEGER(1..16),
+ bitsize-delta-tgd1 INTEGER(1..10),
+ bitsize-delta-tgd2 INTEGER(1..10),
+...
+}
+
+GANSSEphemerisDeltaScales ::= SEQUENCE {
+
+ scale-delta-omega INTEGER(-16..15),
+ scale-delta-deltaN INTEGER(-16..15),
+ scale-delta-m0 INTEGER(-16..15),
+ scale-delta-omegadot INTEGER(-16..15),
+ scale-delta-e INTEGER(-16..15),
+ scale-delta-idot INTEGER(-16..15),
+ scale-delta-sqrtA INTEGER(-16..15),
+ scale-delta-i0 INTEGER(-16..15),
+ scale-delta-omega0 INTEGER(-16..15),
+ scale-delta-crs INTEGER(-16..15),
+ scale-delta-cis INTEGER(-16..15),
+ scale-delta-cus INTEGER(-16..15),
+ scale-delta-crc INTEGER(-16..15),
+ scale-delta-cic INTEGER(-16..15),
+ scale-delta-cuc INTEGER(-16..15),
+ scale-delta-tgd1 INTEGER(-16..15),
+ scale-delta-tgd2 INTEGER(-16..15),
+...
+}
+
+-- GANSS Ephemeris Extension Check
+GANSSEphemerisExtensionCheck ::= SEQUENCE {
+ ganssBeginTime GANSSEphemerisExtensionTime,
+ ganssEndTime GANSSEphemerisExtensionTime,
+ ganssSatEventsInfo GANSSSatEventsInfo,
+...
+}
+
+GANSSSatEventsInfo ::= SEQUENCE {
+ eventOccured BIT STRING (SIZE (64)),
+ futureEventNoted BIT STRING (SIZE (64)),
+...
+}
+-- If a bit is clear in the eventOccured field it indicates that no known errors have occured
+-- between the current time and the ganssBeginTime nor is a maneuver planned for the next sixty
+-- minutes.
+-- If a bit is set in the futureEventNoted field it indicates that a maneuver is planned during the
+-- time period between current time plus sixty minutes and the ganssEndTime
+-- GANSS Additional Universal Time Coordinate Model
+GANSSAddUTCModel ::= CHOICE {
+ utcModel2 UTCmodelSet2,
+ utcModel3 UTCmodelSet3,
+ utcModel4 UTCmodelSet4,
+ ...
+}
+
+UTCmodelSet2 ::= SEQUENCE {
+ utcA0 INTEGER (-32768..32767),
+ utcA1 INTEGER (-4096.. 4095),
+ utcA2 INTEGER (-64..63),
+ utcDeltaTls INTEGER (-128.. 127),
+ utcTot INTEGER (0..65535),
+ utcWNot INTEGER (0..8191),
+ utcWNlsf INTEGER (0..255),
+ utcDN BIT STRING (SIZE(4)),
+ utcDeltaTlsf INTEGER (-128..127)
+}
+
+UTCmodelSet3 ::= SEQUENCE {
+ nA INTEGER (1..1461),
+ tauC INTEGER (-2147483648..2147483647),
+ b1 INTEGER (-1024..1023) OPTIONAL,
+ b2 INTEGER (-512..511) OPTIONAL,
+ kp BIT STRING (SIZE(2)) OPTIONAL
+}
+
+UTCmodelSet4 ::= SEQUENCE {
+ utcA1wnt INTEGER (-8388608..8388607),
+ utcA0wnt INTEGER (-2147483648..2147483647),
+ utcTot INTEGER (0..255),
+ utcWNt INTEGER (0..255),
+ utcDeltaTls INTEGER (-128..127),
+ utcWNlsf INTEGER (0..255),
+ utcDN INTEGER (-128..127),
+ utcDeltaTlsf INTEGER (-128..127),
+ utcStandardID INTEGER (0..7) -- coding according to annex
+}
+
+-- GANSS Auxiliary Information
+GANSSAuxiliaryInformation ::= CHOICE{
+ ganssID1 GANSS-ID1, -- This choice may only be present if GANSS ID indicates Modernized GPS
+ ganssID3 GANSS-ID3, -- This choice may only be present if GANSS ID indicates GLONASS
+ ...
+}
+
+GANSS-ID1 ::= SEQUENCE (SIZE(1..64)) OF GANSS-ID1-element
+
+GANSS-ID1-element ::= SEQUENCE {
+ svID SVID,
+ signalsAvailable GANSSSignals,
+ ...
+}
+
+GANSS-ID3 ::= SEQUENCE (SIZE(1..64)) OF GANSS-ID3-element
+
+GANSS-ID3-element ::= SEQUENCE {
+ svID SVID,
+ signalsAvailable GANSSSignals,
+ channelNumber INTEGER (-7..13),
+ ...
+}
+
+-- DGANSS Corrections Validity Period:
+-- This element may only be included if GANSSDiffCorrections IE is included in
+-- GANSSGenericAssistDataElement element.
+-- GANSSDiffCorrectionsValidityPeriod shall contain the same number of elements as the
+-- SeqOfSgnTypeElement included in GANSSDiffCorrections IE
+GANSSDiffCorrectionsValidityPeriod ::= SEQUENCE (SIZE (1..3)) OF DGANSSExtensionSgnTypeElement
+
+DGANSSExtensionSgnTypeElement ::= SEQUENCE {
+ ganssSignalID GANSSSignalID, -- signal type identity
+ dganssExtensionSgnList SeqOfDGANSSExtensionSgnElement
+}
+
+-- SeqOfDGANSSExtensionSgnElement shall contain the same number of elements as the
+-- SeqOfDGANSSSgnElement included in GANSSDiffCorrections IE
+SeqOfDGANSSExtensionSgnElement ::= SEQUENCE (SIZE (1..16)) OF DGANSSExtensionSgnElement
+
+DGANSSExtensionSgnElement ::= SEQUENCE {
+ svID SVID, -- Satellite identity
+ udreGrowthRate INTEGER(0..7), -- coding according to annex
+ udreValidityTime INTEGER(0..7), -- coding according to annex
+ ...
+}
+
--Required Measurement Request Response Time, range is 1 to 128 seconds.
RequiredResponseTime ::= INTEGER (1..128)
+-- Control header for additional GPS assistance data
+Add-GPS-AssistData ::= SEQUENCE {
+ add-GPS-controlHeader Add-GPS-ControlHeader
+}
+
+Add-GPS-ControlHeader ::= SEQUENCE {
+ gpsEphemerisExtension GPSEphemerisExtension OPTIONAL,
+ gpsEphemerisExtensionCheck GPSEphemerisExtensionCheck OPTIONAL,
+ ... ,
+ dgpsCorrectionsValidityPeriod DGPSCorrectionsValidityPeriod OPTIONAL
+}
+
+GPSClockModel ::= SEQUENCE {
+ af2 INTEGER (-128..127),
+ af1 INTEGER (-32768..32767),
+ af0 INTEGER (-2097152..2097151),
+ tgd INTEGER (-128..127)
+}
+
+--GPS Ephemeris Extension
+GPSEphemerisExtension ::= SEQUENCE {
+ gpsEphemerisHeader GPSEphemerisExtensionHeader OPTIONAL,
+ gpsReferenceSet SeqOfGPSRefOrbit OPTIONAL,
+ gpsephemerisDeltaMatrix GPSEphemerisDeltaMatrix OPTIONAL,
+...
+}
+
+-- The gpsEphemerisHeader and the gpsReferenceSet are mandatory only once in the delivery of the
+-- GPS Ephemeris Extension. The gpsReferenceSet shall include all healthy satellite vehicles at the
+-- time of message construction
+
+-- The SMLC is required to deliver the gpsReferenceSet for all healthy satellite vehicles
+-- at the time of message construction.
+
+GPSEphemerisExtensionHeader ::= SEQUENCE {
+ timeofEstimation GPSEphemerisExtensionTime,
+ validityPeriod INTEGER(1..8),
+-- The validity period, represented in hours is the validity period of each individual ephemeris
+-- delta payload
+ ephemerisExtensionDuration INTEGER(1..512),
+-- If the ephemerisExtensionDuration does not match the request duration made by the MS, the MS
+-- should regard the provided ephemerisExtensionDuration as the limit of the SMLC ephemeris
+-- extension capability at this time.
+...
+}
+
+GPSEphemerisExtensionTime ::= SEQUENCE {
+ gpsWeek GPSWeek,
+ gpsTOW INTEGER (0..604799),
+...
+}
+
+SeqOfGPSRefOrbit ::= SEQUENCE (SIZE(1..32)) OF GPSReferenceOrbit
+--The number of reference orbits can be read from number of elements in this sequence
+
+GPSReferenceOrbit ::= SEQUENCE {
+ svID SVID,
+ gpsOrbitModel ReferenceNavModel,
+ gpsClockModel GPSClockModel,
+...
+}
+
+GPSEphemerisDeltaMatrix ::= SEQUENCE (SIZE(1 .. 128)) OF GPSEphemerisDeltaEpoch
+
+GPSEphemerisDeltaEpoch ::= SEQUENCE {
+ gpsDeltaEpochHeader GPSDeltaEpochHeader OPTIONAL,
+ gpsDeltaElementList GPSDeltaElementList,
+...
+}
+
+-- Each GPSDeltaEpoch element contains a header and the delta values for a particular time window
+-- for all PRN’s.
+GPSDeltaEpochHeader ::= SEQUENCE {
+ validityPeriod INTEGER(1..8) OPTIONAL,
+ ephemerisDeltaSizes GPSEphemerisDeltaBitSizes OPTIONAL,
+ ephemerisDeltaScales GPSEphemerisDeltaScales OPTIONAL,
+...
+}
+
+-- In each of the GPSDeltaEpochs, if the optional element validityPeriod is not included,
+-- the value in GPSEphemerisExtensionHeader shall be used. if the optional elements
+-- ephemerisDeltaSizes or ephemerisDeltaScales are not included, then the default ephemeris delta
+-- sizes and scales shall be used. The default sizes and scales are found in the annex in section
+-- A.29.m
+
+GPSDeltaElementList ::= SEQUENCE (SIZE(1 .. 32)) OF OCTET STRING(SIZE (1..47))
+
+-- Each octet string element in GPSDeltaElementList corresponds to one PRN within one epoch
+
+-- Table A.29.m of the annex shows the organization of the delta ephemeris octet string.
+-- Decoding of each of the octet strings is accomplished by consulting the ephemerisDeltaSizes
+-- table to learn the length and order of each of the parameters in the ephemerisDelta payload
+
+-- Post decode scaling is accomplished by consulting the ephemerisDeltaScales table to learn the.
+-- scale factors to apply to the terms in the delta ephemeris
+
+-- Ephemeris Delta Bit Sizes.
+
+GPSEphemerisDeltaBitSizes ::= SEQUENCE {
+
+-- This structure defines the order and sizes of the fields in the GPSsDeltaEpoch octet string
+-- seqNum and svID are the first two elements of each GPS Ephemeris Delta Element Structure
+-- seqNum is always 7 bits, and svID is always 5 bits long and are thus not included in
+-- the GPSEphemerisDeltaBitSizes table. seqNum indicates the GPSDeltaEpoch number.
+
+-- The Ephemeris delta element payload mimics the bitsize table, but also includes the svID and
+-- seqNum as the first two elements (in that order),in each block.
+
+ bitsize-delta-omega INTEGER(1..32),
+ bitsize-delta-deltaN INTEGER(1..16),
+ bitsize-delta-m0 INTEGER(1..32),
+ bitsize-delta-omegadot INTEGER(1..24),
+ bitsize-delta-e INTEGER(1..32),
+ bitsize-delta-idot INTEGER(1..14),
+ bitsize-delta-sqrtA INTEGER(1..32),
+ bitsize-delta-i0 INTEGER(1..32),
+ bitsize-delta-omega0 INTEGER(1..32),
+ bitsize-delta-crs INTEGER(1..16),
+ bitsize-delta-cis INTEGER(1..16),
+ bitsize-delta-cus INTEGER(1..16),
+ bitsize-delta-crc INTEGER(1..16),
+ bitsize-delta-cic INTEGER(1..16),
+ bitsize-delta-cuc INTEGER(1..16),
+ bitsize-delta-tgd INTEGER(1..10),
+...
+}
+
+GPSEphemerisDeltaScales ::= SEQUENCE {
+ scale-delta-omega INTEGER(-16..15),
+ scale-delta-deltaN INTEGER(-16..15),
+ scale-delta-m0 INTEGER(-16..15),
+ scale-delta-omegadot INTEGER(-16..15),
+ scale-delta-e INTEGER(-16..15),
+ scale-delta-idot INTEGER(-16..15),
+ scale-delta-sqrtA INTEGER(-16..15),
+ scale-delta-i0 INTEGER(-16..15),
+ scale-delta-omega0 INTEGER(-16..15),
+ scale-delta-crs INTEGER(-16..15),
+ scale-delta-cis INTEGER(-16..15),
+ scale-delta-cus INTEGER(-16..15),
+ scale-delta-crc INTEGER(-16..15),
+ scale-delta-cic INTEGER(-16..15),
+ scale-delta-cuc INTEGER(-16..15),
+ scale-delta-tgd INTEGER(-16..15),
+...
+}
+
+GPSEphemerisExtensionCheck ::= SEQUENCE {
+ gpsBeginTime GPSEphemerisExtensionTime,
+ gpsEndTime GPSEphemerisExtensionTime,
+ gpsSatEventsInfo GPSSatEventsInfo,
+...
+}
+
+GPSSatEventsInfo ::= SEQUENCE {
+ eventOccured BIT STRING (SIZE (32)),
+ futureEventNoted BIT STRING (SIZE (32)),
+...
+}
+-- If a bit is clear in the eventOccured field it indicates that no known errors have occured since
+-- the gpsBeginTime nor is a maneuver planned for the next sixty minutes.
+-- If a bit is set in the futureEventNoted field it indicates that a maneuver is planned during the
+-- time period between current time plus sixty minutes and gpsEndTime
+
+-- DGPS Corrections Validity Period:
+-- This element may only be included if DGPSCorrections IE is included in ControlHeader element.
+-- DGPSCorrectionsValidityPeriod shall contain the same number of elements as the SeqOfSatElement
+-- included in DGPSCorrections IE
+DGPSCorrectionsValidityPeriod ::= SEQUENCE (SIZE (1..16)) OF DGPSExtensionSatElement
+
+DGPSExtensionSatElement ::= SEQUENCE {
+ satelliteID SatelliteID,
+ udreGrowthRate INTEGER(0..7), -- coding according to annex
+ udreValidityTime INTEGER(0..7), -- coding according to annex
+ ...
+}
+
Rel-7-MsrPosition-Rsp-Extension ::= SEQUENCE {
velEstimate VelocityEstimate OPTIONAL,
@@ -1397,28 +2081,34 @@ Rel-7-MsrPosition-Rsp-Extension ::= SEQUENCE {
-- 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
+ referenceFrame ReferenceFrame OPTIONAL, -- Reference Frame Number
+ ganssTODm GANSSTODm OPTIONAL, -- GNSS TOD modulo
+ ganssTODFrac INTEGER (0 .. 16384) OPTIONAL, -- Coding according to Annex
+ -- a value of 16384 shall not be encoded by the sender
+ -- the receiver shall consider a value of 16384 to be invalid data
+ ganssTODUncertainty GANSSTODUncertainty OPTIONAL, -- Coding according to Annex
+ ganssTimeID INTEGER (0 .. 7) OPTIONAL, -- Coding according to Annex
+ fixType FixType,
+ posData PositionData,
+ stationaryIndication INTEGER(0 .. 1) OPTIONAL, -- ‘0’ if moving or motion not
+ -- known
-- Possible shapes carried in posEstimate are
-- ellipsoid point,
-- ellipsoid point with uncertainty circle
-- ellipsoid point with uncertainty ellipse
-- ellipsoid point with altitude and uncertainty ellipsoid
- posEstimate Ext-GeographicalInformation,
- ...
+ posEstimate Ext-GeographicalInformation,
+ ...
}
PositionData ::= BIT STRING {
- e-otd(0),
- gps (1),
- galileo (2) } (SIZE (3..16))
-
+ e-otd (0),
+ gps (1),
+ galileo (2),
+ sbas (3),
+ modernizedGPS (4),
+ qzss (5),
+ glonass (6) } (SIZE (3..16))
-- GANSS TOD modulo 1 hour
GANSSTODm ::= INTEGER (0 .. 3599999)
@@ -1429,59 +2119,217 @@ ReferenceFrame ::= SEQUENCE {
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
+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
+ referenceFrame ReferenceFrame OPTIONAL, -- Reference Frame Number
+ -- if ganssTODm is included, it is the GNSS specific system time of the GANSS reported
+ -- first in ganss-SgnTypeList. If GPS Measurement Information element is not included in
+ -- a Measure Position Response component, this field shall be present.
+ ganssTODm GANSSTODm OPTIONAL, -- GANSS TOD modulo 1 hour
+ deltaGANSSTOD INTEGER (0 .. 127) OPTIONAL,
+ ganssTODUncertainty GANSSTODUncertainty OPTIONAL, -- Coding according to Annex
+ --N_GANSS can be read from number of elements of SeqOfGANSS-MsrElement
+ ganss-MsrElementList SeqOfGANSS-MsrElement
+}
- --N_SGN_TYPE can be read from number of elements of SeqOfGANSS-SgnTypeElement
- ganss-SgnTypeList SeqOfGANSS-SgnTypeElement
+SeqOfGANSS-MsrElement ::= SEQUENCE (SIZE(1..8)) OF GANSS-MsrElement
+
+GANSS-MsrElement ::= SEQUENCE {
+ ganssID INTEGER (0..7) OPTIONAL, --Absence means Galileo
+ ganss-SgnTypeList SeqOfGANSS-SgnTypeElement
}
--- Measurements can be returned up to 6 different signal types
-SeqOfGANSS-SgnTypeElement ::= SEQUENCE (SIZE(1..6)) OF GANSS-SgnTypeElement
+-- Measurements can be returned up to 8 different signal types
+-- N_SGN_TYPE can be read from number of elements of SeqOfGANSS-SgnTypeElement
+-- Reporting of multiple signal types as defined in A.2.2.4g
+SeqOfGANSS-SgnTypeElement ::= SEQUENCE (SIZE(1..8)) OF GANSS-SgnTypeElement
GANSS-SgnTypeElement ::= SEQUENCE {
- ganssSignalID INTEGER (0 .. 15), -- Coding accroding to Annex
- --N_SGN can be read from number of elements of SeqOfGANSS-SgnElement
- ganss-SgnList SeqOfGANSS-SgnElement
+ ganssSignalID GANSSSignalID, -- Coding according to Annex
+ ganssCodePhaseAmbiguity INTEGER (0 .. 127) OPTIONAL,
+ --N_SGN can be read from number of elements of SeqOfGANSS-SgnElement
+ ganss-SgnList SeqOfGANSS-SgnElement,
+ ...
}
--- Measurements can be returned up to 16 per signal types
+-- Up to 16 Measurements can be returned per signal type
SeqOfGANSS-SgnElement ::= SEQUENCE (SIZE(1..16)) OF GANSS-SgnElement
GANSS-SgnElement ::= SEQUENCE {
- svID SVID,
- cNo INTEGER (0 .. 63),
- mpathDet MpathIndic, -- Coding according to Annex
- carrierQualityInd INTEGER (0 .. 3) OPTIONAL, -- Coding according to Annex
- codePhase INTEGER (0 .. 2097151),
- integerCodePhase INTEGER (0 .. 63) OPTIONAL,
- codePhaseRMSError INTEGER (0..63), -- Coding accoring to Annex
- doppler INTEGER (-32768 .. 32767) OPTIONAL,
- adr INTEGER (0 .. 33554431) OPTIONAL
+ svID SVID,
+ cNo INTEGER (0 .. 63),
+ mpathDet MpathIndic, -- Coding according to Annex
+ carrierQualityInd INTEGER (0 .. 3) OPTIONAL, -- Coding according to Annex
+ codePhase INTEGER (0 .. 2097151),
+ integerCodePhase INTEGER (0 .. 127) OPTIONAL,
+ codePhaseRMSError INTEGER (0..63), -- Coding according to Annex
+ doppler INTEGER (-32768 .. 32767) OPTIONAL,
+ adr INTEGER (0 .. 33554431) OPTIONAL
}
Rel7-AssistanceData-Extension ::= SEQUENCE {
- ganss-AssistData GANSS-AssistData OPTIONAL,
- ganssCarrierPhaseMeasurementRequest NULL OPTIONAL,
- ganssTODGSMTimeAssociationMeasurementRequest NULL OPTIONAL,
+ ganss-AssistData GANSS-AssistData OPTIONAL,
+ ganssCarrierPhaseMeasurementRequest NULL OPTIONAL,
+ ganssTODGSMTimeAssociationMeasurementRequest NULL OPTIONAL,
+ add-GPS-AssistData Add-GPS-AssistData OPTIONAL,
...
-- Possibly more extensions for Release 7 here
}
+-- Rel-7 Positioning Capability parameters here
+
+PosCapabilities ::= SEQUENCE {
+ nonGANSSpositionMethods NonGANSSPositionMethods OPTIONAL,
+ gANSSPositionMethods GANSSPositionMethods OPTIONAL,
+ multipleMeasurementSets MultipleMeasurementSets OPTIONAL,
+ ...
+}
+
+NonGANSSPositionMethods ::= BIT STRING {
+ msAssistedEOTD (0),
+ msBasedEOTD (1),
+ msAssistedGPS (2),
+ msBasedGPS (3),
+ standaloneGPS (4) } (SIZE (1..16))
+
+GANSSPositionMethods ::= SEQUENCE (SIZE(1..16)) OF GANSSPositionMethod
+
+GANSSPositionMethod ::= SEQUENCE {
+ ganssID INTEGER (0..7) OPTIONAL, --Absence means Galileo
+-- gANSSPositioningMethodTypes may be present for PosCapability-Req
+-- and shall be present for PosCapability-Rsp
+ gANSSPositioningMethodTypes GANSSPositioningMethodTypes OPTIONAL,
+ gANSSSignals GANSSSignals,
+ ... ,
+-- sbasID shall be present if and only if ganssID indicates SBAS
+ sbasID SBASID OPTIONAL
+}
+
+GANSSPositioningMethodTypes ::= BIT STRING {
+ msAssisted (0),
+ msBased (1),
+ standalone (2) } (SIZE (1..8))
+
+-- indicates MS support for particular GANSS signals and frequencies
+GANSSSignals ::= BIT STRING {
+ signal1 (0),
+ signal2 (1),
+ signal3 (2),
+ signal4 (3),
+ signal5 (4),
+ signal6 (5),
+ signal7 (6),
+ signal8 (7) } (SIZE (1..8))
+
+SBASID ::= BIT STRING {
+ waas (0),
+ egnos (1),
+ masas (2),
+ gagan (3) } (SIZE (1..8))
+
+-- indicates MS support of multiple measurement sets for MS assisted position methods
+MultipleMeasurementSets ::= BIT STRING {
+ eotd (0),
+ gps (1),
+ ganss (2) } (SIZE (1..8))
+
+-- indicates MS support of different types of assistance data
+AssistanceSupported ::= SEQUENCE {
+ gpsAssistance GPSAssistance OPTIONAL,
+ gANSSAssistanceSet GANSSAssistanceSet OPTIONAL,
+ ... ,
+ gANSSAdditionalAssistanceChoices GANSSAdditionalAssistanceChoices OPTIONAL
+}
+
+-- GPS assistance data supported
+GPSAssistance ::= BIT STRING {
+ almanac (0),
+ uTCmodel (1),
+ ionosphericModel (2),
+ navigationmodel (3),
+ dGPScorrections (4),
+ referenceLocation (5),
+ referenceTime (6),
+ acquisitionAssistance (7),
+ realTimeIntegrity (8),
+ ephemerisExtension (9),
+ ephemerisExtensionCheck (10)} (SIZE (1..16))
+
+-- GANSS assistance data supported
+GANSSAssistanceSet ::= SEQUENCE {
+ commonGANSSAssistance CommonGANSSAssistance,
+ specificGANSSAssistance SpecificGANSSAssistance,
+ ...
+}
+
+-- Common GANSS assistance data supported
+CommonGANSSAssistance ::= BIT STRING {
+ referenceTime (0),
+ referenceLocation (1),
+ ionosphericModel (3),
+ addIonosphericModel (4),
+ earthOrientationParam (5) } (SIZE (1..8))
+
+SpecificGANSSAssistance ::= SEQUENCE (SIZE(1..16)) OF GANSSAssistanceForOneGANSS
+
+-- assistance data supported for a particular GANSS system
+GANSSAssistanceForOneGANSS ::= SEQUENCE {
+ ganssID INTEGER (0..7) OPTIONAL, --Absence means Galileo
+ gANSSAssistance GANSSAssistance,
+ ...
+}
+
+-- specific GANSS assistance data supported
+GANSSAssistance ::= BIT STRING {
+ realTimeIntegrity (0),
+ differentialCorrections (1),
+ almanac (2),
+ referenceMeasurementInformation (3),
+ navigationModel (4),
+ timeModelGNSS-UTC (5),
+ timeModelGNSS-GNSS (6),
+ databitassistance (7),
+ ephemerisExtension (8),
+ ephemerisExtensionCheck (9),
+ addUTCmodel (10),
+ auxiliaryInformation (11) } (SIZE (1..16))
+
+
+GANSSAdditionalAssistanceChoices ::= SEQUENCE (SIZE(1..16)) OF GANSSAdditionalAssistanceChoicesForOneGANSS
+
+GANSSAdditionalAssistanceChoicesForOneGANSS ::= SEQUENCE {
+ ganssID INTEGER (0..7) OPTIONAL, --Absence means Galileo
+ ganssClockModelChoice GANSSModelID OPTIONAL,
+ gannsOrbitModelChoice GANSSModelID OPTIONAL,
+ ganssAlmanacModelChoice GANSSModelID OPTIONAL,
+ ganssAdditionalUTCModelChoice GANSSModelID OPTIONAL,
+ ...
+}
+
+GANSSModelID ::= BIT STRING {
+ model1 (0),
+ model2 (1),
+ model3 (2),
+ model4 (3),
+ model5 (4),
+ model6 (5),
+ model7 (6),
+ model8 (7) } (SIZE (1..8))
+
+
+-- indicates assistance data that may be needed by the MS
+AssistanceNeeded ::= SEQUENCE {
+ gpsAssistanceData GPSAssistanceData OPTIONAL,
+ ganssAssistanceData GANSSAssistanceData OPTIONAL,
+ ...
+}
+
END
diff --git a/asn1/rrlp/RRLP-Messages.asn b/asn1/rrlp/RRLP-Messages.asn
index 79140e2a2b..20be73dd46 100644
--- a/asn1/rrlp/RRLP-Messages.asn
+++ b/asn1/rrlp/RRLP-Messages.asn
@@ -1,6 +1,6 @@
-- RRLP-Messages.asn
-- $Id$
--- Taken from 3GPP TS 44.031 V7.4.0 (2007-03)
+-- Taken from 3GPP TS 44.031 V9.1.0 (2009-12)
-- http://www.3gpp.org/ftp/Specs/archive/44_series/44.031/44031-740.zip/44031-740.doc
--
-- 3.1 General Format of RRLP Message
@@ -15,7 +15,7 @@ BEGIN
IMPORTS
MsrPosition-Req, MsrPosition-Rsp, AssistanceData,
- ProtocolError
+ ProtocolError, PosCapability-Req, PosCapability-Rsp
FROM
RRLP-Components -- { RRLP-Components }
;
@@ -31,8 +31,9 @@ RRLP-Component ::= CHOICE {
assistanceData AssistanceData,
assistanceDataAck NULL,
protocolError ProtocolError,
- ...
-
+ ...,
+ posCapabilityReq PosCapability-Req,
+ posCapabilityRsp PosCapability-Rsp
}
END
diff --git a/asn1/rrlp/rrlp.cnf b/asn1/rrlp/rrlp.cnf
index 297dd7e444..e6b90b7f36 100644
--- a/asn1/rrlp/rrlp.cnf
+++ b/asn1/rrlp/rrlp.cnf
@@ -39,3 +39,16 @@ tvbuff_t *parameter_tvb = NULL;
if(parameter_tvb)
dissect_geographical_description(parameter_tvb, %(ACTX)s->pinfo, tree);
#.END
+
+# Handle 64 bit constraint
+#.FN_PARS UTCmodelSet3/tauC FN_VARIANT = _64b
+#.FN_PARS UTCmodelSet4/utcA0wnt FN_VARIANT = _64b
+#.FN_PARS NavModel-CNAVKeplerianSet/cnavMo FN_VARIANT = _64b
+#.FN_PARS NavModel-CNAVKeplerianSet/cnavOmega FN_VARIANT = _64b
+#.FN_PARS NavModel-CNAVKeplerianSet/cnavOMEGA0 FN_VARIANT = _64b
+#.FN_PARS NavModel-CNAVKeplerianSet/cnavIo FN_VARIANT = _64b
+#.FN_PARS NavModel-CNAVKeplerianSet/cnavE FN_VARIANT = _64b
+#.FN_PARS ReferenceNavModel/keplerW FN_VARIANT = _64b
+#.FN_PARS ReferenceNavModel/keplerM0 FN_VARIANT = _64b
+#.FN_PARS ReferenceNavModel/keplerI0 FN_VARIANT = _64b
+#.FN_PARS ReferenceNavModel/keplerOmega0 FN_VARIANT = _64b \ No newline at end of file
diff --git a/epan/dissectors/packet-rrlp.c b/epan/dissectors/packet-rrlp.c
index 1de471aea5..852c456b20 100644
--- a/epan/dissectors/packet-rrlp.c
+++ b/epan/dissectors/packet-rrlp.c
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-rrlp.c */
-/* ../../tools/asn2wrs.py -p rrlp -c ./rrlp.cnf -s ./packet-rrlp-template -D . ../gsm_map/MAP-ExtensionDataTypes.asn ../gsm_map/MAP-LCS-DataTypes.asn RRLP-Messages.asn RRLP-Components.asn */
+/* ../../tools/asn2wrs.py -L -p rrlp -c ./rrlp.cnf -s ./packet-rrlp-template -D . ../gsm_map/MAP-ExtensionDataTypes.asn ../gsm_map/MAP-LCS-DataTypes.asn RRLP-Messages.asn RRLP-Components.asn */
/* Input file: packet-rrlp-template.c */
@@ -81,6 +81,8 @@ static int hf_rrlp_msrPositionRsp = -1; /* MsrPosition_Rsp */
static int hf_rrlp_assistanceData = -1; /* AssistanceData */
static int hf_rrlp_assistanceDataAck = -1; /* NULL */
static int hf_rrlp_protocolError = -1; /* ProtocolError */
+static int hf_rrlp_posCapabilityReq = -1; /* PosCapability_Req */
+static int hf_rrlp_posCapabilityRsp = -1; /* PosCapability_Rsp */
static int hf_rrlp_positionInstruct = -1; /* PositionInstruct */
static int hf_rrlp_referenceAssistData = -1; /* ReferenceAssistData */
static int hf_rrlp_msrAssistData = -1; /* MsrAssistData */
@@ -105,6 +107,11 @@ static int hf_rrlp_rel5_AssistanceData_Extension = -1; /* Rel5_AssistanceData_E
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_extended_reference = -1; /* Extended_reference */
+static int hf_rrlp_gANSSPositionMethods = -1; /* GANSSPositionMethods */
+static int hf_rrlp_posCapabilities = -1; /* PosCapabilities */
+static int hf_rrlp_assistanceSupported = -1; /* AssistanceSupported */
+static int hf_rrlp_assistanceNeeded = -1; /* AssistanceNeeded */
static int hf_rrlp_methodType = -1; /* MethodType */
static int hf_rrlp_positionMethod = -1; /* PositionMethod */
static int hf_rrlp_measureResponseTime = -1; /* MeasureResponseTime */
@@ -333,7 +340,6 @@ static int hf_rrlp_timeAssistanceMeasurements = -1; /* GPSTimeAssistanceMeasure
static int hf_rrlp_otdMsrFirstSets_R98_Ext = -1; /* OTD_MsrElementFirst_R98_Ext */
static int hf_rrlp_otd_FirstSetMsrs_R98_Ext = -1; /* SeqOfOTD_FirstSetMsrs_R98_Ext */
static int hf_rrlp_SeqOfOTD_FirstSetMsrs_R98_Ext_item = -1; /* OTD_FirstSetMsrs */
-static int hf_rrlp_extended_reference = -1; /* Extended_reference */
static int hf_rrlp_otd_MeasureInfo_5_Ext = -1; /* OTD_MeasureInfo_5_Ext */
static int hf_rrlp_ulPseudoSegInd = -1; /* UlPseudoSegInd */
static int hf_rrlp_smlc_code = -1; /* INTEGER_0_63 */
@@ -344,12 +350,16 @@ 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_add_GPS_AssistData = -1; /* Add_GPS_AssistData */
+static int hf_rrlp_ganssMultiFreqMeasurementRequest = -1; /* NULL */
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_ganssAddIonosphericModel = -1; /* GANSSAddIonosphericModel */
+static int hf_rrlp_ganssEarthOrientParam = -1; /* GANSSEarthOrientParam */
static int hf_rrlp_SeqOfGANSSGenericAssistDataElement_item = -1; /* GANSSGenericAssistDataElement */
static int hf_rrlp_ganssID = -1; /* INTEGER_0_7 */
static int hf_rrlp_ganssTimeModel = -1; /* SeqOfGANSSTimeModel */
@@ -360,6 +370,12 @@ 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_ganssEphemerisExtension = -1; /* GANSSEphemerisExtension */
+static int hf_rrlp_ganssEphemerisExtCheck = -1; /* GANSSEphemerisExtensionCheck */
+static int hf_rrlp_sbasID = -1; /* INTEGER_0_7 */
+static int hf_rrlp_ganssAddUTCModel = -1; /* GANSSAddUTCModel */
+static int hf_rrlp_ganssAuxiliaryInfo = -1; /* GANSSAuxiliaryInformation */
+static int hf_rrlp_ganssDiffCorrectionsValidityPeriod = -1; /* GANSSDiffCorrectionsValidityPeriod */
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 */
@@ -377,6 +393,15 @@ 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_dataID = -1; /* BIT_STRING_SIZE_2 */
+static int hf_rrlp_ionoModel = -1; /* IonosphericModel */
+static int hf_rrlp_teop = -1; /* INTEGER_0_65535 */
+static int hf_rrlp_pmX = -1; /* INTEGER_M1048576_1048575 */
+static int hf_rrlp_pmXdot = -1; /* INTEGER_M16384_16383 */
+static int hf_rrlp_pmY = -1; /* INTEGER_M1048576_1048575 */
+static int hf_rrlp_pmYdot = -1; /* INTEGER_M16384_16383 */
+static int hf_rrlp_deltaUT1 = -1; /* INTEGER_M1073741824_1073741823 */
+static int hf_rrlp_deltaUT1dot = -1; /* INTEGER_M262144_262143 */
static int hf_rrlp_SeqOfGANSSTimeModel_item = -1; /* GANSSTimeModelElement */
static int hf_rrlp_ganssTimeModelRefTime = -1; /* INTEGER_0_65535 */
static int hf_rrlp_tA0 = -1; /* TA0 */
@@ -394,23 +419,26 @@ 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_svHealth = -1; /* BIT_STRING_SIZE_5 */
static int hf_rrlp_ganssClockModel = -1; /* GANSSClockModel */
static int hf_rrlp_ganssOrbitModel = -1; /* GANSSOrbitModel */
+static int hf_rrlp_svHealthMSB = -1; /* BIT_STRING_SIZE_1 */
+static int hf_rrlp_iodMSB = -1; /* INTEGER_0_1 */
static int hf_rrlp_keplerianSet = -1; /* NavModel_KeplerianSet */
-static int hf_rrlp_keplerToeLSB = -1; /* INTEGER_0_511 */
+static int hf_rrlp_navKeplerianSet = -1; /* NavModel_NAVKeplerianSet */
+static int hf_rrlp_cnavKeplerianSet = -1; /* NavModel_CNAVKeplerianSet */
+static int hf_rrlp_glonassECEF = -1; /* NavModel_GLONASSecef */
+static int hf_rrlp_sbasECEF = -1; /* NavModel_SBASecef */
+static int hf_rrlp_keplerToe = -1; /* INTEGER_0_16383 */
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_keplerE = -1; /* INTEGER_0_4294967295 */
static int hf_rrlp_keplerIDot = -1; /* INTEGER_M8192_8191 */
-static int hf_rrlp_keplerAPowerHalfLSB = -1; /* INTEGER_0_67108863 */
+static int hf_rrlp_keplerAPowerHalf = -1; /* INTEGER_0_4294967295 */
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 */
@@ -419,24 +447,116 @@ 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_navURA = -1; /* INTEGER_0_15 */
+static int hf_rrlp_navFitFlag = -1; /* INTEGER_0_1 */
+static int hf_rrlp_navToe = -1; /* INTEGER_0_37799 */
+static int hf_rrlp_navOmega = -1; /* INTEGER_M2147483648_2147483647 */
+static int hf_rrlp_navDeltaN = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_navM0 = -1; /* INTEGER_M2147483648_2147483647 */
+static int hf_rrlp_navOmegaADot = -1; /* INTEGER_M8388608_8388607 */
+static int hf_rrlp_navE = -1; /* INTEGER_0_4294967295 */
+static int hf_rrlp_navIDot = -1; /* INTEGER_M8192_8191 */
+static int hf_rrlp_navAPowerHalf = -1; /* INTEGER_0_4294967295 */
+static int hf_rrlp_navI0 = -1; /* INTEGER_M2147483648_2147483647 */
+static int hf_rrlp_navOmegaA0 = -1; /* INTEGER_M2147483648_2147483647 */
+static int hf_rrlp_navCrs = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_navCis = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_navCus = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_navCrc = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_navCic = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_navCuc = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_cnavTop = -1; /* INTEGER_0_2015 */
+static int hf_rrlp_cnavURAindex = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_cnavDeltaA = -1; /* INTEGER_M33554432_33554431 */
+static int hf_rrlp_cnavAdot = -1; /* INTEGER_M16777216_16777215 */
+static int hf_rrlp_cnavDeltaNo = -1; /* INTEGER_M65536_65535 */
+static int hf_rrlp_cnavDeltaNoDot = -1; /* INTEGER_M4194304_4194303 */
+static int hf_rrlp_cnavMo = -1; /* T_cnavMo */
+static int hf_rrlp_cnavE = -1; /* T_cnavE */
+static int hf_rrlp_cnavOmega = -1; /* T_cnavOmega */
+static int hf_rrlp_cnavOMEGA0 = -1; /* T_cnavOMEGA0 */
+static int hf_rrlp_cnavDeltaOmegaDot = -1; /* INTEGER_M65536_65535 */
+static int hf_rrlp_cnavIo = -1; /* T_cnavIo */
+static int hf_rrlp_cnavIoDot = -1; /* INTEGER_M16384_16383 */
+static int hf_rrlp_cnavCis = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_cnavCic = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_cnavCrs = -1; /* INTEGER_M8388608_8388607 */
+static int hf_rrlp_cnavCrc = -1; /* INTEGER_M8388608_8388607 */
+static int hf_rrlp_cnavCus = -1; /* INTEGER_M1048576_1048575 */
+static int hf_rrlp_cnavCuc = -1; /* INTEGER_M1048576_1048575 */
+static int hf_rrlp_gloEn = -1; /* INTEGER_0_31 */
+static int hf_rrlp_gloP1 = -1; /* BIT_STRING_SIZE_2 */
+static int hf_rrlp_gloP2 = -1; /* BOOLEAN */
+static int hf_rrlp_gloM = -1; /* INTEGER_0_3 */
+static int hf_rrlp_gloX = -1; /* INTEGER_M67108864_67108863 */
+static int hf_rrlp_gloXdot = -1; /* INTEGER_M8388608_8388607 */
+static int hf_rrlp_gloXdotdot = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_gloY = -1; /* INTEGER_M67108864_67108863 */
+static int hf_rrlp_gloYdot = -1; /* INTEGER_M8388608_8388607 */
+static int hf_rrlp_gloYdotdot = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_gloZ = -1; /* INTEGER_M67108864_67108863 */
+static int hf_rrlp_gloZdot = -1; /* INTEGER_M8388608_8388607 */
+static int hf_rrlp_gloZdotdot = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_sbasTo = -1; /* INTEGER_0_5399 */
+static int hf_rrlp_sbasAccuracy = -1; /* BIT_STRING_SIZE_4 */
+static int hf_rrlp_sbasXg = -1; /* INTEGER_M536870912_536870911 */
+static int hf_rrlp_sbasYg = -1; /* INTEGER_M536870912_536870911 */
+static int hf_rrlp_sbasZg = -1; /* INTEGER_M16777216_16777215 */
+static int hf_rrlp_sbasXgDot = -1; /* INTEGER_M65536_65535 */
+static int hf_rrlp_sbasYgDot = -1; /* INTEGER_M65536_65535 */
+static int hf_rrlp_sbasZgDot = -1; /* INTEGER_M131072_131071 */
+static int hf_rrlp_sbasXgDotDot = -1; /* INTEGER_M512_511 */
+static int hf_rrlp_sbagYgDotDot = -1; /* INTEGER_M512_511 */
+static int hf_rrlp_sbasZgDotDot = -1; /* INTEGER_M512_511 */
static int hf_rrlp_standardClockModelList = -1; /* SeqOfStandardClockModelElement */
+static int hf_rrlp_navClockModel = -1; /* NAVclockModel */
+static int hf_rrlp_cnavClockModel = -1; /* CNAVclockModel */
+static int hf_rrlp_glonassClockModel = -1; /* GLONASSclockModel */
+static int hf_rrlp_sbasClockModel = -1; /* SBASclockModel */
static int hf_rrlp_SeqOfStandardClockModelElement_item = -1; /* StandardClockModelElement */
-static int hf_rrlp_stanClockTocLSB = -1; /* INTEGER_0_511 */
+static int hf_rrlp_stanClockToc = -1; /* INTEGER_0_16383 */
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_navToc = -1; /* INTEGER_0_37799 */
+static int hf_rrlp_navaf2 = -1; /* INTEGER_M128_127 */
+static int hf_rrlp_navaf1 = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_navaf0 = -1; /* INTEGER_M2097152_2097151 */
+static int hf_rrlp_navTgd = -1; /* INTEGER_M128_127 */
+static int hf_rrlp_cnavToc = -1; /* INTEGER_0_2015 */
+static int hf_rrlp_cnavURA0 = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_cnavURA1 = -1; /* INTEGER_0_7 */
+static int hf_rrlp_cnavURA2 = -1; /* INTEGER_0_7 */
+static int hf_rrlp_cnavAf2 = -1; /* INTEGER_M512_511 */
+static int hf_rrlp_cnavAf1 = -1; /* INTEGER_M524288_524287 */
+static int hf_rrlp_cnavAf0 = -1; /* INTEGER_M33554432_33554431 */
+static int hf_rrlp_cnavTgd = -1; /* INTEGER_M4096_4095 */
+static int hf_rrlp_cnavISCl1cp = -1; /* INTEGER_M4096_4095 */
+static int hf_rrlp_cnavISCl1cd = -1; /* INTEGER_M4096_4095 */
+static int hf_rrlp_cnavISCl1ca = -1; /* INTEGER_M4096_4095 */
+static int hf_rrlp_cnavISCl2c = -1; /* INTEGER_M4096_4095 */
+static int hf_rrlp_cnavISCl5i5 = -1; /* INTEGER_M4096_4095 */
+static int hf_rrlp_cnavISCl5q5 = -1; /* INTEGER_M4096_4095 */
+static int hf_rrlp_gloTau = -1; /* INTEGER_M2097152_2097151 */
+static int hf_rrlp_gloGamma = -1; /* INTEGER_M1024_1023 */
+static int hf_rrlp_gloDeltaTau = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_sbasAgfo = -1; /* INTEGER_M2048_2047 */
+static int hf_rrlp_sbasAgf1 = -1; /* INTEGER_M128_127 */
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_badSignalID = -1; /* GANSSSignals */
static int hf_rrlp_ganssTOD_01 = -1; /* INTEGER_0_59 */
-static int hf_rrlp_ganssDataTypeID = -1; /* INTEGER_0_2 */
+static int hf_rrlp_ganssDataBitsSatList = -1; /* SeqOfGanssDataBitsElement */
+static int hf_rrlp_SeqOfGanssDataBitsElement_item = -1; /* GanssDataBitsElement */
+static int hf_rrlp_ganssDataBitsSgnList = -1; /* Seq_OfGANSSDataBitsSgn */
+static int hf_rrlp_Seq_OfGANSSDataBitsSgn_item = -1; /* GANSSDataBitsSgnElement */
+static int hf_rrlp_ganssSignalType = -1; /* GANSSSignalID */
static int hf_rrlp_ganssDataBits = -1; /* SeqOf_GANSSDataBits */
static int hf_rrlp_SeqOf_GANSSDataBits_item = -1; /* GANSSDataBit */
-static int hf_rrlp_ganssSignalID_01 = -1; /* INTEGER_0_3 */
-static int hf_rrlp_ganssRefMeasAssitList = -1; /* SeqOfGANSSRefMeasurementElement */
+static int hf_rrlp_ganssRefMeasAssistList = -1; /* SeqOfGANSSRefMeasurementElement */
static int hf_rrlp_SeqOfGANSSRefMeasurementElement_item = -1; /* GANSSRefMeasurementElement */
static int hf_rrlp_additionalDoppler = -1; /* AdditionalDopplerFields */
static int hf_rrlp_intCodePhase_01 = -1; /* INTEGER_0_127 */
@@ -444,12 +564,16 @@ static int hf_rrlp_codePhaseSearchWindow_01 = -1; /* INTEGER_0_31 */
static int hf_rrlp_additionalAngle = -1; /* AddionalAngleFields */
static int hf_rrlp_dopplerUncertainty_01 = -1; /* INTEGER_0_4 */
static int hf_rrlp_weekNumber_01 = -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_keplerianNAVAlmanac = -1; /* Almanac_NAVKeplerianSet */
+static int hf_rrlp_keplerianReducedAlmanac = -1; /* Almanac_ReducedKeplerianSet */
+static int hf_rrlp_keplerianMidiAlmanac = -1; /* Almanac_MidiAlmanacSet */
+static int hf_rrlp_keplerianGLONASS = -1; /* Almanac_GlonassAlmanacSet */
+static int hf_rrlp_ecefSBASAlmanac = -1; /* Almanac_ECEFsbasAlmanacSet */
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 */
@@ -460,6 +584,56 @@ 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_navAlmE = -1; /* INTEGER_0_65535 */
+static int hf_rrlp_navAlmDeltaI = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_navAlmOMEGADOT = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_navAlmSVHealth = -1; /* INTEGER_0_255 */
+static int hf_rrlp_navAlmSqrtA = -1; /* INTEGER_0_16777215 */
+static int hf_rrlp_navAlmOMEGAo = -1; /* INTEGER_M8388608_8388607 */
+static int hf_rrlp_navAlmOmega = -1; /* INTEGER_M8388608_8388607 */
+static int hf_rrlp_navAlmMo = -1; /* INTEGER_M8388608_8388607 */
+static int hf_rrlp_navAlmaf0 = -1; /* INTEGER_M1024_1023 */
+static int hf_rrlp_navAlmaf1 = -1; /* INTEGER_M1024_1023 */
+static int hf_rrlp_redAlmDeltaA = -1; /* INTEGER_M128_127 */
+static int hf_rrlp_redAlmOmega0 = -1; /* INTEGER_M64_63 */
+static int hf_rrlp_redAlmPhi0 = -1; /* INTEGER_M64_63 */
+static int hf_rrlp_redAlmL1Health = -1; /* BOOLEAN */
+static int hf_rrlp_redAlmL2Health = -1; /* BOOLEAN */
+static int hf_rrlp_redAlmL5Health = -1; /* BOOLEAN */
+static int hf_rrlp_midiAlmE = -1; /* INTEGER_0_2047 */
+static int hf_rrlp_midiAlmDeltaI = -1; /* INTEGER_M1024_1023 */
+static int hf_rrlp_midiAlmOmegaDot = -1; /* INTEGER_M1024_1023 */
+static int hf_rrlp_midiAlmSqrtA = -1; /* INTEGER_0_131071 */
+static int hf_rrlp_midiAlmOmega0 = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_midiAlmOmega = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_midiAlmMo = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_midiAlmaf0 = -1; /* INTEGER_M1024_1023 */
+static int hf_rrlp_midiAlmaf1 = -1; /* INTEGER_M512_511 */
+static int hf_rrlp_midiAlmL1Health = -1; /* BOOLEAN */
+static int hf_rrlp_midiAlmL2Health = -1; /* BOOLEAN */
+static int hf_rrlp_midiAlmL5Health = -1; /* BOOLEAN */
+static int hf_rrlp_gloAlmNA = -1; /* INTEGER_1_1461 */
+static int hf_rrlp_gloAlmnA = -1; /* INTEGER_1_24 */
+static int hf_rrlp_gloAlmHA = -1; /* INTEGER_0_31 */
+static int hf_rrlp_gloAlmLambdaA = -1; /* INTEGER_M1048576_1048575 */
+static int hf_rrlp_gloAlmtlambdaA = -1; /* INTEGER_0_2097151 */
+static int hf_rrlp_gloAlmDeltaIa = -1; /* INTEGER_M131072_131071 */
+static int hf_rrlp_gloAlmDeltaTA = -1; /* INTEGER_M2097152_2097151 */
+static int hf_rrlp_gloAlmDeltaTdotA = -1; /* INTEGER_M64_63 */
+static int hf_rrlp_gloAlmEpsilonA = -1; /* INTEGER_0_32767 */
+static int hf_rrlp_gloAlmOmegaA = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_gloAlmTauA = -1; /* INTEGER_M512_511 */
+static int hf_rrlp_gloAlmCA = -1; /* INTEGER_0_1 */
+static int hf_rrlp_gloAlmMA = -1; /* BIT_STRING_SIZE_2 */
+static int hf_rrlp_sbasAlmDataID = -1; /* INTEGER_0_3 */
+static int hf_rrlp_sbasAlmHealth = -1; /* BIT_STRING_SIZE_8 */
+static int hf_rrlp_sbasAlmXg = -1; /* INTEGER_M16384_16383 */
+static int hf_rrlp_sbasAlmYg = -1; /* INTEGER_M16384_16383 */
+static int hf_rrlp_sbasAlmZg = -1; /* INTEGER_M256_255 */
+static int hf_rrlp_sbasAlmXgdot = -1; /* INTEGER_M4_3 */
+static int hf_rrlp_sbasAlmYgDot = -1; /* INTEGER_M4_3 */
+static int hf_rrlp_sbasAlmZgDot = -1; /* INTEGER_M8_7 */
+static int hf_rrlp_sbasAlmTo = -1; /* INTEGER_0_2047 */
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 */
@@ -468,37 +642,240 @@ 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_ganssEphemerisHeader = -1; /* GANSSEphemerisExtensionHeader */
+static int hf_rrlp_ganssReferenceSet = -1; /* SeqOfGANSSRefOrbit */
+static int hf_rrlp_ganssephemerisDeltasMatrix = -1; /* GANSSEphemerisDeltaMatrix */
+static int hf_rrlp_timeAtEstimation = -1; /* GANSSEphemerisExtensionTime */
+static int hf_rrlp_validityPeriod = -1; /* INTEGER_1_8 */
+static int hf_rrlp_ephemerisExtensionDuration = -1; /* INTEGER_1_512 */
+static int hf_rrlp_ganssEphExtDay = -1; /* INTEGER_0_8191 */
+static int hf_rrlp_ganssEphExtTOD = -1; /* GANSSTOD */
+static int hf_rrlp_keplerToe_01 = -1; /* INTEGER_0_37799 */
+static int hf_rrlp_keplerW_01 = -1; /* T_keplerW */
+static int hf_rrlp_keplerM0_01 = -1; /* T_keplerM0 */
+static int hf_rrlp_keplerI0_01 = -1; /* T_keplerI0 */
+static int hf_rrlp_keplerOmega0_01 = -1; /* T_keplerOmega0 */
+static int hf_rrlp_SeqOfGANSSRefOrbit_item = -1; /* GANSSReferenceOrbit */
+static int hf_rrlp_ganssOrbitModel_01 = -1; /* ReferenceNavModel */
+static int hf_rrlp_GANSSEphemerisDeltaMatrix_item = -1; /* GANSSEphemerisDeltaEpoch */
+static int hf_rrlp_ganssDeltaEpochHeader = -1; /* GANSSDeltaEpochHeader */
+static int hf_rrlp_ganssDeltaElementList = -1; /* GANSSDeltaElementList */
+static int hf_rrlp_ephemerisDeltaSizes = -1; /* GANSSEphemerisDeltaBitSizes */
+static int hf_rrlp_ephemerisDeltaScales = -1; /* GANSSEphemerisDeltaScales */
+static int hf_rrlp_GANSSDeltaElementList_item = -1; /* OCTET_STRING_SIZE_1_49 */
+static int hf_rrlp_bitsize_delta_omega = -1; /* INTEGER_1_32 */
+static int hf_rrlp_bitsize_delta_deltaN = -1; /* INTEGER_1_16 */
+static int hf_rrlp_bitsize_delta_m0 = -1; /* INTEGER_1_32 */
+static int hf_rrlp_bitsize_delta_omegadot = -1; /* INTEGER_1_24 */
+static int hf_rrlp_bitsize_delta_e = -1; /* INTEGER_1_32 */
+static int hf_rrlp_bitsize_delta_idot = -1; /* INTEGER_1_14 */
+static int hf_rrlp_bitsize_delta_sqrtA = -1; /* INTEGER_1_32 */
+static int hf_rrlp_bitsize_delta_i0 = -1; /* INTEGER_1_32 */
+static int hf_rrlp_bitsize_delta_omega0 = -1; /* INTEGER_1_32 */
+static int hf_rrlp_bitsize_delta_crs = -1; /* INTEGER_1_16 */
+static int hf_rrlp_bitsize_delta_cis = -1; /* INTEGER_1_16 */
+static int hf_rrlp_bitsize_delta_cus = -1; /* INTEGER_1_16 */
+static int hf_rrlp_bitsize_delta_crc = -1; /* INTEGER_1_16 */
+static int hf_rrlp_bitsize_delta_cic = -1; /* INTEGER_1_16 */
+static int hf_rrlp_bitsize_delta_cuc = -1; /* INTEGER_1_16 */
+static int hf_rrlp_bitsize_delta_tgd1 = -1; /* INTEGER_1_10 */
+static int hf_rrlp_bitsize_delta_tgd2 = -1; /* INTEGER_1_10 */
+static int hf_rrlp_scale_delta_omega = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_scale_delta_deltaN = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_scale_delta_m0 = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_scale_delta_omegadot = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_scale_delta_e = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_scale_delta_idot = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_scale_delta_sqrtA = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_scale_delta_i0 = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_scale_delta_omega0 = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_scale_delta_crs = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_scale_delta_cis = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_scale_delta_cus = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_scale_delta_crc = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_scale_delta_cic = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_scale_delta_cuc = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_scale_delta_tgd1 = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_scale_delta_tgd2 = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_ganssBeginTime = -1; /* GANSSEphemerisExtensionTime */
+static int hf_rrlp_ganssEndTime = -1; /* GANSSEphemerisExtensionTime */
+static int hf_rrlp_ganssSatEventsInfo = -1; /* GANSSSatEventsInfo */
+static int hf_rrlp_eventOccured = -1; /* BIT_STRING_SIZE_64 */
+static int hf_rrlp_futureEventNoted = -1; /* BIT_STRING_SIZE_64 */
+static int hf_rrlp_utcModel2 = -1; /* UTCmodelSet2 */
+static int hf_rrlp_utcModel3 = -1; /* UTCmodelSet3 */
+static int hf_rrlp_utcModel4 = -1; /* UTCmodelSet4 */
+static int hf_rrlp_utcA0_01 = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_utcA1_01 = -1; /* INTEGER_M4096_4095 */
+static int hf_rrlp_utcA2 = -1; /* INTEGER_M64_63 */
+static int hf_rrlp_utcTot_01 = -1; /* INTEGER_0_65535 */
+static int hf_rrlp_utcWNot = -1; /* INTEGER_0_8191 */
+static int hf_rrlp_utcDN_01 = -1; /* BIT_STRING_SIZE_4 */
+static int hf_rrlp_nA = -1; /* INTEGER_1_1461 */
+static int hf_rrlp_tauC = -1; /* T_tauC */
+static int hf_rrlp_b1 = -1; /* INTEGER_M1024_1023 */
+static int hf_rrlp_b2 = -1; /* INTEGER_M512_511 */
+static int hf_rrlp_kp = -1; /* BIT_STRING_SIZE_2 */
+static int hf_rrlp_utcA1wnt = -1; /* INTEGER_M8388608_8388607 */
+static int hf_rrlp_utcA0wnt = -1; /* T_utcA0wnt */
+static int hf_rrlp_utcStandardID = -1; /* INTEGER_0_7 */
+static int hf_rrlp_ganssID1 = -1; /* GANSS_ID1 */
+static int hf_rrlp_ganssID3 = -1; /* GANSS_ID3 */
+static int hf_rrlp_GANSS_ID1_item = -1; /* GANSS_ID1_element */
+static int hf_rrlp_signalsAvailable = -1; /* GANSSSignals */
+static int hf_rrlp_GANSS_ID3_item = -1; /* GANSS_ID3_element */
+static int hf_rrlp_channelNumber = -1; /* INTEGER_M7_13 */
+static int hf_rrlp_GANSSDiffCorrectionsValidityPeriod_item = -1; /* DGANSSExtensionSgnTypeElement */
+static int hf_rrlp_dganssExtensionSgnList = -1; /* SeqOfDGANSSExtensionSgnElement */
+static int hf_rrlp_SeqOfDGANSSExtensionSgnElement_item = -1; /* DGANSSExtensionSgnElement */
+static int hf_rrlp_udreGrowthRate = -1; /* INTEGER_0_7 */
+static int hf_rrlp_udreValidityTime = -1; /* INTEGER_0_7 */
+static int hf_rrlp_add_GPS_controlHeader = -1; /* Add_GPS_ControlHeader */
+static int hf_rrlp_gpsEphemerisExtension = -1; /* GPSEphemerisExtension */
+static int hf_rrlp_gpsEphemerisExtensionCheck = -1; /* GPSEphemerisExtensionCheck */
+static int hf_rrlp_dgpsCorrectionsValidityPeriod = -1; /* DGPSCorrectionsValidityPeriod */
+static int hf_rrlp_af2 = -1; /* INTEGER_M128_127 */
+static int hf_rrlp_af1 = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_af0 = -1; /* INTEGER_M2097152_2097151 */
+static int hf_rrlp_tgd = -1; /* INTEGER_M128_127 */
+static int hf_rrlp_gpsEphemerisHeader = -1; /* GPSEphemerisExtensionHeader */
+static int hf_rrlp_gpsReferenceSet = -1; /* SeqOfGPSRefOrbit */
+static int hf_rrlp_gpsephemerisDeltaMatrix = -1; /* GPSEphemerisDeltaMatrix */
+static int hf_rrlp_timeofEstimation = -1; /* GPSEphemerisExtensionTime */
+static int hf_rrlp_SeqOfGPSRefOrbit_item = -1; /* GPSReferenceOrbit */
+static int hf_rrlp_gpsOrbitModel = -1; /* ReferenceNavModel */
+static int hf_rrlp_gpsClockModel = -1; /* GPSClockModel */
+static int hf_rrlp_GPSEphemerisDeltaMatrix_item = -1; /* GPSEphemerisDeltaEpoch */
+static int hf_rrlp_gpsDeltaEpochHeader = -1; /* GPSDeltaEpochHeader */
+static int hf_rrlp_gpsDeltaElementList = -1; /* GPSDeltaElementList */
+static int hf_rrlp_ephemerisDeltaSizes_01 = -1; /* GPSEphemerisDeltaBitSizes */
+static int hf_rrlp_ephemerisDeltaScales_01 = -1; /* GPSEphemerisDeltaScales */
+static int hf_rrlp_GPSDeltaElementList_item = -1; /* OCTET_STRING_SIZE_1_47 */
+static int hf_rrlp_bitsize_delta_tgd = -1; /* INTEGER_1_10 */
+static int hf_rrlp_scale_delta_tgd = -1; /* INTEGER_M16_15 */
+static int hf_rrlp_gpsBeginTime = -1; /* GPSEphemerisExtensionTime */
+static int hf_rrlp_gpsEndTime = -1; /* GPSEphemerisExtensionTime */
+static int hf_rrlp_gpsSatEventsInfo = -1; /* GPSSatEventsInfo */
+static int hf_rrlp_eventOccured_01 = -1; /* BIT_STRING_SIZE_32 */
+static int hf_rrlp_futureEventNoted_01 = -1; /* BIT_STRING_SIZE_32 */
+static int hf_rrlp_DGPSCorrectionsValidityPeriod_item = -1; /* DGPSExtensionSatElement */
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_ganssTimeID_01 = -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_deltaGANSSTOD = -1; /* INTEGER_0_127 */
+static int hf_rrlp_ganss_MsrElementList = -1; /* SeqOfGANSS_MsrElement */
+static int hf_rrlp_SeqOfGANSS_MsrElement_item = -1; /* GANSS_MsrElement */
static int hf_rrlp_ganss_SgnTypeList = -1; /* SeqOfGANSS_SgnTypeElement */
static int hf_rrlp_SeqOfGANSS_SgnTypeElement_item = -1; /* GANSS_SgnTypeElement */
-static int hf_rrlp_ganssSignalID_02 = -1; /* INTEGER_0_15 */
+static int hf_rrlp_ganssCodePhaseAmbiguity = -1; /* INTEGER_0_127 */
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_codePhase_01 = -1; /* INTEGER_0_2097151 */
-static int hf_rrlp_integerCodePhase = -1; /* INTEGER_0_63 */
+static int hf_rrlp_integerCodePhase = -1; /* INTEGER_0_127 */
static int hf_rrlp_codePhaseRMSError = -1; /* INTEGER_0_63 */
static int hf_rrlp_adr = -1; /* INTEGER_0_33554431 */
+static int hf_rrlp_nonGANSSpositionMethods = -1; /* NonGANSSPositionMethods */
+static int hf_rrlp_multipleMeasurementSets = -1; /* MultipleMeasurementSets */
+static int hf_rrlp_GANSSPositionMethods_item = -1; /* GANSSPositionMethod */
+static int hf_rrlp_gANSSPositioningMethodTypes = -1; /* GANSSPositioningMethodTypes */
+static int hf_rrlp_gANSSSignals = -1; /* GANSSSignals */
+static int hf_rrlp_sbasID_01 = -1; /* SBASID */
+static int hf_rrlp_gpsAssistance = -1; /* GPSAssistance */
+static int hf_rrlp_gANSSAssistanceSet = -1; /* GANSSAssistanceSet */
+static int hf_rrlp_gANSSAdditionalAssistanceChoices = -1; /* GANSSAdditionalAssistanceChoices */
+static int hf_rrlp_commonGANSSAssistance = -1; /* CommonGANSSAssistance */
+static int hf_rrlp_specificGANSSAssistance = -1; /* SpecificGANSSAssistance */
+static int hf_rrlp_SpecificGANSSAssistance_item = -1; /* GANSSAssistanceForOneGANSS */
+static int hf_rrlp_gANSSAssistance = -1; /* GANSSAssistance */
+static int hf_rrlp_GANSSAdditionalAssistanceChoices_item = -1; /* GANSSAdditionalAssistanceChoicesForOneGANSS */
+static int hf_rrlp_ganssClockModelChoice = -1; /* GANSSModelID */
+static int hf_rrlp_gannsOrbitModelChoice = -1; /* GANSSModelID */
+static int hf_rrlp_ganssAlmanacModelChoice = -1; /* GANSSModelID */
+static int hf_rrlp_ganssAdditionalUTCModelChoice = -1; /* GANSSModelID */
/* named bits */
static int hf_rrlp_GANSSPositioningMethod_gps = -1;
static int hf_rrlp_GANSSPositioningMethod_galileo = -1;
+static int hf_rrlp_GANSSPositioningMethod_sbas = -1;
+static int hf_rrlp_GANSSPositioningMethod_modernizedGPS = -1;
+static int hf_rrlp_GANSSPositioningMethod_qzss = -1;
+static int hf_rrlp_GANSSPositioningMethod_glonass = -1;
static int hf_rrlp_PositionData_e_otd = -1;
static int hf_rrlp_PositionData_gps = -1;
static int hf_rrlp_PositionData_galileo = -1;
+static int hf_rrlp_PositionData_sbas = -1;
+static int hf_rrlp_PositionData_modernizedGPS = -1;
+static int hf_rrlp_PositionData_qzss = -1;
+static int hf_rrlp_PositionData_glonass = -1;
+static int hf_rrlp_NonGANSSPositionMethods_msAssistedEOTD = -1;
+static int hf_rrlp_NonGANSSPositionMethods_msBasedEOTD = -1;
+static int hf_rrlp_NonGANSSPositionMethods_msAssistedGPS = -1;
+static int hf_rrlp_NonGANSSPositionMethods_msBasedGPS = -1;
+static int hf_rrlp_NonGANSSPositionMethods_standaloneGPS = -1;
+static int hf_rrlp_GANSSPositioningMethodTypes_msAssisted = -1;
+static int hf_rrlp_GANSSPositioningMethodTypes_msBased = -1;
+static int hf_rrlp_GANSSPositioningMethodTypes_standalone = -1;
+static int hf_rrlp_GANSSSignals_signal1 = -1;
+static int hf_rrlp_GANSSSignals_signal2 = -1;
+static int hf_rrlp_GANSSSignals_signal3 = -1;
+static int hf_rrlp_GANSSSignals_signal4 = -1;
+static int hf_rrlp_GANSSSignals_signal5 = -1;
+static int hf_rrlp_GANSSSignals_signal6 = -1;
+static int hf_rrlp_GANSSSignals_signal7 = -1;
+static int hf_rrlp_GANSSSignals_signal8 = -1;
+static int hf_rrlp_SBASID_waas = -1;
+static int hf_rrlp_SBASID_egnos = -1;
+static int hf_rrlp_SBASID_masas = -1;
+static int hf_rrlp_SBASID_gagan = -1;
+static int hf_rrlp_MultipleMeasurementSets_eotd = -1;
+static int hf_rrlp_MultipleMeasurementSets_gps = -1;
+static int hf_rrlp_MultipleMeasurementSets_ganss = -1;
+static int hf_rrlp_GPSAssistance_almanac = -1;
+static int hf_rrlp_GPSAssistance_uTCmodel = -1;
+static int hf_rrlp_GPSAssistance_ionosphericModel = -1;
+static int hf_rrlp_GPSAssistance_navigationmodel = -1;
+static int hf_rrlp_GPSAssistance_dGPScorrections = -1;
+static int hf_rrlp_GPSAssistance_referenceLocation = -1;
+static int hf_rrlp_GPSAssistance_referenceTime = -1;
+static int hf_rrlp_GPSAssistance_acquisitionAssistance = -1;
+static int hf_rrlp_GPSAssistance_realTimeIntegrity = -1;
+static int hf_rrlp_GPSAssistance_ephemerisExtension = -1;
+static int hf_rrlp_GPSAssistance_ephemerisExtensionCheck = -1;
+static int hf_rrlp_CommonGANSSAssistance_referenceTime = -1;
+static int hf_rrlp_CommonGANSSAssistance_referenceLocation = -1;
+static int hf_rrlp_CommonGANSSAssistance_ionosphericModel = -1;
+static int hf_rrlp_CommonGANSSAssistance_addIonosphericModel = -1;
+static int hf_rrlp_CommonGANSSAssistance_earthOrientationParam = -1;
+static int hf_rrlp_GANSSAssistance_realTimeIntegrity = -1;
+static int hf_rrlp_GANSSAssistance_differentialCorrections = -1;
+static int hf_rrlp_GANSSAssistance_almanac = -1;
+static int hf_rrlp_GANSSAssistance_referenceMeasurementInformation = -1;
+static int hf_rrlp_GANSSAssistance_navigationModel = -1;
+static int hf_rrlp_GANSSAssistance_timeModelGNSS_UTC = -1;
+static int hf_rrlp_GANSSAssistance_timeModelGNSS_GNSS = -1;
+static int hf_rrlp_GANSSAssistance_databitassistance = -1;
+static int hf_rrlp_GANSSAssistance_ephemerisExtension = -1;
+static int hf_rrlp_GANSSAssistance_ephemerisExtensionCheck = -1;
+static int hf_rrlp_GANSSAssistance_addUTCmodel = -1;
+static int hf_rrlp_GANSSAssistance_auxiliaryInformation = -1;
+static int hf_rrlp_GANSSModelID_model1 = -1;
+static int hf_rrlp_GANSSModelID_model2 = -1;
+static int hf_rrlp_GANSSModelID_model3 = -1;
+static int hf_rrlp_GANSSModelID_model4 = -1;
+static int hf_rrlp_GANSSModelID_model5 = -1;
+static int hf_rrlp_GANSSModelID_model6 = -1;
+static int hf_rrlp_GANSSModelID_model7 = -1;
+static int hf_rrlp_GANSSModelID_model8 = -1;
/*--- End of included file: packet-rrlp-hf.c ---*/
#line 61 "packet-rrlp-template.c"
@@ -518,6 +895,8 @@ static gint ett_rrlp_MsrPosition_Req = -1;
static gint ett_rrlp_MsrPosition_Rsp = -1;
static gint ett_rrlp_AssistanceData = -1;
static gint ett_rrlp_ProtocolError = -1;
+static gint ett_rrlp_PosCapability_Req = -1;
+static gint ett_rrlp_PosCapability_Rsp = -1;
static gint ett_rrlp_PositionInstruct = -1;
static gint ett_rrlp_MethodType = -1;
static gint ett_rrlp_AccuracyOpt = -1;
@@ -622,6 +1001,8 @@ 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_GANSSAddIonosphericModel = -1;
+static gint ett_rrlp_GANSSEarthOrientParam = -1;
static gint ett_rrlp_SeqOfGANSSTimeModel = -1;
static gint ett_rrlp_GANSSTimeModelElement = -1;
static gint ett_rrlp_GANSSDiffCorrections = -1;
@@ -634,13 +1015,25 @@ 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_NavModel_NAVKeplerianSet = -1;
+static gint ett_rrlp_NavModel_CNAVKeplerianSet = -1;
+static gint ett_rrlp_NavModel_GLONASSecef = -1;
+static gint ett_rrlp_NavModel_SBASecef = -1;
static gint ett_rrlp_GANSSClockModel = -1;
static gint ett_rrlp_SeqOfStandardClockModelElement = -1;
static gint ett_rrlp_StandardClockModelElement = -1;
+static gint ett_rrlp_NAVclockModel = -1;
+static gint ett_rrlp_CNAVclockModel = -1;
+static gint ett_rrlp_GLONASSclockModel = -1;
+static gint ett_rrlp_SBASclockModel = -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_SeqOfGanssDataBitsElement = -1;
+static gint ett_rrlp_GanssDataBitsElement = -1;
+static gint ett_rrlp_Seq_OfGANSSDataBitsSgn = -1;
+static gint ett_rrlp_GANSSDataBitsSgnElement = -1;
static gint ett_rrlp_SeqOf_GANSSDataBits = -1;
static gint ett_rrlp_GANSSRefMeasurementAssist = -1;
static gint ett_rrlp_SeqOfGANSSRefMeasurementElement = -1;
@@ -650,7 +1043,57 @@ 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_Almanac_NAVKeplerianSet = -1;
+static gint ett_rrlp_Almanac_ReducedKeplerianSet = -1;
+static gint ett_rrlp_Almanac_MidiAlmanacSet = -1;
+static gint ett_rrlp_Almanac_GlonassAlmanacSet = -1;
+static gint ett_rrlp_Almanac_ECEFsbasAlmanacSet = -1;
static gint ett_rrlp_GANSSUTCModel = -1;
+static gint ett_rrlp_GANSSEphemerisExtension = -1;
+static gint ett_rrlp_GANSSEphemerisExtensionHeader = -1;
+static gint ett_rrlp_GANSSEphemerisExtensionTime = -1;
+static gint ett_rrlp_ReferenceNavModel = -1;
+static gint ett_rrlp_SeqOfGANSSRefOrbit = -1;
+static gint ett_rrlp_GANSSReferenceOrbit = -1;
+static gint ett_rrlp_GANSSEphemerisDeltaMatrix = -1;
+static gint ett_rrlp_GANSSEphemerisDeltaEpoch = -1;
+static gint ett_rrlp_GANSSDeltaEpochHeader = -1;
+static gint ett_rrlp_GANSSDeltaElementList = -1;
+static gint ett_rrlp_GANSSEphemerisDeltaBitSizes = -1;
+static gint ett_rrlp_GANSSEphemerisDeltaScales = -1;
+static gint ett_rrlp_GANSSEphemerisExtensionCheck = -1;
+static gint ett_rrlp_GANSSSatEventsInfo = -1;
+static gint ett_rrlp_GANSSAddUTCModel = -1;
+static gint ett_rrlp_UTCmodelSet2 = -1;
+static gint ett_rrlp_UTCmodelSet3 = -1;
+static gint ett_rrlp_UTCmodelSet4 = -1;
+static gint ett_rrlp_GANSSAuxiliaryInformation = -1;
+static gint ett_rrlp_GANSS_ID1 = -1;
+static gint ett_rrlp_GANSS_ID1_element = -1;
+static gint ett_rrlp_GANSS_ID3 = -1;
+static gint ett_rrlp_GANSS_ID3_element = -1;
+static gint ett_rrlp_GANSSDiffCorrectionsValidityPeriod = -1;
+static gint ett_rrlp_DGANSSExtensionSgnTypeElement = -1;
+static gint ett_rrlp_SeqOfDGANSSExtensionSgnElement = -1;
+static gint ett_rrlp_DGANSSExtensionSgnElement = -1;
+static gint ett_rrlp_Add_GPS_AssistData = -1;
+static gint ett_rrlp_Add_GPS_ControlHeader = -1;
+static gint ett_rrlp_GPSClockModel = -1;
+static gint ett_rrlp_GPSEphemerisExtension = -1;
+static gint ett_rrlp_GPSEphemerisExtensionHeader = -1;
+static gint ett_rrlp_GPSEphemerisExtensionTime = -1;
+static gint ett_rrlp_SeqOfGPSRefOrbit = -1;
+static gint ett_rrlp_GPSReferenceOrbit = -1;
+static gint ett_rrlp_GPSEphemerisDeltaMatrix = -1;
+static gint ett_rrlp_GPSEphemerisDeltaEpoch = -1;
+static gint ett_rrlp_GPSDeltaEpochHeader = -1;
+static gint ett_rrlp_GPSDeltaElementList = -1;
+static gint ett_rrlp_GPSEphemerisDeltaBitSizes = -1;
+static gint ett_rrlp_GPSEphemerisDeltaScales = -1;
+static gint ett_rrlp_GPSEphemerisExtensionCheck = -1;
+static gint ett_rrlp_GPSSatEventsInfo = -1;
+static gint ett_rrlp_DGPSCorrectionsValidityPeriod = -1;
+static gint ett_rrlp_DGPSExtensionSatElement = -1;
static gint ett_rrlp_Rel_7_MsrPosition_Rsp_Extension = -1;
static gint ett_rrlp_GANSSLocationInfo = -1;
static gint ett_rrlp_PositionData = -1;
@@ -658,11 +1101,32 @@ 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_MsrElement = -1;
+static gint ett_rrlp_GANSS_MsrElement = -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_PosCapabilities = -1;
+static gint ett_rrlp_NonGANSSPositionMethods = -1;
+static gint ett_rrlp_GANSSPositionMethods = -1;
+static gint ett_rrlp_GANSSPositionMethod = -1;
+static gint ett_rrlp_GANSSPositioningMethodTypes = -1;
+static gint ett_rrlp_GANSSSignals = -1;
+static gint ett_rrlp_SBASID = -1;
+static gint ett_rrlp_MultipleMeasurementSets = -1;
+static gint ett_rrlp_AssistanceSupported = -1;
+static gint ett_rrlp_GPSAssistance = -1;
+static gint ett_rrlp_GANSSAssistanceSet = -1;
+static gint ett_rrlp_CommonGANSSAssistance = -1;
+static gint ett_rrlp_SpecificGANSSAssistance = -1;
+static gint ett_rrlp_GANSSAssistanceForOneGANSS = -1;
+static gint ett_rrlp_GANSSAssistance = -1;
+static gint ett_rrlp_GANSSAdditionalAssistanceChoices = -1;
+static gint ett_rrlp_GANSSAdditionalAssistanceChoicesForOneGANSS = -1;
+static gint ett_rrlp_GANSSModelID = -1;
+static gint ett_rrlp_AssistanceNeeded = -1;
/*--- End of included file: packet-rrlp-ett.c ---*/
#line 65 "packet-rrlp-template.c"
@@ -762,7 +1226,6 @@ dissect_rrlp_ExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
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 34 "rrlp.cnf"
tvbuff_t *parameter_tvb = NULL;
@@ -773,7 +1236,6 @@ tvbuff_t *parameter_tvb = NULL;
if(parameter_tvb)
dissect_geographical_description(parameter_tvb, actx->pinfo, tree);
-
return offset;
}
@@ -2459,10 +2921,97 @@ dissect_rrlp_GANSSIonosphericModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
}
+
+static int
+dissect_rrlp_BIT_STRING_SIZE_2(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, 2, FALSE, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSAddIonosphericModel_sequence[] = {
+ { &hf_rrlp_dataID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BIT_STRING_SIZE_2 },
+ { &hf_rrlp_ionoModel , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_IonosphericModel },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSAddIonosphericModel(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_GANSSAddIonosphericModel, GANSSAddIonosphericModel_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_M1048576_1048575(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,
+ -1048576, 1048575U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_M16384_16383(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,
+ -16384, 16383U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_M1073741824_1073741823(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,
+ -1073741824, 1073741823U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_M262144_262143(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,
+ -262144, 262143U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSEarthOrientParam_sequence[] = {
+ { &hf_rrlp_teop , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_65535 },
+ { &hf_rrlp_pmX , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1048576_1048575 },
+ { &hf_rrlp_pmXdot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16384_16383 },
+ { &hf_rrlp_pmY , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1048576_1048575 },
+ { &hf_rrlp_pmYdot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16384_16383 },
+ { &hf_rrlp_deltaUT1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1073741824_1073741823 },
+ { &hf_rrlp_deltaUT1dot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M262144_262143 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSEarthOrientParam(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_GANSSEarthOrientParam, GANSSEarthOrientParam_sequence);
+
+ return offset;
+}
+
+
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 },
+ { &hf_rrlp_ganssAddIonosphericModel, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GANSSAddIonosphericModel },
+ { &hf_rrlp_ganssEarthOrientParam, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GANSSEarthOrientParam },
{ NULL, 0, 0, NULL }
};
@@ -2552,7 +3101,7 @@ dissect_rrlp_INTEGER_0_119(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
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);
+ 0U, 7U, NULL, FALSE);
return offset;
}
@@ -2601,7 +3150,7 @@ dissect_rrlp_SeqOfDGANSSSgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static const per_sequence_t SgnTypeElement_sequence[] = {
- { &hf_rrlp_ganssSignalID , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSSignalID },
+ { &hf_rrlp_ganssSignalID , ASN1_NO_EXTENSIONS , ASN1_NOT_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 }
@@ -2647,19 +3196,9 @@ dissect_rrlp_GANSSDiffCorrections(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
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);
+dissect_rrlp_BIT_STRING_SIZE_5(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,
+ 5, 5, FALSE, NULL);
return offset;
}
@@ -2667,9 +3206,9 @@ dissect_rrlp_INTEGER_M7_13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
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_) {
+dissect_rrlp_INTEGER_0_16383(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);
+ 0U, 16383U, NULL, FALSE);
return offset;
}
@@ -2706,7 +3245,7 @@ dissect_rrlp_INTEGER_M512_511(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static const per_sequence_t StandardClockModelElement_sequence[] = {
- { &hf_rrlp_stanClockTocLSB, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_511 },
+ { &hf_rrlp_stanClockToc , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_16383 },
{ &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 },
@@ -2738,21 +3277,29 @@ dissect_rrlp_SeqOfStandardClockModelElement(tvbuff_t *tvb _U_, int offset _U_, a
}
-static const value_string rrlp_GANSSClockModel_vals[] = {
- { 0, "standardClockModelList" },
- { 0, NULL }
+static const per_sequence_t NAVclockModel_sequence[] = {
+ { &hf_rrlp_navToc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_37799 },
+ { &hf_rrlp_navaf2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
+ { &hf_rrlp_navaf1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_navaf0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2097152_2097151 },
+ { &hf_rrlp_navTgd , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
+ { NULL, 0, 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_NAVclockModel(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_NAVclockModel, NAVclockModel_sequence);
+
+ return offset;
+}
+
+
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);
+dissect_rrlp_INTEGER_0_2015(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, 2015U, NULL, FALSE);
return offset;
}
@@ -2760,9 +3307,19 @@ dissect_rrlp_GANSSClockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
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_) {
+dissect_rrlp_INTEGER_M16_15(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);
+ -16, 15U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_M524288_524287(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,
+ -524288, 524287U, NULL, FALSE);
return offset;
}
@@ -2770,23 +3327,131 @@ dissect_rrlp_INTEGER_0_33554431(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
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_) {
+dissect_rrlp_INTEGER_M33554432_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, 67108863U, NULL, FALSE);
+ -33554432, 33554431U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_M4096_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,
+ -4096, 4095U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t CNAVclockModel_sequence[] = {
+ { &hf_rrlp_cnavToc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2015 },
+ { &hf_rrlp_cnavTop , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2015 },
+ { &hf_rrlp_cnavURA0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_cnavURA1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
+ { &hf_rrlp_cnavURA2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
+ { &hf_rrlp_cnavAf2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M512_511 },
+ { &hf_rrlp_cnavAf1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M524288_524287 },
+ { &hf_rrlp_cnavAf0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M33554432_33554431 },
+ { &hf_rrlp_cnavTgd , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M4096_4095 },
+ { &hf_rrlp_cnavISCl1cp , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M4096_4095 },
+ { &hf_rrlp_cnavISCl1cd , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M4096_4095 },
+ { &hf_rrlp_cnavISCl1ca , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M4096_4095 },
+ { &hf_rrlp_cnavISCl2c , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M4096_4095 },
+ { &hf_rrlp_cnavISCl5i5 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M4096_4095 },
+ { &hf_rrlp_cnavISCl5q5 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M4096_4095 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_CNAVclockModel(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_CNAVclockModel, CNAVclockModel_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GLONASSclockModel_sequence[] = {
+ { &hf_rrlp_gloTau , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2097152_2097151 },
+ { &hf_rrlp_gloGamma , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
+ { &hf_rrlp_gloDeltaTau , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M16_15 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GLONASSclockModel(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_GLONASSclockModel, GLONASSclockModel_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_5399(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, 5399U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t SBASclockModel_sequence[] = {
+ { &hf_rrlp_sbasTo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_5399 },
+ { &hf_rrlp_sbasAgfo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2048_2047 },
+ { &hf_rrlp_sbasAgf1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_SBASclockModel(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_SBASclockModel, SBASclockModel_sequence);
+
+ return offset;
+}
+
+
+static const value_string rrlp_GANSSClockModel_vals[] = {
+ { 0, "standardClockModelList" },
+ { 1, "navClockModel" },
+ { 2, "cnavClockModel" },
+ { 3, "glonassClockModel" },
+ { 4, "sbasClockModel" },
+ { 0, NULL }
+};
+
+static const per_choice_t GANSSClockModel_choice[] = {
+ { 0, &hf_rrlp_standardClockModelList, ASN1_EXTENSION_ROOT , dissect_rrlp_SeqOfStandardClockModelElement },
+ { 1, &hf_rrlp_navClockModel , ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_NAVclockModel },
+ { 2, &hf_rrlp_cnavClockModel , ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_CNAVclockModel },
+ { 3, &hf_rrlp_glonassClockModel, ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_GLONASSclockModel },
+ { 4, &hf_rrlp_sbasClockModel , ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_SBASclockModel },
+ { 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 const per_sequence_t NavModel_KeplerianSet_sequence[] = {
- { &hf_rrlp_keplerToeLSB , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_511 },
+ { &hf_rrlp_keplerToe , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_16383 },
{ &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_keplerE , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4294967295 },
{ &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_keplerAPowerHalf, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4294967295 },
{ &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 },
@@ -2807,13 +3472,253 @@ dissect_rrlp_NavModel_KeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
}
+static const per_sequence_t NavModel_NAVKeplerianSet_sequence[] = {
+ { &hf_rrlp_navURA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_15 },
+ { &hf_rrlp_navFitFlag , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
+ { &hf_rrlp_navToe , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_37799 },
+ { &hf_rrlp_navOmega , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
+ { &hf_rrlp_navDeltaN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_navM0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
+ { &hf_rrlp_navOmegaADot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
+ { &hf_rrlp_navE , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4294967295 },
+ { &hf_rrlp_navIDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8192_8191 },
+ { &hf_rrlp_navAPowerHalf , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4294967295 },
+ { &hf_rrlp_navI0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
+ { &hf_rrlp_navOmegaA0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
+ { &hf_rrlp_navCrs , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_navCis , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_navCus , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_navCrc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_navCic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_navCuc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_NavModel_NAVKeplerianSet(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_NAVKeplerianSet, NavModel_NAVKeplerianSet_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_M16777216_16777215(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,
+ -16777216, 16777215U, 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 int
+dissect_rrlp_INTEGER_M4194304_4194303(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,
+ -4194304, 4194303U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_T_cnavMo(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_64b(tvb, offset, actx, tree, hf_index,
+ -4294967296, 4294967295U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_T_cnavE(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_64b(tvb, offset, actx, tree, hf_index,
+ 0U, G_GINT64_CONSTANT(8589934591U), NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_T_cnavOmega(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_64b(tvb, offset, actx, tree, hf_index,
+ -4294967296, 4294967295U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_T_cnavOMEGA0(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_64b(tvb, offset, actx, tree, hf_index,
+ -4294967296, 4294967295U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_T_cnavIo(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_64b(tvb, offset, actx, tree, hf_index,
+ -4294967296, 4294967295U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t NavModel_CNAVKeplerianSet_sequence[] = {
+ { &hf_rrlp_cnavTop , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2015 },
+ { &hf_rrlp_cnavURAindex , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_cnavDeltaA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M33554432_33554431 },
+ { &hf_rrlp_cnavAdot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16777216_16777215 },
+ { &hf_rrlp_cnavDeltaNo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M65536_65535 },
+ { &hf_rrlp_cnavDeltaNoDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M4194304_4194303 },
+ { &hf_rrlp_cnavMo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_T_cnavMo },
+ { &hf_rrlp_cnavE , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_T_cnavE },
+ { &hf_rrlp_cnavOmega , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_T_cnavOmega },
+ { &hf_rrlp_cnavOMEGA0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_T_cnavOMEGA0 },
+ { &hf_rrlp_cnavDeltaOmegaDot, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M65536_65535 },
+ { &hf_rrlp_cnavIo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_T_cnavIo },
+ { &hf_rrlp_cnavIoDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16384_16383 },
+ { &hf_rrlp_cnavCis , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_cnavCic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_cnavCrs , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
+ { &hf_rrlp_cnavCrc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
+ { &hf_rrlp_cnavCus , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1048576_1048575 },
+ { &hf_rrlp_cnavCuc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1048576_1048575 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_NavModel_CNAVKeplerianSet(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_CNAVKeplerianSet, NavModel_CNAVKeplerianSet_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_M67108864_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,
+ -67108864, 67108863U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t NavModel_GLONASSecef_sequence[] = {
+ { &hf_rrlp_gloEn , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_31 },
+ { &hf_rrlp_gloP1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BIT_STRING_SIZE_2 },
+ { &hf_rrlp_gloP2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BOOLEAN },
+ { &hf_rrlp_gloM , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_3 },
+ { &hf_rrlp_gloX , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M67108864_67108863 },
+ { &hf_rrlp_gloXdot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
+ { &hf_rrlp_gloXdotdot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_gloY , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M67108864_67108863 },
+ { &hf_rrlp_gloYdot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
+ { &hf_rrlp_gloYdotdot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_gloZ , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M67108864_67108863 },
+ { &hf_rrlp_gloZdot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
+ { &hf_rrlp_gloZdotdot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_NavModel_GLONASSecef(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_GLONASSecef, NavModel_GLONASSecef_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_BIT_STRING_SIZE_4(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,
+ 4, 4, FALSE, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_M536870912_536870911(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,
+ -536870912, 536870911U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t NavModel_SBASecef_sequence[] = {
+ { &hf_rrlp_sbasTo , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_5399 },
+ { &hf_rrlp_sbasAccuracy , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BIT_STRING_SIZE_4 },
+ { &hf_rrlp_sbasXg , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M536870912_536870911 },
+ { &hf_rrlp_sbasYg , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M536870912_536870911 },
+ { &hf_rrlp_sbasZg , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16777216_16777215 },
+ { &hf_rrlp_sbasXgDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M65536_65535 },
+ { &hf_rrlp_sbasYgDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M65536_65535 },
+ { &hf_rrlp_sbasZgDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M131072_131071 },
+ { &hf_rrlp_sbasXgDotDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M512_511 },
+ { &hf_rrlp_sbagYgDotDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M512_511 },
+ { &hf_rrlp_sbasZgDotDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M512_511 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_NavModel_SBASecef(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_SBASecef, NavModel_SBASecef_sequence);
+
+ return offset;
+}
+
+
static const value_string rrlp_GANSSOrbitModel_vals[] = {
{ 0, "keplerianSet" },
+ { 1, "navKeplerianSet" },
+ { 2, "cnavKeplerianSet" },
+ { 3, "glonassECEF" },
+ { 4, "sbasECEF" },
{ 0, NULL }
};
static const per_choice_t GANSSOrbitModel_choice[] = {
{ 0, &hf_rrlp_keplerianSet , ASN1_EXTENSION_ROOT , dissect_rrlp_NavModel_KeplerianSet },
+ { 1, &hf_rrlp_navKeplerianSet, ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_NavModel_NAVKeplerianSet },
+ { 2, &hf_rrlp_cnavKeplerianSet, ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_NavModel_CNAVKeplerianSet },
+ { 3, &hf_rrlp_glonassECEF , ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_NavModel_GLONASSecef },
+ { 4, &hf_rrlp_sbasECEF , ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_NavModel_SBASecef },
{ 0, NULL, 0, NULL }
};
@@ -2827,12 +3732,24 @@ dissect_rrlp_GANSSOrbitModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
}
+
+static int
+dissect_rrlp_BIT_STRING_SIZE_1(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, 1, FALSE, 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_svHealth , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_BIT_STRING_SIZE_5 },
{ &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 },
+ { &hf_rrlp_svHealthMSB , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_BIT_STRING_SIZE_1 },
+ { &hf_rrlp_iodMSB , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_1 },
{ NULL, 0, 0, NULL }
};
@@ -2861,9 +3778,6 @@ dissect_rrlp_SeqOfGANSSSatelliteElement(tvbuff_t *tvb _U_, int offset _U_, asn1_
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 }
};
@@ -2877,9 +3791,19 @@ dissect_rrlp_GANSSNavModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
}
+
+static int
+dissect_rrlp_GANSSSignals(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, 8, FALSE, NULL);
+
+ 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 },
+ { &hf_rrlp_badSignalID , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSSignals },
{ NULL, 0, 0, NULL }
};
@@ -2932,16 +3856,6 @@ dissect_rrlp_INTEGER_0_59(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
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);
@@ -2964,11 +3878,67 @@ dissect_rrlp_SeqOf_GANSSDataBits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
}
+static const per_sequence_t GANSSDataBitsSgnElement_sequence[] = {
+ { &hf_rrlp_ganssSignalType, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSSignalID },
+ { &hf_rrlp_ganssDataBits , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOf_GANSSDataBits },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSDataBitsSgnElement(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_GANSSDataBitsSgnElement, GANSSDataBitsSgnElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t Seq_OfGANSSDataBitsSgn_sequence_of[1] = {
+ { &hf_rrlp_Seq_OfGANSSDataBitsSgn_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSDataBitsSgnElement },
+};
+
+static int
+dissect_rrlp_Seq_OfGANSSDataBitsSgn(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_Seq_OfGANSSDataBitsSgn, Seq_OfGANSSDataBitsSgn_sequence_of,
+ 1, 8, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GanssDataBitsElement_sequence[] = {
+ { &hf_rrlp_svID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &hf_rrlp_ganssDataBitsSgnList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_Seq_OfGANSSDataBitsSgn },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GanssDataBitsElement(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_GanssDataBitsElement, GanssDataBitsElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfGanssDataBitsElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfGanssDataBitsElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GanssDataBitsElement },
+};
+
+static int
+dissect_rrlp_SeqOfGanssDataBitsElement(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_SeqOfGanssDataBitsElement, SeqOfGanssDataBitsElement_sequence_of,
+ 1, 32, FALSE);
+
+ return offset;
+}
+
+
static const per_sequence_t GANSSDataBitAssist_sequence[] = {
- { &hf_rrlp_ganssTOD_01 , 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 },
+ { &hf_rrlp_ganssTOD_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_59 },
+ { &hf_rrlp_ganssDataBitsSatList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGanssDataBitsElement },
{ NULL, 0, 0, NULL }
};
@@ -3006,6 +3976,16 @@ dissect_rrlp_AdditionalDopplerFields(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
}
+
+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 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 },
@@ -3041,8 +4021,8 @@ dissect_rrlp_SeqOfGANSSRefMeasurementElement(tvbuff_t *tvb _U_, int offset _U_,
static const per_sequence_t GANSSRefMeasurementAssist_sequence[] = {
- { &hf_rrlp_ganssSignalID_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_3 },
- { &hf_rrlp_ganssRefMeasAssitList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSSRefMeasurementElement },
+ { &hf_rrlp_ganssSignalID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSSignalID },
+ { &hf_rrlp_ganssRefMeasAssistList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSSRefMeasurementElement },
{ NULL, 0, 0, NULL }
};
@@ -3057,9 +4037,199 @@ dissect_rrlp_GANSSRefMeasurementAssist(tvbuff_t *tvb _U_, int offset _U_, asn1_c
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_) {
+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 const per_sequence_t Almanac_KeplerianSet_sequence[] = {
+ { &hf_rrlp_svID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &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 per_sequence_t Almanac_NAVKeplerianSet_sequence[] = {
+ { &hf_rrlp_svID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &hf_rrlp_navAlmE , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_65535 },
+ { &hf_rrlp_navAlmDeltaI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_navAlmOMEGADOT , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_navAlmSVHealth , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
+ { &hf_rrlp_navAlmSqrtA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_16777215 },
+ { &hf_rrlp_navAlmOMEGAo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
+ { &hf_rrlp_navAlmOmega , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
+ { &hf_rrlp_navAlmMo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
+ { &hf_rrlp_navAlmaf0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
+ { &hf_rrlp_navAlmaf1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_Almanac_NAVKeplerianSet(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_NAVKeplerianSet, Almanac_NAVKeplerianSet_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_M64_63(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 Almanac_ReducedKeplerianSet_sequence[] = {
+ { &hf_rrlp_svID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &hf_rrlp_redAlmDeltaA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
+ { &hf_rrlp_redAlmOmega0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M64_63 },
+ { &hf_rrlp_redAlmPhi0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M64_63 },
+ { &hf_rrlp_redAlmL1Health , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BOOLEAN },
+ { &hf_rrlp_redAlmL2Health , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BOOLEAN },
+ { &hf_rrlp_redAlmL5Health , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BOOLEAN },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_Almanac_ReducedKeplerianSet(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_ReducedKeplerianSet, Almanac_ReducedKeplerianSet_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_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,
+ 0U, 131071U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t Almanac_MidiAlmanacSet_sequence[] = {
+ { &hf_rrlp_svID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &hf_rrlp_midiAlmE , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2047 },
+ { &hf_rrlp_midiAlmDeltaI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
+ { &hf_rrlp_midiAlmOmegaDot, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
+ { &hf_rrlp_midiAlmSqrtA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_131071 },
+ { &hf_rrlp_midiAlmOmega0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_midiAlmOmega , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_midiAlmMo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_midiAlmaf0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
+ { &hf_rrlp_midiAlmaf1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M512_511 },
+ { &hf_rrlp_midiAlmL1Health, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BOOLEAN },
+ { &hf_rrlp_midiAlmL2Health, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BOOLEAN },
+ { &hf_rrlp_midiAlmL5Health, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BOOLEAN },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_Almanac_MidiAlmanacSet(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_MidiAlmanacSet, Almanac_MidiAlmanacSet_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_1_1461(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, 1461U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_1_24(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, 24U, NULL, FALSE);
+
+ 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 int
+dissect_rrlp_INTEGER_0_32767(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, 32767U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t Almanac_GlonassAlmanacSet_sequence[] = {
+ { &hf_rrlp_gloAlmNA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_1461 },
+ { &hf_rrlp_gloAlmnA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_24 },
+ { &hf_rrlp_gloAlmHA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_31 },
+ { &hf_rrlp_gloAlmLambdaA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1048576_1048575 },
+ { &hf_rrlp_gloAlmtlambdaA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2097151 },
+ { &hf_rrlp_gloAlmDeltaIa , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M131072_131071 },
+ { &hf_rrlp_gloAlmDeltaTA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2097152_2097151 },
+ { &hf_rrlp_gloAlmDeltaTdotA, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M64_63 },
+ { &hf_rrlp_gloAlmEpsilonA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_32767 },
+ { &hf_rrlp_gloAlmOmegaA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_gloAlmTauA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M512_511 },
+ { &hf_rrlp_gloAlmCA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
+ { &hf_rrlp_gloAlmMA , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_BIT_STRING_SIZE_2 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_Almanac_GlonassAlmanacSet(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_GlonassAlmanacSet, Almanac_GlonassAlmanacSet_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_BIT_STRING_SIZE_8(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);
+ 8, 8, FALSE, NULL);
return offset;
}
@@ -3067,9 +4237,9 @@ dissect_rrlp_SVIDMASK(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
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_) {
+dissect_rrlp_INTEGER_M256_255(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);
+ -256, 255U, NULL, FALSE);
return offset;
}
@@ -3077,32 +4247,42 @@ dissect_rrlp_INTEGER_0_2047(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
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_) {
+dissect_rrlp_INTEGER_M4_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,
- -65536, 65535U, NULL, FALSE);
+ -4, 3U, 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 },
+
+static int
+dissect_rrlp_INTEGER_M8_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,
+ -8, 7U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t Almanac_ECEFsbasAlmanacSet_sequence[] = {
+ { &hf_rrlp_sbasAlmDataID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_3 },
+ { &hf_rrlp_svID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &hf_rrlp_sbasAlmHealth , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BIT_STRING_SIZE_8 },
+ { &hf_rrlp_sbasAlmXg , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16384_16383 },
+ { &hf_rrlp_sbasAlmYg , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16384_16383 },
+ { &hf_rrlp_sbasAlmZg , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M256_255 },
+ { &hf_rrlp_sbasAlmXgdot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M4_3 },
+ { &hf_rrlp_sbasAlmYgDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M4_3 },
+ { &hf_rrlp_sbasAlmZgDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8_7 },
+ { &hf_rrlp_sbasAlmTo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2047 },
{ 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_) {
+dissect_rrlp_Almanac_ECEFsbasAlmanacSet(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);
+ ett_rrlp_Almanac_ECEFsbasAlmanacSet, Almanac_ECEFsbasAlmanacSet_sequence);
return offset;
}
@@ -3110,11 +4290,21 @@ dissect_rrlp_Almanac_KeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static const value_string rrlp_GANSSAlmanacElement_vals[] = {
{ 0, "keplerianAlmanacSet" },
+ { 1, "keplerianNAVAlmanac" },
+ { 2, "keplerianReducedAlmanac" },
+ { 3, "keplerianMidiAlmanac" },
+ { 4, "keplerianGLONASS" },
+ { 5, "ecefSBASAlmanac" },
{ 0, NULL }
};
static const per_choice_t GANSSAlmanacElement_choice[] = {
{ 0, &hf_rrlp_keplerianAlmanacSet, ASN1_EXTENSION_ROOT , dissect_rrlp_Almanac_KeplerianSet },
+ { 1, &hf_rrlp_keplerianNAVAlmanac, ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_Almanac_NAVKeplerianSet },
+ { 2, &hf_rrlp_keplerianReducedAlmanac, ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_Almanac_ReducedKeplerianSet },
+ { 3, &hf_rrlp_keplerianMidiAlmanac, ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_Almanac_MidiAlmanacSet },
+ { 4, &hf_rrlp_keplerianGLONASS, ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_Almanac_GlonassAlmanacSet },
+ { 5, &hf_rrlp_ecefSBASAlmanac, ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_Almanac_ECEFsbasAlmanacSet },
{ 0, NULL, 0, NULL }
};
@@ -3144,7 +4334,6 @@ dissect_rrlp_SeqOfGANSSAlmanacElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
static const per_sequence_t GANSSAlmanacModel_sequence[] = {
{ &hf_rrlp_weekNumber_01 , 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 },
@@ -3181,6 +4370,638 @@ dissect_rrlp_GANSSUTCModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
}
+static const per_sequence_t GANSSEphemerisExtensionTime_sequence[] = {
+ { &hf_rrlp_ganssEphExtDay , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_8191 },
+ { &hf_rrlp_ganssEphExtTOD , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSTOD },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSEphemerisExtensionTime(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_GANSSEphemerisExtensionTime, GANSSEphemerisExtensionTime_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_1_8(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, 8U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_1_512(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, 512U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSEphemerisExtensionHeader_sequence[] = {
+ { &hf_rrlp_timeAtEstimation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSEphemerisExtensionTime },
+ { &hf_rrlp_validityPeriod , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_8 },
+ { &hf_rrlp_ephemerisExtensionDuration, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_512 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSEphemerisExtensionHeader(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_GANSSEphemerisExtensionHeader, GANSSEphemerisExtensionHeader_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_T_keplerW(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_64b(tvb, offset, actx, tree, hf_index,
+ -2147483648, 2147483647U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_T_keplerM0(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_64b(tvb, offset, actx, tree, hf_index,
+ -2147483648, 2147483647U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_T_keplerI0(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_64b(tvb, offset, actx, tree, hf_index,
+ -2147483648, 2147483647U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_T_keplerOmega0(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_64b(tvb, offset, actx, tree, hf_index,
+ -2147483648, 2147483647U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t ReferenceNavModel_sequence[] = {
+ { &hf_rrlp_keplerToe_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_37799 },
+ { &hf_rrlp_keplerW_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_T_keplerW },
+ { &hf_rrlp_keplerDeltaN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_keplerM0_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_T_keplerM0 },
+ { &hf_rrlp_keplerOmegaDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
+ { &hf_rrlp_keplerE , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4294967295 },
+ { &hf_rrlp_keplerIDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8192_8191 },
+ { &hf_rrlp_keplerAPowerHalf, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4294967295 },
+ { &hf_rrlp_keplerI0_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_T_keplerI0 },
+ { &hf_rrlp_keplerOmega0_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_T_keplerOmega0 },
+ { &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_ReferenceNavModel(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_ReferenceNavModel, ReferenceNavModel_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSReferenceOrbit_sequence[] = {
+ { &hf_rrlp_svID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &hf_rrlp_ganssOrbitModel_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_ReferenceNavModel },
+ { &hf_rrlp_ganssClockModel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSClockModel },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSReferenceOrbit(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_GANSSReferenceOrbit, GANSSReferenceOrbit_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfGANSSRefOrbit_sequence_of[1] = {
+ { &hf_rrlp_SeqOfGANSSRefOrbit_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSReferenceOrbit },
+};
+
+static int
+dissect_rrlp_SeqOfGANSSRefOrbit(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_SeqOfGANSSRefOrbit, SeqOfGANSSRefOrbit_sequence_of,
+ 1, 32, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_1_32(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_INTEGER_1_16(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_INTEGER_1_14(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, 14U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_1_10(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, 10U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSEphemerisDeltaBitSizes_sequence[] = {
+ { &hf_rrlp_bitsize_delta_omega, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
+ { &hf_rrlp_bitsize_delta_deltaN, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
+ { &hf_rrlp_bitsize_delta_m0, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
+ { &hf_rrlp_bitsize_delta_omegadot, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_24 },
+ { &hf_rrlp_bitsize_delta_e, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
+ { &hf_rrlp_bitsize_delta_idot, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_14 },
+ { &hf_rrlp_bitsize_delta_sqrtA, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
+ { &hf_rrlp_bitsize_delta_i0, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
+ { &hf_rrlp_bitsize_delta_omega0, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
+ { &hf_rrlp_bitsize_delta_crs, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
+ { &hf_rrlp_bitsize_delta_cis, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
+ { &hf_rrlp_bitsize_delta_cus, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
+ { &hf_rrlp_bitsize_delta_crc, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
+ { &hf_rrlp_bitsize_delta_cic, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
+ { &hf_rrlp_bitsize_delta_cuc, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
+ { &hf_rrlp_bitsize_delta_tgd1, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_10 },
+ { &hf_rrlp_bitsize_delta_tgd2, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_10 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSEphemerisDeltaBitSizes(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_GANSSEphemerisDeltaBitSizes, GANSSEphemerisDeltaBitSizes_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSEphemerisDeltaScales_sequence[] = {
+ { &hf_rrlp_scale_delta_omega, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_deltaN, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_m0 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_omegadot, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_e , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_idot, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_sqrtA, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_i0 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_omega0, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_crs, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_cis, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_cus, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_crc, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_cic, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_cuc, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_tgd1, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_tgd2, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSEphemerisDeltaScales(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_GANSSEphemerisDeltaScales, GANSSEphemerisDeltaScales_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSDeltaEpochHeader_sequence[] = {
+ { &hf_rrlp_validityPeriod , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_1_8 },
+ { &hf_rrlp_ephemerisDeltaSizes, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSEphemerisDeltaBitSizes },
+ { &hf_rrlp_ephemerisDeltaScales, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSEphemerisDeltaScales },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSDeltaEpochHeader(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_GANSSDeltaEpochHeader, GANSSDeltaEpochHeader_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_OCTET_STRING_SIZE_1_49(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, 49, FALSE, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSDeltaElementList_sequence_of[1] = {
+ { &hf_rrlp_GANSSDeltaElementList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_OCTET_STRING_SIZE_1_49 },
+};
+
+static int
+dissect_rrlp_GANSSDeltaElementList(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_GANSSDeltaElementList, GANSSDeltaElementList_sequence_of,
+ 1, 32, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSEphemerisDeltaEpoch_sequence[] = {
+ { &hf_rrlp_ganssDeltaEpochHeader, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSDeltaEpochHeader },
+ { &hf_rrlp_ganssDeltaElementList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSDeltaElementList },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSEphemerisDeltaEpoch(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_GANSSEphemerisDeltaEpoch, GANSSEphemerisDeltaEpoch_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSEphemerisDeltaMatrix_sequence_of[1] = {
+ { &hf_rrlp_GANSSEphemerisDeltaMatrix_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSEphemerisDeltaEpoch },
+};
+
+static int
+dissect_rrlp_GANSSEphemerisDeltaMatrix(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_GANSSEphemerisDeltaMatrix, GANSSEphemerisDeltaMatrix_sequence_of,
+ 1, 128, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSEphemerisExtension_sequence[] = {
+ { &hf_rrlp_ganssEphemerisHeader, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSEphemerisExtensionHeader },
+ { &hf_rrlp_ganssReferenceSet, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_SeqOfGANSSRefOrbit },
+ { &hf_rrlp_ganssephemerisDeltasMatrix, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSEphemerisDeltaMatrix },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSEphemerisExtension(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_GANSSEphemerisExtension, GANSSEphemerisExtension_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_BIT_STRING_SIZE_64(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,
+ 64, 64, FALSE, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSSatEventsInfo_sequence[] = {
+ { &hf_rrlp_eventOccured , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_BIT_STRING_SIZE_64 },
+ { &hf_rrlp_futureEventNoted, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_BIT_STRING_SIZE_64 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSSatEventsInfo(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_GANSSSatEventsInfo, GANSSSatEventsInfo_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSEphemerisExtensionCheck_sequence[] = {
+ { &hf_rrlp_ganssBeginTime , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSEphemerisExtensionTime },
+ { &hf_rrlp_ganssEndTime , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSEphemerisExtensionTime },
+ { &hf_rrlp_ganssSatEventsInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSSatEventsInfo },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSEphemerisExtensionCheck(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_GANSSEphemerisExtensionCheck, GANSSEphemerisExtensionCheck_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t UTCmodelSet2_sequence[] = {
+ { &hf_rrlp_utcA0_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_utcA1_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M4096_4095 },
+ { &hf_rrlp_utcA2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M64_63 },
+ { &hf_rrlp_utcDeltaTls , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
+ { &hf_rrlp_utcTot_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_65535 },
+ { &hf_rrlp_utcWNot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_8191 },
+ { &hf_rrlp_utcWNlsf , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
+ { &hf_rrlp_utcDN_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BIT_STRING_SIZE_4 },
+ { &hf_rrlp_utcDeltaTlsf , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_UTCmodelSet2(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_UTCmodelSet2, UTCmodelSet2_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_T_tauC(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_64b(tvb, offset, actx, tree, hf_index,
+ -2147483648, 2147483647U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t UTCmodelSet3_sequence[] = {
+ { &hf_rrlp_nA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_1461 },
+ { &hf_rrlp_tauC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_T_tauC },
+ { &hf_rrlp_b1 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M1024_1023 },
+ { &hf_rrlp_b2 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M512_511 },
+ { &hf_rrlp_kp , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_BIT_STRING_SIZE_2 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_UTCmodelSet3(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_UTCmodelSet3, UTCmodelSet3_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_T_utcA0wnt(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_64b(tvb, offset, actx, tree, hf_index,
+ -2147483648, 2147483647U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t UTCmodelSet4_sequence[] = {
+ { &hf_rrlp_utcA1wnt , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
+ { &hf_rrlp_utcA0wnt , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_T_utcA0wnt },
+ { &hf_rrlp_utcTot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
+ { &hf_rrlp_utcWNt , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
+ { &hf_rrlp_utcDeltaTls , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
+ { &hf_rrlp_utcWNlsf , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
+ { &hf_rrlp_utcDN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
+ { &hf_rrlp_utcDeltaTlsf , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
+ { &hf_rrlp_utcStandardID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_UTCmodelSet4(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_UTCmodelSet4, UTCmodelSet4_sequence);
+
+ return offset;
+}
+
+
+static const value_string rrlp_GANSSAddUTCModel_vals[] = {
+ { 0, "utcModel2" },
+ { 1, "utcModel3" },
+ { 2, "utcModel4" },
+ { 0, NULL }
+};
+
+static const per_choice_t GANSSAddUTCModel_choice[] = {
+ { 0, &hf_rrlp_utcModel2 , ASN1_EXTENSION_ROOT , dissect_rrlp_UTCmodelSet2 },
+ { 1, &hf_rrlp_utcModel3 , ASN1_EXTENSION_ROOT , dissect_rrlp_UTCmodelSet3 },
+ { 2, &hf_rrlp_utcModel4 , ASN1_EXTENSION_ROOT , dissect_rrlp_UTCmodelSet4 },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSAddUTCModel(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_GANSSAddUTCModel, GANSSAddUTCModel_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSS_ID1_element_sequence[] = {
+ { &hf_rrlp_svID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &hf_rrlp_signalsAvailable, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSSignals },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSS_ID1_element(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_ID1_element, GANSS_ID1_element_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSS_ID1_sequence_of[1] = {
+ { &hf_rrlp_GANSS_ID1_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSS_ID1_element },
+};
+
+static int
+dissect_rrlp_GANSS_ID1(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_GANSS_ID1, GANSS_ID1_sequence_of,
+ 1, 64, 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 const per_sequence_t GANSS_ID3_element_sequence[] = {
+ { &hf_rrlp_svID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &hf_rrlp_signalsAvailable, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSSignals },
+ { &hf_rrlp_channelNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M7_13 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSS_ID3_element(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_ID3_element, GANSS_ID3_element_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSS_ID3_sequence_of[1] = {
+ { &hf_rrlp_GANSS_ID3_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSS_ID3_element },
+};
+
+static int
+dissect_rrlp_GANSS_ID3(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_GANSS_ID3, GANSS_ID3_sequence_of,
+ 1, 64, FALSE);
+
+ return offset;
+}
+
+
+static const value_string rrlp_GANSSAuxiliaryInformation_vals[] = {
+ { 0, "ganssID1" },
+ { 1, "ganssID3" },
+ { 0, NULL }
+};
+
+static const per_choice_t GANSSAuxiliaryInformation_choice[] = {
+ { 0, &hf_rrlp_ganssID1 , ASN1_EXTENSION_ROOT , dissect_rrlp_GANSS_ID1 },
+ { 1, &hf_rrlp_ganssID3 , ASN1_EXTENSION_ROOT , dissect_rrlp_GANSS_ID3 },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSAuxiliaryInformation(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_GANSSAuxiliaryInformation, GANSSAuxiliaryInformation_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t DGANSSExtensionSgnElement_sequence[] = {
+ { &hf_rrlp_svID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &hf_rrlp_udreGrowthRate , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
+ { &hf_rrlp_udreValidityTime, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_DGANSSExtensionSgnElement(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_DGANSSExtensionSgnElement, DGANSSExtensionSgnElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfDGANSSExtensionSgnElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfDGANSSExtensionSgnElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_DGANSSExtensionSgnElement },
+};
+
+static int
+dissect_rrlp_SeqOfDGANSSExtensionSgnElement(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_SeqOfDGANSSExtensionSgnElement, SeqOfDGANSSExtensionSgnElement_sequence_of,
+ 1, 16, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DGANSSExtensionSgnTypeElement_sequence[] = {
+ { &hf_rrlp_ganssSignalID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSSignalID },
+ { &hf_rrlp_dganssExtensionSgnList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfDGANSSExtensionSgnElement },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_DGANSSExtensionSgnTypeElement(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_DGANSSExtensionSgnTypeElement, DGANSSExtensionSgnTypeElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSDiffCorrectionsValidityPeriod_sequence_of[1] = {
+ { &hf_rrlp_GANSSDiffCorrectionsValidityPeriod_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_DGANSSExtensionSgnTypeElement },
+};
+
+static int
+dissect_rrlp_GANSSDiffCorrectionsValidityPeriod(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_GANSSDiffCorrectionsValidityPeriod, GANSSDiffCorrectionsValidityPeriod_sequence_of,
+ 1, 3, FALSE);
+
+ 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 },
@@ -3191,6 +5012,12 @@ static const per_sequence_t GANSSGenericAssistDataElement_sequence[] = {
{ &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 },
+ { &hf_rrlp_ganssEphemerisExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSEphemerisExtension },
+ { &hf_rrlp_ganssEphemerisExtCheck, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSEphemerisExtensionCheck },
+ { &hf_rrlp_sbasID , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_7 },
+ { &hf_rrlp_ganssAddUTCModel, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GANSSAddUTCModel },
+ { &hf_rrlp_ganssAuxiliaryInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GANSSAuxiliaryInformation },
+ { &hf_rrlp_ganssDiffCorrectionsValidityPeriod, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GANSSDiffCorrectionsValidityPeriod },
{ NULL, 0, 0, NULL }
};
@@ -3256,6 +5083,328 @@ dissect_rrlp_RequiredResponseTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
}
+static const per_sequence_t GPSEphemerisExtensionTime_sequence[] = {
+ { &hf_rrlp_gpsWeek , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSWeek },
+ { &hf_rrlp_gpsTOW_02 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_604799 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GPSEphemerisExtensionTime(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_GPSEphemerisExtensionTime, GPSEphemerisExtensionTime_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GPSEphemerisExtensionHeader_sequence[] = {
+ { &hf_rrlp_timeofEstimation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSEphemerisExtensionTime },
+ { &hf_rrlp_validityPeriod , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_8 },
+ { &hf_rrlp_ephemerisExtensionDuration, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_512 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GPSEphemerisExtensionHeader(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_GPSEphemerisExtensionHeader, GPSEphemerisExtensionHeader_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GPSClockModel_sequence[] = {
+ { &hf_rrlp_af2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
+ { &hf_rrlp_af1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_af0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2097152_2097151 },
+ { &hf_rrlp_tgd , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GPSClockModel(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_GPSClockModel, GPSClockModel_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GPSReferenceOrbit_sequence[] = {
+ { &hf_rrlp_svID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &hf_rrlp_gpsOrbitModel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_ReferenceNavModel },
+ { &hf_rrlp_gpsClockModel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSClockModel },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GPSReferenceOrbit(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_GPSReferenceOrbit, GPSReferenceOrbit_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfGPSRefOrbit_sequence_of[1] = {
+ { &hf_rrlp_SeqOfGPSRefOrbit_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSReferenceOrbit },
+};
+
+static int
+dissect_rrlp_SeqOfGPSRefOrbit(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_SeqOfGPSRefOrbit, SeqOfGPSRefOrbit_sequence_of,
+ 1, 32, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GPSEphemerisDeltaBitSizes_sequence[] = {
+ { &hf_rrlp_bitsize_delta_omega, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
+ { &hf_rrlp_bitsize_delta_deltaN, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
+ { &hf_rrlp_bitsize_delta_m0, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
+ { &hf_rrlp_bitsize_delta_omegadot, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_24 },
+ { &hf_rrlp_bitsize_delta_e, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
+ { &hf_rrlp_bitsize_delta_idot, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_14 },
+ { &hf_rrlp_bitsize_delta_sqrtA, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
+ { &hf_rrlp_bitsize_delta_i0, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
+ { &hf_rrlp_bitsize_delta_omega0, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_32 },
+ { &hf_rrlp_bitsize_delta_crs, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
+ { &hf_rrlp_bitsize_delta_cis, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
+ { &hf_rrlp_bitsize_delta_cus, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
+ { &hf_rrlp_bitsize_delta_crc, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
+ { &hf_rrlp_bitsize_delta_cic, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
+ { &hf_rrlp_bitsize_delta_cuc, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_16 },
+ { &hf_rrlp_bitsize_delta_tgd, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_1_10 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GPSEphemerisDeltaBitSizes(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_GPSEphemerisDeltaBitSizes, GPSEphemerisDeltaBitSizes_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GPSEphemerisDeltaScales_sequence[] = {
+ { &hf_rrlp_scale_delta_omega, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_deltaN, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_m0 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_omegadot, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_e , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_idot, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_sqrtA, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_i0 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_omega0, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_crs, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_cis, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_cus, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_crc, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_cic, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_cuc, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { &hf_rrlp_scale_delta_tgd, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M16_15 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GPSEphemerisDeltaScales(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_GPSEphemerisDeltaScales, GPSEphemerisDeltaScales_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GPSDeltaEpochHeader_sequence[] = {
+ { &hf_rrlp_validityPeriod , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_1_8 },
+ { &hf_rrlp_ephemerisDeltaSizes_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPSEphemerisDeltaBitSizes },
+ { &hf_rrlp_ephemerisDeltaScales_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPSEphemerisDeltaScales },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GPSDeltaEpochHeader(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_GPSDeltaEpochHeader, GPSDeltaEpochHeader_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_OCTET_STRING_SIZE_1_47(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, 47, FALSE, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t GPSDeltaElementList_sequence_of[1] = {
+ { &hf_rrlp_GPSDeltaElementList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_OCTET_STRING_SIZE_1_47 },
+};
+
+static int
+dissect_rrlp_GPSDeltaElementList(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_GPSDeltaElementList, GPSDeltaElementList_sequence_of,
+ 1, 32, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GPSEphemerisDeltaEpoch_sequence[] = {
+ { &hf_rrlp_gpsDeltaEpochHeader, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPSDeltaEpochHeader },
+ { &hf_rrlp_gpsDeltaElementList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSDeltaElementList },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GPSEphemerisDeltaEpoch(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_GPSEphemerisDeltaEpoch, GPSEphemerisDeltaEpoch_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GPSEphemerisDeltaMatrix_sequence_of[1] = {
+ { &hf_rrlp_GPSEphemerisDeltaMatrix_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSEphemerisDeltaEpoch },
+};
+
+static int
+dissect_rrlp_GPSEphemerisDeltaMatrix(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_GPSEphemerisDeltaMatrix, GPSEphemerisDeltaMatrix_sequence_of,
+ 1, 128, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GPSEphemerisExtension_sequence[] = {
+ { &hf_rrlp_gpsEphemerisHeader, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPSEphemerisExtensionHeader },
+ { &hf_rrlp_gpsReferenceSet, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_SeqOfGPSRefOrbit },
+ { &hf_rrlp_gpsephemerisDeltaMatrix, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPSEphemerisDeltaMatrix },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GPSEphemerisExtension(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_GPSEphemerisExtension, GPSEphemerisExtension_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_BIT_STRING_SIZE_32(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,
+ 32, 32, FALSE, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t GPSSatEventsInfo_sequence[] = {
+ { &hf_rrlp_eventOccured_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_BIT_STRING_SIZE_32 },
+ { &hf_rrlp_futureEventNoted_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_BIT_STRING_SIZE_32 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GPSSatEventsInfo(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_GPSSatEventsInfo, GPSSatEventsInfo_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GPSEphemerisExtensionCheck_sequence[] = {
+ { &hf_rrlp_gpsBeginTime , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSEphemerisExtensionTime },
+ { &hf_rrlp_gpsEndTime , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSEphemerisExtensionTime },
+ { &hf_rrlp_gpsSatEventsInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GPSSatEventsInfo },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GPSEphemerisExtensionCheck(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_GPSEphemerisExtensionCheck, GPSEphemerisExtensionCheck_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DGPSExtensionSatElement_sequence[] = {
+ { &hf_rrlp_satelliteID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SatelliteID },
+ { &hf_rrlp_udreGrowthRate , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
+ { &hf_rrlp_udreValidityTime, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_DGPSExtensionSatElement(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_DGPSExtensionSatElement, DGPSExtensionSatElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t DGPSCorrectionsValidityPeriod_sequence_of[1] = {
+ { &hf_rrlp_DGPSCorrectionsValidityPeriod_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_DGPSExtensionSatElement },
+};
+
+static int
+dissect_rrlp_DGPSCorrectionsValidityPeriod(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_DGPSCorrectionsValidityPeriod, DGPSCorrectionsValidityPeriod_sequence_of,
+ 1, 16, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t Add_GPS_ControlHeader_sequence[] = {
+ { &hf_rrlp_gpsEphemerisExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPSEphemerisExtension },
+ { &hf_rrlp_gpsEphemerisExtensionCheck, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPSEphemerisExtensionCheck },
+ { &hf_rrlp_dgpsCorrectionsValidityPeriod, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_DGPSCorrectionsValidityPeriod },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_Add_GPS_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_Add_GPS_ControlHeader, Add_GPS_ControlHeader_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t Add_GPS_AssistData_sequence[] = {
+ { &hf_rrlp_add_GPS_controlHeader, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_Add_GPS_ControlHeader },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_Add_GPS_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_Add_GPS_AssistData, Add_GPS_AssistData_sequence);
+
+ 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 },
@@ -3263,6 +5412,8 @@ static const per_sequence_t Rel7_MsrPosition_Req_Extension_sequence[] = {
{ &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 },
+ { &hf_rrlp_add_GPS_AssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_Add_GPS_AssistData },
+ { &hf_rrlp_ganssMultiFreqMeasurementRequest, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NULL },
{ NULL, 0, 0, NULL }
};
@@ -4085,7 +6236,7 @@ dissect_rrlp_INTEGER_0_9999(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static const per_sequence_t GPSTimeAssistanceMeasurements_sequence[] = {
- { &hf_rrlp_referenceFrameMSB, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 },
+ { &hf_rrlp_referenceFrameMSB, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_63 },
{ &hf_rrlp_gpsTowSubms , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_9999 },
{ &hf_rrlp_deltaTow , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_127 },
{ &hf_rrlp_gpsReferenceTimeUncertainty, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GPSReferenceTimeUncertainty },
@@ -4207,7 +6358,7 @@ static const per_sequence_t GANSSLocationInfo_sequence[] = {
{ &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_ganssTimeID_01 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_3 },
+ { &hf_rrlp_ganssTimeID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_7 },
{ &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 },
@@ -4226,9 +6377,9 @@ dissect_rrlp_GANSSLocationInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
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_) {
+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, 2097151U, NULL, FALSE);
+ 0U, 33554431U, NULL, FALSE);
return offset;
}
@@ -4240,7 +6391,7 @@ static const per_sequence_t GANSS_SgnElement_sequence[] = {
{ &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_codePhase_01 , 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_integerCodePhase, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_127 },
{ &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 },
@@ -4271,8 +6422,9 @@ dissect_rrlp_SeqOfGANSS_SgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static const per_sequence_t GANSS_SgnTypeElement_sequence[] = {
- { &hf_rrlp_ganssSignalID_02, 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 },
+ { &hf_rrlp_ganssSignalID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSSignalID },
+ { &hf_rrlp_ganssCodePhaseAmbiguity, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_127 },
+ { &hf_rrlp_ganss_SgnList , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSS_SgnElement },
{ NULL, 0, 0, NULL }
};
@@ -4293,7 +6445,36 @@ 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, FALSE);
+ 1, 8, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSS_MsrElement_sequence[] = {
+ { &hf_rrlp_ganssID , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_7 },
+ { &hf_rrlp_ganss_SgnTypeList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSS_SgnTypeElement },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSS_MsrElement(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_MsrElement, GANSS_MsrElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfGANSS_MsrElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfGANSS_MsrElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSS_MsrElement },
+};
+
+static int
+dissect_rrlp_SeqOfGANSS_MsrElement(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_MsrElement, SeqOfGANSS_MsrElement_sequence_of,
+ 1, 8, FALSE);
return offset;
}
@@ -4302,9 +6483,9 @@ dissect_rrlp_SeqOfGANSS_SgnTypeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_c
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_deltaGANSSTOD , 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 },
+ { &hf_rrlp_ganss_MsrElementList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSS_MsrElement },
{ NULL, 0, 0, NULL }
};
@@ -4434,6 +6615,7 @@ 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 },
+ { &hf_rrlp_add_GPS_AssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_Add_GPS_AssistData },
{ NULL, 0, 0, NULL }
};
@@ -4518,12 +6700,282 @@ dissect_rrlp_ProtocolError(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
}
+
+static int
+dissect_rrlp_GANSSPositioningMethodTypes(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, 8, FALSE, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_SBASID(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, 8, FALSE, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSPositionMethod_sequence[] = {
+ { &hf_rrlp_ganssID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_7 },
+ { &hf_rrlp_gANSSPositioningMethodTypes, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSPositioningMethodTypes },
+ { &hf_rrlp_gANSSSignals , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSSignals },
+ { &hf_rrlp_sbasID_01 , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_SBASID },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSPositionMethod(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_GANSSPositionMethod, GANSSPositionMethod_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSPositionMethods_sequence_of[1] = {
+ { &hf_rrlp_GANSSPositionMethods_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSPositionMethod },
+};
+
+static int
+dissect_rrlp_GANSSPositionMethods(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_GANSSPositionMethods, GANSSPositionMethods_sequence_of,
+ 1, 16, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t PosCapability_Req_sequence[] = {
+ { &hf_rrlp_extended_reference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_Extended_reference },
+ { &hf_rrlp_gANSSPositionMethods, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSPositionMethods },
+ { &hf_rrlp_extensionContainer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_PosCapability_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_PosCapability_Req, PosCapability_Req_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_NonGANSSPositionMethods(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, 16, FALSE, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_MultipleMeasurementSets(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, 8, FALSE, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t PosCapabilities_sequence[] = {
+ { &hf_rrlp_nonGANSSpositionMethods, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NonGANSSPositionMethods },
+ { &hf_rrlp_gANSSPositionMethods, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSPositionMethods },
+ { &hf_rrlp_multipleMeasurementSets, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_MultipleMeasurementSets },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_PosCapabilities(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_PosCapabilities, PosCapabilities_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_GPSAssistance(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, 16, FALSE, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_CommonGANSSAssistance(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, 8, FALSE, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_GANSSAssistance(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, 16, FALSE, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSAssistanceForOneGANSS_sequence[] = {
+ { &hf_rrlp_ganssID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_7 },
+ { &hf_rrlp_gANSSAssistance, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSAssistance },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSAssistanceForOneGANSS(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_GANSSAssistanceForOneGANSS, GANSSAssistanceForOneGANSS_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SpecificGANSSAssistance_sequence_of[1] = {
+ { &hf_rrlp_SpecificGANSSAssistance_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSAssistanceForOneGANSS },
+};
+
+static int
+dissect_rrlp_SpecificGANSSAssistance(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_SpecificGANSSAssistance, SpecificGANSSAssistance_sequence_of,
+ 1, 16, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSAssistanceSet_sequence[] = {
+ { &hf_rrlp_commonGANSSAssistance, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_CommonGANSSAssistance },
+ { &hf_rrlp_specificGANSSAssistance, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SpecificGANSSAssistance },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSAssistanceSet(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_GANSSAssistanceSet, GANSSAssistanceSet_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_GANSSModelID(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, 8, FALSE, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSAdditionalAssistanceChoicesForOneGANSS_sequence[] = {
+ { &hf_rrlp_ganssID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_7 },
+ { &hf_rrlp_ganssClockModelChoice, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSModelID },
+ { &hf_rrlp_gannsOrbitModelChoice, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSModelID },
+ { &hf_rrlp_ganssAlmanacModelChoice, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSModelID },
+ { &hf_rrlp_ganssAdditionalUTCModelChoice, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSModelID },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSAdditionalAssistanceChoicesForOneGANSS(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_GANSSAdditionalAssistanceChoicesForOneGANSS, GANSSAdditionalAssistanceChoicesForOneGANSS_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSAdditionalAssistanceChoices_sequence_of[1] = {
+ { &hf_rrlp_GANSSAdditionalAssistanceChoices_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSAdditionalAssistanceChoicesForOneGANSS },
+};
+
+static int
+dissect_rrlp_GANSSAdditionalAssistanceChoices(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_GANSSAdditionalAssistanceChoices, GANSSAdditionalAssistanceChoices_sequence_of,
+ 1, 16, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t AssistanceSupported_sequence[] = {
+ { &hf_rrlp_gpsAssistance , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPSAssistance },
+ { &hf_rrlp_gANSSAssistanceSet, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSAssistanceSet },
+ { &hf_rrlp_gANSSAdditionalAssistanceChoices, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GANSSAdditionalAssistanceChoices },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_AssistanceSupported(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_AssistanceSupported, AssistanceSupported_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t AssistanceNeeded_sequence[] = {
+ { &hf_rrlp_gpsAssistanceData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPSAssistanceData },
+ { &hf_rrlp_ganssAssistanceData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSAssistanceData },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_AssistanceNeeded(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_AssistanceNeeded, AssistanceNeeded_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t PosCapability_Rsp_sequence[] = {
+ { &hf_rrlp_extended_reference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_Extended_reference },
+ { &hf_rrlp_posCapabilities, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_PosCapabilities },
+ { &hf_rrlp_assistanceSupported, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_AssistanceSupported },
+ { &hf_rrlp_assistanceNeeded, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_AssistanceNeeded },
+ { &hf_rrlp_extensionContainer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_PosCapability_Rsp(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_PosCapability_Rsp, PosCapability_Rsp_sequence);
+
+ return offset;
+}
+
+
static const value_string rrlp_RRLP_Component_vals[] = {
{ 0, "msrPositionReq" },
{ 1, "msrPositionRsp" },
{ 2, "assistanceData" },
{ 3, "assistanceDataAck" },
{ 4, "protocolError" },
+ { 5, "posCapabilityReq" },
+ { 6, "posCapabilityRsp" },
{ 0, NULL }
};
@@ -4533,6 +6985,8 @@ static const per_choice_t RRLP_Component_choice[] = {
{ 2, &hf_rrlp_assistanceData , ASN1_EXTENSION_ROOT , dissect_rrlp_AssistanceData },
{ 3, &hf_rrlp_assistanceDataAck, ASN1_EXTENSION_ROOT , dissect_rrlp_NULL },
{ 4, &hf_rrlp_protocolError , ASN1_EXTENSION_ROOT , dissect_rrlp_ProtocolError },
+ { 5, &hf_rrlp_posCapabilityReq, ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_PosCapability_Req },
+ { 6, &hf_rrlp_posCapabilityRsp, ASN1_NOT_EXTENSION_ROOT, dissect_rrlp_PosCapability_Rsp },
{ 0, NULL, 0, NULL }
};
@@ -4554,12 +7008,10 @@ static const per_sequence_t PDU_sequence[] = {
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 26 "rrlp.cnf"
proto_tree_add_item(tree, proto_rrlp, tvb, 0, -1, FALSE);
col_append_str(actx->pinfo->cinfo, COL_PROTOCOL, "/RRLP");
-
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrlp_PDU, PDU_sequence);
@@ -4640,6 +7092,14 @@ void proto_register_rrlp(void) {
{ "protocolError", "rrlp.protocolError",
FT_NONE, BASE_NONE, NULL, 0,
"rrlp.ProtocolError", HFILL }},
+ { &hf_rrlp_posCapabilityReq,
+ { "posCapabilityReq", "rrlp.posCapabilityReq",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.PosCapability_Req", HFILL }},
+ { &hf_rrlp_posCapabilityRsp,
+ { "posCapabilityRsp", "rrlp.posCapabilityRsp",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.PosCapability_Rsp", HFILL }},
{ &hf_rrlp_positionInstruct,
{ "positionInstruct", "rrlp.positionInstruct",
FT_NONE, BASE_NONE, NULL, 0,
@@ -4736,6 +7196,26 @@ void proto_register_rrlp(void) {
{ "rel-5-ProtocolError-Extension", "rrlp.rel_5_ProtocolError_Extension",
FT_NONE, BASE_NONE, NULL, 0,
"rrlp.Rel_5_ProtocolError_Extension", HFILL }},
+ { &hf_rrlp_extended_reference,
+ { "extended-reference", "rrlp.extended_reference",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.Extended_reference", HFILL }},
+ { &hf_rrlp_gANSSPositionMethods,
+ { "gANSSPositionMethods", "rrlp.gANSSPositionMethods",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.GANSSPositionMethods", HFILL }},
+ { &hf_rrlp_posCapabilities,
+ { "posCapabilities", "rrlp.posCapabilities",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.PosCapabilities", HFILL }},
+ { &hf_rrlp_assistanceSupported,
+ { "assistanceSupported", "rrlp.assistanceSupported",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.AssistanceSupported", HFILL }},
+ { &hf_rrlp_assistanceNeeded,
+ { "assistanceNeeded", "rrlp.assistanceNeeded",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.AssistanceNeeded", HFILL }},
{ &hf_rrlp_methodType,
{ "methodType", "rrlp.methodType",
FT_UINT32, BASE_DEC, VALS(rrlp_MethodType_vals), 0,
@@ -5648,10 +8128,6 @@ void proto_register_rrlp(void) {
{ "OTD-FirstSetMsrs", "rrlp.OTD_FirstSetMsrs",
FT_NONE, BASE_NONE, NULL, 0,
"rrlp.OTD_FirstSetMsrs", HFILL }},
- { &hf_rrlp_extended_reference,
- { "extended-reference", "rrlp.extended_reference",
- FT_NONE, BASE_NONE, NULL, 0,
- "rrlp.Extended_reference", HFILL }},
{ &hf_rrlp_otd_MeasureInfo_5_Ext,
{ "otd-MeasureInfo-5-Ext", "rrlp.otd_MeasureInfo_5_Ext",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -5692,6 +8168,14 @@ void proto_register_rrlp(void) {
{ "requiredResponseTime", "rrlp.requiredResponseTime",
FT_UINT32, BASE_DEC, NULL, 0,
"rrlp.RequiredResponseTime", HFILL }},
+ { &hf_rrlp_add_GPS_AssistData,
+ { "add-GPS-AssistData", "rrlp.add_GPS_AssistData",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.Add_GPS_AssistData", HFILL }},
+ { &hf_rrlp_ganssMultiFreqMeasurementRequest,
+ { "ganssMultiFreqMeasurementRequest", "rrlp.ganssMultiFreqMeasurementRequest",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.NULL", HFILL }},
{ &hf_rrlp_ganss_controlHeader,
{ "ganss-controlHeader", "rrlp.ganss_controlHeader",
FT_NONE, BASE_NONE, NULL, 0,
@@ -5716,6 +8200,14 @@ void proto_register_rrlp(void) {
{ "ganssIonosphericModel", "rrlp.ganssIonosphericModel",
FT_NONE, BASE_NONE, NULL, 0,
"rrlp.GANSSIonosphericModel", HFILL }},
+ { &hf_rrlp_ganssAddIonosphericModel,
+ { "ganssAddIonosphericModel", "rrlp.ganssAddIonosphericModel",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSAddIonosphericModel", HFILL }},
+ { &hf_rrlp_ganssEarthOrientParam,
+ { "ganssEarthOrientParam", "rrlp.ganssEarthOrientParam",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSEarthOrientParam", HFILL }},
{ &hf_rrlp_SeqOfGANSSGenericAssistDataElement_item,
{ "GANSSGenericAssistDataElement", "rrlp.GANSSGenericAssistDataElement",
FT_NONE, BASE_NONE, NULL, 0,
@@ -5756,6 +8248,30 @@ void proto_register_rrlp(void) {
{ "ganssUTCModel", "rrlp.ganssUTCModel",
FT_NONE, BASE_NONE, NULL, 0,
"rrlp.GANSSUTCModel", HFILL }},
+ { &hf_rrlp_ganssEphemerisExtension,
+ { "ganssEphemerisExtension", "rrlp.ganssEphemerisExtension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSEphemerisExtension", HFILL }},
+ { &hf_rrlp_ganssEphemerisExtCheck,
+ { "ganssEphemerisExtCheck", "rrlp.ganssEphemerisExtCheck",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSEphemerisExtensionCheck", HFILL }},
+ { &hf_rrlp_sbasID,
+ { "sbasID", "rrlp.sbasID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_7", HFILL }},
+ { &hf_rrlp_ganssAddUTCModel,
+ { "ganssAddUTCModel", "rrlp.ganssAddUTCModel",
+ FT_UINT32, BASE_DEC, VALS(rrlp_GANSSAddUTCModel_vals), 0,
+ "rrlp.GANSSAddUTCModel", HFILL }},
+ { &hf_rrlp_ganssAuxiliaryInfo,
+ { "ganssAuxiliaryInfo", "rrlp.ganssAuxiliaryInfo",
+ FT_UINT32, BASE_DEC, VALS(rrlp_GANSSAuxiliaryInformation_vals), 0,
+ "rrlp.GANSSAuxiliaryInformation", HFILL }},
+ { &hf_rrlp_ganssDiffCorrectionsValidityPeriod,
+ { "ganssDiffCorrectionsValidityPeriod", "rrlp.ganssDiffCorrectionsValidityPeriod",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.GANSSDiffCorrectionsValidityPeriod", HFILL }},
{ &hf_rrlp_ganssRefTimeInfo,
{ "ganssRefTimeInfo", "rrlp.ganssRefTimeInfo",
FT_NONE, BASE_NONE, NULL, 0,
@@ -5824,6 +8340,42 @@ void proto_register_rrlp(void) {
{ "ionoStormFlag5", "rrlp.ionoStormFlag5",
FT_UINT32, BASE_DEC, NULL, 0,
"rrlp.INTEGER_0_1", HFILL }},
+ { &hf_rrlp_dataID,
+ { "dataID", "rrlp.dataID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.BIT_STRING_SIZE_2", HFILL }},
+ { &hf_rrlp_ionoModel,
+ { "ionoModel", "rrlp.ionoModel",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.IonosphericModel", HFILL }},
+ { &hf_rrlp_teop,
+ { "teop", "rrlp.teop",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_65535", HFILL }},
+ { &hf_rrlp_pmX,
+ { "pmX", "rrlp.pmX",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M1048576_1048575", HFILL }},
+ { &hf_rrlp_pmXdot,
+ { "pmXdot", "rrlp.pmXdot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16384_16383", HFILL }},
+ { &hf_rrlp_pmY,
+ { "pmY", "rrlp.pmY",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M1048576_1048575", HFILL }},
+ { &hf_rrlp_pmYdot,
+ { "pmYdot", "rrlp.pmYdot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16384_16383", HFILL }},
+ { &hf_rrlp_deltaUT1,
+ { "deltaUT1", "rrlp.deltaUT1",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M1073741824_1073741823", HFILL }},
+ { &hf_rrlp_deltaUT1dot,
+ { "deltaUT1dot", "rrlp.deltaUT1dot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M262144_262143", HFILL }},
{ &hf_rrlp_SeqOfGANSSTimeModel_item,
{ "GANSSTimeModelElement", "rrlp.GANSSTimeModelElement",
FT_NONE, BASE_NONE, NULL, 0,
@@ -5892,18 +8444,6 @@ void proto_register_rrlp(void) {
{ "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,
@@ -5914,8 +8454,8 @@ void proto_register_rrlp(void) {
"rrlp.GANSSSatelliteElement", HFILL }},
{ &hf_rrlp_svHealth,
{ "svHealth", "rrlp.svHealth",
- FT_INT32, BASE_DEC, NULL, 0,
- "rrlp.INTEGER_M7_13", HFILL }},
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.BIT_STRING_SIZE_5", HFILL }},
{ &hf_rrlp_ganssClockModel,
{ "ganssClockModel", "rrlp.ganssClockModel",
FT_UINT32, BASE_DEC, VALS(rrlp_GANSSClockModel_vals), 0,
@@ -5924,14 +8464,38 @@ void proto_register_rrlp(void) {
{ "ganssOrbitModel", "rrlp.ganssOrbitModel",
FT_UINT32, BASE_DEC, VALS(rrlp_GANSSOrbitModel_vals), 0,
"rrlp.GANSSOrbitModel", HFILL }},
+ { &hf_rrlp_svHealthMSB,
+ { "svHealthMSB", "rrlp.svHealthMSB",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.BIT_STRING_SIZE_1", HFILL }},
+ { &hf_rrlp_iodMSB,
+ { "iodMSB", "rrlp.iodMSB",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_1", HFILL }},
{ &hf_rrlp_keplerianSet,
{ "keplerianSet", "rrlp.keplerianSet",
FT_NONE, BASE_NONE, NULL, 0,
"rrlp.NavModel_KeplerianSet", HFILL }},
- { &hf_rrlp_keplerToeLSB,
- { "keplerToeLSB", "rrlp.keplerToeLSB",
+ { &hf_rrlp_navKeplerianSet,
+ { "navKeplerianSet", "rrlp.navKeplerianSet",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.NavModel_NAVKeplerianSet", HFILL }},
+ { &hf_rrlp_cnavKeplerianSet,
+ { "cnavKeplerianSet", "rrlp.cnavKeplerianSet",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.NavModel_CNAVKeplerianSet", HFILL }},
+ { &hf_rrlp_glonassECEF,
+ { "glonassECEF", "rrlp.glonassECEF",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.NavModel_GLONASSecef", HFILL }},
+ { &hf_rrlp_sbasECEF,
+ { "sbasECEF", "rrlp.sbasECEF",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.NavModel_SBASecef", HFILL }},
+ { &hf_rrlp_keplerToe,
+ { "keplerToe", "rrlp.keplerToe",
FT_UINT32, BASE_DEC, NULL, 0,
- "rrlp.INTEGER_0_511", HFILL }},
+ "rrlp.INTEGER_0_16383", HFILL }},
{ &hf_rrlp_keplerW,
{ "keplerW", "rrlp.keplerW",
FT_INT32, BASE_DEC, NULL, 0,
@@ -5948,18 +8512,18 @@ void proto_register_rrlp(void) {
{ "keplerOmegaDot", "rrlp.keplerOmegaDot",
FT_INT32, BASE_DEC, NULL, 0,
"rrlp.INTEGER_M8388608_8388607", HFILL }},
- { &hf_rrlp_keplerELSB,
- { "keplerELSB", "rrlp.keplerELSB",
+ { &hf_rrlp_keplerE,
+ { "keplerE", "rrlp.keplerE",
FT_UINT32, BASE_DEC, NULL, 0,
- "rrlp.INTEGER_0_33554431", HFILL }},
+ "rrlp.INTEGER_0_4294967295", HFILL }},
{ &hf_rrlp_keplerIDot,
{ "keplerIDot", "rrlp.keplerIDot",
FT_INT32, BASE_DEC, NULL, 0,
"rrlp.INTEGER_M8192_8191", HFILL }},
- { &hf_rrlp_keplerAPowerHalfLSB,
- { "keplerAPowerHalfLSB", "rrlp.keplerAPowerHalfLSB",
+ { &hf_rrlp_keplerAPowerHalf,
+ { "keplerAPowerHalf", "rrlp.keplerAPowerHalf",
FT_UINT32, BASE_DEC, NULL, 0,
- "rrlp.INTEGER_0_67108863", HFILL }},
+ "rrlp.INTEGER_0_4294967295", HFILL }},
{ &hf_rrlp_keplerI0,
{ "keplerI0", "rrlp.keplerI0",
FT_INT32, BASE_DEC, NULL, 0,
@@ -5992,18 +8556,278 @@ void proto_register_rrlp(void) {
{ "keplerCuc", "rrlp.keplerCuc",
FT_INT32, BASE_DEC, NULL, 0,
"rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_navURA,
+ { "navURA", "rrlp.navURA",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_15", HFILL }},
+ { &hf_rrlp_navFitFlag,
+ { "navFitFlag", "rrlp.navFitFlag",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_1", HFILL }},
+ { &hf_rrlp_navToe,
+ { "navToe", "rrlp.navToe",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_37799", HFILL }},
+ { &hf_rrlp_navOmega,
+ { "navOmega", "rrlp.navOmega",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M2147483648_2147483647", HFILL }},
+ { &hf_rrlp_navDeltaN,
+ { "navDeltaN", "rrlp.navDeltaN",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_navM0,
+ { "navM0", "rrlp.navM0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M2147483648_2147483647", HFILL }},
+ { &hf_rrlp_navOmegaADot,
+ { "navOmegaADot", "rrlp.navOmegaADot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M8388608_8388607", HFILL }},
+ { &hf_rrlp_navE,
+ { "navE", "rrlp.navE",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_4294967295", HFILL }},
+ { &hf_rrlp_navIDot,
+ { "navIDot", "rrlp.navIDot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M8192_8191", HFILL }},
+ { &hf_rrlp_navAPowerHalf,
+ { "navAPowerHalf", "rrlp.navAPowerHalf",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_4294967295", HFILL }},
+ { &hf_rrlp_navI0,
+ { "navI0", "rrlp.navI0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M2147483648_2147483647", HFILL }},
+ { &hf_rrlp_navOmegaA0,
+ { "navOmegaA0", "rrlp.navOmegaA0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M2147483648_2147483647", HFILL }},
+ { &hf_rrlp_navCrs,
+ { "navCrs", "rrlp.navCrs",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_navCis,
+ { "navCis", "rrlp.navCis",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_navCus,
+ { "navCus", "rrlp.navCus",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_navCrc,
+ { "navCrc", "rrlp.navCrc",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_navCic,
+ { "navCic", "rrlp.navCic",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_navCuc,
+ { "navCuc", "rrlp.navCuc",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_cnavTop,
+ { "cnavTop", "rrlp.cnavTop",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_2015", HFILL }},
+ { &hf_rrlp_cnavURAindex,
+ { "cnavURAindex", "rrlp.cnavURAindex",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_cnavDeltaA,
+ { "cnavDeltaA", "rrlp.cnavDeltaA",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M33554432_33554431", HFILL }},
+ { &hf_rrlp_cnavAdot,
+ { "cnavAdot", "rrlp.cnavAdot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16777216_16777215", HFILL }},
+ { &hf_rrlp_cnavDeltaNo,
+ { "cnavDeltaNo", "rrlp.cnavDeltaNo",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M65536_65535", HFILL }},
+ { &hf_rrlp_cnavDeltaNoDot,
+ { "cnavDeltaNoDot", "rrlp.cnavDeltaNoDot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M4194304_4194303", HFILL }},
+ { &hf_rrlp_cnavMo,
+ { "cnavMo", "rrlp.cnavMo",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.T_cnavMo", HFILL }},
+ { &hf_rrlp_cnavE,
+ { "cnavE", "rrlp.cnavE",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.T_cnavE", HFILL }},
+ { &hf_rrlp_cnavOmega,
+ { "cnavOmega", "rrlp.cnavOmega",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.T_cnavOmega", HFILL }},
+ { &hf_rrlp_cnavOMEGA0,
+ { "cnavOMEGA0", "rrlp.cnavOMEGA0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.T_cnavOMEGA0", HFILL }},
+ { &hf_rrlp_cnavDeltaOmegaDot,
+ { "cnavDeltaOmegaDot", "rrlp.cnavDeltaOmegaDot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M65536_65535", HFILL }},
+ { &hf_rrlp_cnavIo,
+ { "cnavIo", "rrlp.cnavIo",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.T_cnavIo", HFILL }},
+ { &hf_rrlp_cnavIoDot,
+ { "cnavIoDot", "rrlp.cnavIoDot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16384_16383", HFILL }},
+ { &hf_rrlp_cnavCis,
+ { "cnavCis", "rrlp.cnavCis",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_cnavCic,
+ { "cnavCic", "rrlp.cnavCic",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_cnavCrs,
+ { "cnavCrs", "rrlp.cnavCrs",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M8388608_8388607", HFILL }},
+ { &hf_rrlp_cnavCrc,
+ { "cnavCrc", "rrlp.cnavCrc",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M8388608_8388607", HFILL }},
+ { &hf_rrlp_cnavCus,
+ { "cnavCus", "rrlp.cnavCus",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M1048576_1048575", HFILL }},
+ { &hf_rrlp_cnavCuc,
+ { "cnavCuc", "rrlp.cnavCuc",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M1048576_1048575", HFILL }},
+ { &hf_rrlp_gloEn,
+ { "gloEn", "rrlp.gloEn",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_31", HFILL }},
+ { &hf_rrlp_gloP1,
+ { "gloP1", "rrlp.gloP1",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.BIT_STRING_SIZE_2", HFILL }},
+ { &hf_rrlp_gloP2,
+ { "gloP2", "rrlp.gloP2",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ "rrlp.BOOLEAN", HFILL }},
+ { &hf_rrlp_gloM,
+ { "gloM", "rrlp.gloM",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_3", HFILL }},
+ { &hf_rrlp_gloX,
+ { "gloX", "rrlp.gloX",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M67108864_67108863", HFILL }},
+ { &hf_rrlp_gloXdot,
+ { "gloXdot", "rrlp.gloXdot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M8388608_8388607", HFILL }},
+ { &hf_rrlp_gloXdotdot,
+ { "gloXdotdot", "rrlp.gloXdotdot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_gloY,
+ { "gloY", "rrlp.gloY",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M67108864_67108863", HFILL }},
+ { &hf_rrlp_gloYdot,
+ { "gloYdot", "rrlp.gloYdot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M8388608_8388607", HFILL }},
+ { &hf_rrlp_gloYdotdot,
+ { "gloYdotdot", "rrlp.gloYdotdot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_gloZ,
+ { "gloZ", "rrlp.gloZ",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M67108864_67108863", HFILL }},
+ { &hf_rrlp_gloZdot,
+ { "gloZdot", "rrlp.gloZdot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M8388608_8388607", HFILL }},
+ { &hf_rrlp_gloZdotdot,
+ { "gloZdotdot", "rrlp.gloZdotdot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_sbasTo,
+ { "sbasTo", "rrlp.sbasTo",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_5399", HFILL }},
+ { &hf_rrlp_sbasAccuracy,
+ { "sbasAccuracy", "rrlp.sbasAccuracy",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.BIT_STRING_SIZE_4", HFILL }},
+ { &hf_rrlp_sbasXg,
+ { "sbasXg", "rrlp.sbasXg",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M536870912_536870911", HFILL }},
+ { &hf_rrlp_sbasYg,
+ { "sbasYg", "rrlp.sbasYg",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M536870912_536870911", HFILL }},
+ { &hf_rrlp_sbasZg,
+ { "sbasZg", "rrlp.sbasZg",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16777216_16777215", HFILL }},
+ { &hf_rrlp_sbasXgDot,
+ { "sbasXgDot", "rrlp.sbasXgDot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M65536_65535", HFILL }},
+ { &hf_rrlp_sbasYgDot,
+ { "sbasYgDot", "rrlp.sbasYgDot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M65536_65535", HFILL }},
+ { &hf_rrlp_sbasZgDot,
+ { "sbasZgDot", "rrlp.sbasZgDot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M131072_131071", HFILL }},
+ { &hf_rrlp_sbasXgDotDot,
+ { "sbasXgDotDot", "rrlp.sbasXgDotDot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M512_511", HFILL }},
+ { &hf_rrlp_sbagYgDotDot,
+ { "sbagYgDotDot", "rrlp.sbagYgDotDot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M512_511", HFILL }},
+ { &hf_rrlp_sbasZgDotDot,
+ { "sbasZgDotDot", "rrlp.sbasZgDotDot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M512_511", HFILL }},
{ &hf_rrlp_standardClockModelList,
{ "standardClockModelList", "rrlp.standardClockModelList",
FT_UINT32, BASE_DEC, NULL, 0,
"rrlp.SeqOfStandardClockModelElement", HFILL }},
+ { &hf_rrlp_navClockModel,
+ { "navClockModel", "rrlp.navClockModel",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.NAVclockModel", HFILL }},
+ { &hf_rrlp_cnavClockModel,
+ { "cnavClockModel", "rrlp.cnavClockModel",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.CNAVclockModel", HFILL }},
+ { &hf_rrlp_glonassClockModel,
+ { "glonassClockModel", "rrlp.glonassClockModel",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GLONASSclockModel", HFILL }},
+ { &hf_rrlp_sbasClockModel,
+ { "sbasClockModel", "rrlp.sbasClockModel",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.SBASclockModel", HFILL }},
{ &hf_rrlp_SeqOfStandardClockModelElement_item,
{ "StandardClockModelElement", "rrlp.StandardClockModelElement",
FT_NONE, BASE_NONE, NULL, 0,
"rrlp.StandardClockModelElement", HFILL }},
- { &hf_rrlp_stanClockTocLSB,
- { "stanClockTocLSB", "rrlp.stanClockTocLSB",
+ { &hf_rrlp_stanClockToc,
+ { "stanClockToc", "rrlp.stanClockToc",
FT_UINT32, BASE_DEC, NULL, 0,
- "rrlp.INTEGER_0_511", HFILL }},
+ "rrlp.INTEGER_0_16383", HFILL }},
{ &hf_rrlp_stanClockAF2,
{ "stanClockAF2", "rrlp.stanClockAF2",
FT_INT32, BASE_DEC, NULL, 0,
@@ -6024,6 +8848,102 @@ void proto_register_rrlp(void) {
{ "stanModelID", "rrlp.stanModelID",
FT_UINT32, BASE_DEC, NULL, 0,
"rrlp.INTEGER_0_1", HFILL }},
+ { &hf_rrlp_navToc,
+ { "navToc", "rrlp.navToc",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_37799", HFILL }},
+ { &hf_rrlp_navaf2,
+ { "navaf2", "rrlp.navaf2",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M128_127", HFILL }},
+ { &hf_rrlp_navaf1,
+ { "navaf1", "rrlp.navaf1",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_navaf0,
+ { "navaf0", "rrlp.navaf0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M2097152_2097151", HFILL }},
+ { &hf_rrlp_navTgd,
+ { "navTgd", "rrlp.navTgd",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M128_127", HFILL }},
+ { &hf_rrlp_cnavToc,
+ { "cnavToc", "rrlp.cnavToc",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_2015", HFILL }},
+ { &hf_rrlp_cnavURA0,
+ { "cnavURA0", "rrlp.cnavURA0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_cnavURA1,
+ { "cnavURA1", "rrlp.cnavURA1",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_7", HFILL }},
+ { &hf_rrlp_cnavURA2,
+ { "cnavURA2", "rrlp.cnavURA2",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_7", HFILL }},
+ { &hf_rrlp_cnavAf2,
+ { "cnavAf2", "rrlp.cnavAf2",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M512_511", HFILL }},
+ { &hf_rrlp_cnavAf1,
+ { "cnavAf1", "rrlp.cnavAf1",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M524288_524287", HFILL }},
+ { &hf_rrlp_cnavAf0,
+ { "cnavAf0", "rrlp.cnavAf0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M33554432_33554431", HFILL }},
+ { &hf_rrlp_cnavTgd,
+ { "cnavTgd", "rrlp.cnavTgd",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M4096_4095", HFILL }},
+ { &hf_rrlp_cnavISCl1cp,
+ { "cnavISCl1cp", "rrlp.cnavISCl1cp",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M4096_4095", HFILL }},
+ { &hf_rrlp_cnavISCl1cd,
+ { "cnavISCl1cd", "rrlp.cnavISCl1cd",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M4096_4095", HFILL }},
+ { &hf_rrlp_cnavISCl1ca,
+ { "cnavISCl1ca", "rrlp.cnavISCl1ca",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M4096_4095", HFILL }},
+ { &hf_rrlp_cnavISCl2c,
+ { "cnavISCl2c", "rrlp.cnavISCl2c",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M4096_4095", HFILL }},
+ { &hf_rrlp_cnavISCl5i5,
+ { "cnavISCl5i5", "rrlp.cnavISCl5i5",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M4096_4095", HFILL }},
+ { &hf_rrlp_cnavISCl5q5,
+ { "cnavISCl5q5", "rrlp.cnavISCl5q5",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M4096_4095", HFILL }},
+ { &hf_rrlp_gloTau,
+ { "gloTau", "rrlp.gloTau",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M2097152_2097151", HFILL }},
+ { &hf_rrlp_gloGamma,
+ { "gloGamma", "rrlp.gloGamma",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M1024_1023", HFILL }},
+ { &hf_rrlp_gloDeltaTau,
+ { "gloDeltaTau", "rrlp.gloDeltaTau",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_sbasAgfo,
+ { "sbasAgfo", "rrlp.sbasAgfo",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M2048_2047", HFILL }},
+ { &hf_rrlp_sbasAgf1,
+ { "sbasAgf1", "rrlp.sbasAgf1",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M128_127", HFILL }},
{ &hf_rrlp_ganssBadSignalList,
{ "ganssBadSignalList", "rrlp.ganssBadSignalList",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -6038,16 +8958,32 @@ void proto_register_rrlp(void) {
"rrlp.SVID", HFILL }},
{ &hf_rrlp_badSignalID,
{ "badSignalID", "rrlp.badSignalID",
- FT_UINT32, BASE_DEC, NULL, 0,
- "rrlp.INTEGER_0_3", HFILL }},
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.GANSSSignals", HFILL }},
{ &hf_rrlp_ganssTOD_01,
{ "ganssTOD", "rrlp.ganssTOD",
FT_UINT32, BASE_DEC, NULL, 0,
"rrlp.INTEGER_0_59", HFILL }},
- { &hf_rrlp_ganssDataTypeID,
- { "ganssDataTypeID", "rrlp.ganssDataTypeID",
+ { &hf_rrlp_ganssDataBitsSatList,
+ { "ganssDataBitsSatList", "rrlp.ganssDataBitsSatList",
FT_UINT32, BASE_DEC, NULL, 0,
- "rrlp.INTEGER_0_2", HFILL }},
+ "rrlp.SeqOfGanssDataBitsElement", HFILL }},
+ { &hf_rrlp_SeqOfGanssDataBitsElement_item,
+ { "GanssDataBitsElement", "rrlp.GanssDataBitsElement",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GanssDataBitsElement", HFILL }},
+ { &hf_rrlp_ganssDataBitsSgnList,
+ { "ganssDataBitsSgnList", "rrlp.ganssDataBitsSgnList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.Seq_OfGANSSDataBitsSgn", HFILL }},
+ { &hf_rrlp_Seq_OfGANSSDataBitsSgn_item,
+ { "GANSSDataBitsSgnElement", "rrlp.GANSSDataBitsSgnElement",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSDataBitsSgnElement", HFILL }},
+ { &hf_rrlp_ganssSignalType,
+ { "ganssSignalType", "rrlp.ganssSignalType",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.GANSSSignalID", HFILL }},
{ &hf_rrlp_ganssDataBits,
{ "ganssDataBits", "rrlp.ganssDataBits",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -6056,12 +8992,8 @@ void proto_register_rrlp(void) {
{ "GANSSDataBit", "rrlp.GANSSDataBit",
FT_UINT32, BASE_DEC, NULL, 0,
"rrlp.GANSSDataBit", HFILL }},
- { &hf_rrlp_ganssSignalID_01,
- { "ganssSignalID", "rrlp.ganssSignalID",
- FT_UINT32, BASE_DEC, NULL, 0,
- "rrlp.INTEGER_0_3", HFILL }},
- { &hf_rrlp_ganssRefMeasAssitList,
- { "ganssRefMeasAssitList", "rrlp.ganssRefMeasAssitList",
+ { &hf_rrlp_ganssRefMeasAssistList,
+ { "ganssRefMeasAssistList", "rrlp.ganssRefMeasAssistList",
FT_UINT32, BASE_DEC, NULL, 0,
"rrlp.SeqOfGANSSRefMeasurementElement", HFILL }},
{ &hf_rrlp_SeqOfGANSSRefMeasurementElement_item,
@@ -6092,10 +9024,6 @@ void proto_register_rrlp(void) {
{ "weekNumber", "rrlp.weekNumber",
FT_UINT32, BASE_DEC, NULL, 0,
"rrlp.INTEGER_0_255", HFILL }},
- { &hf_rrlp_svIDMask,
- { "svIDMask", "rrlp.svIDMask",
- FT_BYTES, BASE_NONE, NULL, 0,
- "rrlp.SVIDMASK", HFILL }},
{ &hf_rrlp_toa,
{ "toa", "rrlp.toa",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -6116,6 +9044,26 @@ void proto_register_rrlp(void) {
{ "keplerianAlmanacSet", "rrlp.keplerianAlmanacSet",
FT_NONE, BASE_NONE, NULL, 0,
"rrlp.Almanac_KeplerianSet", HFILL }},
+ { &hf_rrlp_keplerianNAVAlmanac,
+ { "keplerianNAVAlmanac", "rrlp.keplerianNAVAlmanac",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.Almanac_NAVKeplerianSet", HFILL }},
+ { &hf_rrlp_keplerianReducedAlmanac,
+ { "keplerianReducedAlmanac", "rrlp.keplerianReducedAlmanac",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.Almanac_ReducedKeplerianSet", HFILL }},
+ { &hf_rrlp_keplerianMidiAlmanac,
+ { "keplerianMidiAlmanac", "rrlp.keplerianMidiAlmanac",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.Almanac_MidiAlmanacSet", HFILL }},
+ { &hf_rrlp_keplerianGLONASS,
+ { "keplerianGLONASS", "rrlp.keplerianGLONASS",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.Almanac_GlonassAlmanacSet", HFILL }},
+ { &hf_rrlp_ecefSBASAlmanac,
+ { "ecefSBASAlmanac", "rrlp.ecefSBASAlmanac",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.Almanac_ECEFsbasAlmanacSet", HFILL }},
{ &hf_rrlp_kepAlmanacE,
{ "kepAlmanacE", "rrlp.kepAlmanacE",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -6156,6 +9104,206 @@ void proto_register_rrlp(void) {
{ "kepAlmanacAF1", "rrlp.kepAlmanacAF1",
FT_INT32, BASE_DEC, NULL, 0,
"rrlp.INTEGER_M1024_1023", HFILL }},
+ { &hf_rrlp_navAlmE,
+ { "navAlmE", "rrlp.navAlmE",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_65535", HFILL }},
+ { &hf_rrlp_navAlmDeltaI,
+ { "navAlmDeltaI", "rrlp.navAlmDeltaI",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_navAlmOMEGADOT,
+ { "navAlmOMEGADOT", "rrlp.navAlmOMEGADOT",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_navAlmSVHealth,
+ { "navAlmSVHealth", "rrlp.navAlmSVHealth",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_255", HFILL }},
+ { &hf_rrlp_navAlmSqrtA,
+ { "navAlmSqrtA", "rrlp.navAlmSqrtA",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_16777215", HFILL }},
+ { &hf_rrlp_navAlmOMEGAo,
+ { "navAlmOMEGAo", "rrlp.navAlmOMEGAo",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M8388608_8388607", HFILL }},
+ { &hf_rrlp_navAlmOmega,
+ { "navAlmOmega", "rrlp.navAlmOmega",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M8388608_8388607", HFILL }},
+ { &hf_rrlp_navAlmMo,
+ { "navAlmMo", "rrlp.navAlmMo",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M8388608_8388607", HFILL }},
+ { &hf_rrlp_navAlmaf0,
+ { "navAlmaf0", "rrlp.navAlmaf0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M1024_1023", HFILL }},
+ { &hf_rrlp_navAlmaf1,
+ { "navAlmaf1", "rrlp.navAlmaf1",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M1024_1023", HFILL }},
+ { &hf_rrlp_redAlmDeltaA,
+ { "redAlmDeltaA", "rrlp.redAlmDeltaA",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M128_127", HFILL }},
+ { &hf_rrlp_redAlmOmega0,
+ { "redAlmOmega0", "rrlp.redAlmOmega0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M64_63", HFILL }},
+ { &hf_rrlp_redAlmPhi0,
+ { "redAlmPhi0", "rrlp.redAlmPhi0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M64_63", HFILL }},
+ { &hf_rrlp_redAlmL1Health,
+ { "redAlmL1Health", "rrlp.redAlmL1Health",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ "rrlp.BOOLEAN", HFILL }},
+ { &hf_rrlp_redAlmL2Health,
+ { "redAlmL2Health", "rrlp.redAlmL2Health",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ "rrlp.BOOLEAN", HFILL }},
+ { &hf_rrlp_redAlmL5Health,
+ { "redAlmL5Health", "rrlp.redAlmL5Health",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ "rrlp.BOOLEAN", HFILL }},
+ { &hf_rrlp_midiAlmE,
+ { "midiAlmE", "rrlp.midiAlmE",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_2047", HFILL }},
+ { &hf_rrlp_midiAlmDeltaI,
+ { "midiAlmDeltaI", "rrlp.midiAlmDeltaI",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M1024_1023", HFILL }},
+ { &hf_rrlp_midiAlmOmegaDot,
+ { "midiAlmOmegaDot", "rrlp.midiAlmOmegaDot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M1024_1023", HFILL }},
+ { &hf_rrlp_midiAlmSqrtA,
+ { "midiAlmSqrtA", "rrlp.midiAlmSqrtA",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_131071", HFILL }},
+ { &hf_rrlp_midiAlmOmega0,
+ { "midiAlmOmega0", "rrlp.midiAlmOmega0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_midiAlmOmega,
+ { "midiAlmOmega", "rrlp.midiAlmOmega",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_midiAlmMo,
+ { "midiAlmMo", "rrlp.midiAlmMo",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_midiAlmaf0,
+ { "midiAlmaf0", "rrlp.midiAlmaf0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M1024_1023", HFILL }},
+ { &hf_rrlp_midiAlmaf1,
+ { "midiAlmaf1", "rrlp.midiAlmaf1",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M512_511", HFILL }},
+ { &hf_rrlp_midiAlmL1Health,
+ { "midiAlmL1Health", "rrlp.midiAlmL1Health",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ "rrlp.BOOLEAN", HFILL }},
+ { &hf_rrlp_midiAlmL2Health,
+ { "midiAlmL2Health", "rrlp.midiAlmL2Health",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ "rrlp.BOOLEAN", HFILL }},
+ { &hf_rrlp_midiAlmL5Health,
+ { "midiAlmL5Health", "rrlp.midiAlmL5Health",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ "rrlp.BOOLEAN", HFILL }},
+ { &hf_rrlp_gloAlmNA,
+ { "gloAlmNA", "rrlp.gloAlmNA",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_1461", HFILL }},
+ { &hf_rrlp_gloAlmnA,
+ { "gloAlmnA", "rrlp.gloAlmnA",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_24", HFILL }},
+ { &hf_rrlp_gloAlmHA,
+ { "gloAlmHA", "rrlp.gloAlmHA",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_31", HFILL }},
+ { &hf_rrlp_gloAlmLambdaA,
+ { "gloAlmLambdaA", "rrlp.gloAlmLambdaA",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M1048576_1048575", HFILL }},
+ { &hf_rrlp_gloAlmtlambdaA,
+ { "gloAlmtlambdaA", "rrlp.gloAlmtlambdaA",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_2097151", HFILL }},
+ { &hf_rrlp_gloAlmDeltaIa,
+ { "gloAlmDeltaIa", "rrlp.gloAlmDeltaIa",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M131072_131071", HFILL }},
+ { &hf_rrlp_gloAlmDeltaTA,
+ { "gloAlmDeltaTA", "rrlp.gloAlmDeltaTA",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M2097152_2097151", HFILL }},
+ { &hf_rrlp_gloAlmDeltaTdotA,
+ { "gloAlmDeltaTdotA", "rrlp.gloAlmDeltaTdotA",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M64_63", HFILL }},
+ { &hf_rrlp_gloAlmEpsilonA,
+ { "gloAlmEpsilonA", "rrlp.gloAlmEpsilonA",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_32767", HFILL }},
+ { &hf_rrlp_gloAlmOmegaA,
+ { "gloAlmOmegaA", "rrlp.gloAlmOmegaA",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_gloAlmTauA,
+ { "gloAlmTauA", "rrlp.gloAlmTauA",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M512_511", HFILL }},
+ { &hf_rrlp_gloAlmCA,
+ { "gloAlmCA", "rrlp.gloAlmCA",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_1", HFILL }},
+ { &hf_rrlp_gloAlmMA,
+ { "gloAlmMA", "rrlp.gloAlmMA",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.BIT_STRING_SIZE_2", HFILL }},
+ { &hf_rrlp_sbasAlmDataID,
+ { "sbasAlmDataID", "rrlp.sbasAlmDataID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_3", HFILL }},
+ { &hf_rrlp_sbasAlmHealth,
+ { "sbasAlmHealth", "rrlp.sbasAlmHealth",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.BIT_STRING_SIZE_8", HFILL }},
+ { &hf_rrlp_sbasAlmXg,
+ { "sbasAlmXg", "rrlp.sbasAlmXg",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16384_16383", HFILL }},
+ { &hf_rrlp_sbasAlmYg,
+ { "sbasAlmYg", "rrlp.sbasAlmYg",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16384_16383", HFILL }},
+ { &hf_rrlp_sbasAlmZg,
+ { "sbasAlmZg", "rrlp.sbasAlmZg",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M256_255", HFILL }},
+ { &hf_rrlp_sbasAlmXgdot,
+ { "sbasAlmXgdot", "rrlp.sbasAlmXgdot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M4_3", HFILL }},
+ { &hf_rrlp_sbasAlmYgDot,
+ { "sbasAlmYgDot", "rrlp.sbasAlmYgDot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M4_3", HFILL }},
+ { &hf_rrlp_sbasAlmZgDot,
+ { "sbasAlmZgDot", "rrlp.sbasAlmZgDot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M8_7", HFILL }},
+ { &hf_rrlp_sbasAlmTo,
+ { "sbasAlmTo", "rrlp.sbasAlmTo",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_2047", HFILL }},
{ &hf_rrlp_ganssUtcA1,
{ "ganssUtcA1", "rrlp.ganssUtcA1",
FT_INT32, BASE_DEC, NULL, 0,
@@ -6188,6 +9336,474 @@ void proto_register_rrlp(void) {
{ "ganssUtcDeltaTlsf", "rrlp.ganssUtcDeltaTlsf",
FT_INT32, BASE_DEC, NULL, 0,
"rrlp.INTEGER_M128_127", HFILL }},
+ { &hf_rrlp_ganssEphemerisHeader,
+ { "ganssEphemerisHeader", "rrlp.ganssEphemerisHeader",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSEphemerisExtensionHeader", HFILL }},
+ { &hf_rrlp_ganssReferenceSet,
+ { "ganssReferenceSet", "rrlp.ganssReferenceSet",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfGANSSRefOrbit", HFILL }},
+ { &hf_rrlp_ganssephemerisDeltasMatrix,
+ { "ganssephemerisDeltasMatrix", "rrlp.ganssephemerisDeltasMatrix",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.GANSSEphemerisDeltaMatrix", HFILL }},
+ { &hf_rrlp_timeAtEstimation,
+ { "timeAtEstimation", "rrlp.timeAtEstimation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSEphemerisExtensionTime", HFILL }},
+ { &hf_rrlp_validityPeriod,
+ { "validityPeriod", "rrlp.validityPeriod",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_8", HFILL }},
+ { &hf_rrlp_ephemerisExtensionDuration,
+ { "ephemerisExtensionDuration", "rrlp.ephemerisExtensionDuration",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_512", HFILL }},
+ { &hf_rrlp_ganssEphExtDay,
+ { "ganssEphExtDay", "rrlp.ganssEphExtDay",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_8191", HFILL }},
+ { &hf_rrlp_ganssEphExtTOD,
+ { "ganssEphExtTOD", "rrlp.ganssEphExtTOD",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.GANSSTOD", HFILL }},
+ { &hf_rrlp_keplerToe_01,
+ { "keplerToe", "rrlp.keplerToe",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_37799", HFILL }},
+ { &hf_rrlp_keplerW_01,
+ { "keplerW", "rrlp.keplerW",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.T_keplerW", HFILL }},
+ { &hf_rrlp_keplerM0_01,
+ { "keplerM0", "rrlp.keplerM0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.T_keplerM0", HFILL }},
+ { &hf_rrlp_keplerI0_01,
+ { "keplerI0", "rrlp.keplerI0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.T_keplerI0", HFILL }},
+ { &hf_rrlp_keplerOmega0_01,
+ { "keplerOmega0", "rrlp.keplerOmega0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.T_keplerOmega0", HFILL }},
+ { &hf_rrlp_SeqOfGANSSRefOrbit_item,
+ { "GANSSReferenceOrbit", "rrlp.GANSSReferenceOrbit",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSReferenceOrbit", HFILL }},
+ { &hf_rrlp_ganssOrbitModel_01,
+ { "ganssOrbitModel", "rrlp.ganssOrbitModel",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.ReferenceNavModel", HFILL }},
+ { &hf_rrlp_GANSSEphemerisDeltaMatrix_item,
+ { "GANSSEphemerisDeltaEpoch", "rrlp.GANSSEphemerisDeltaEpoch",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSEphemerisDeltaEpoch", HFILL }},
+ { &hf_rrlp_ganssDeltaEpochHeader,
+ { "ganssDeltaEpochHeader", "rrlp.ganssDeltaEpochHeader",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSDeltaEpochHeader", HFILL }},
+ { &hf_rrlp_ganssDeltaElementList,
+ { "ganssDeltaElementList", "rrlp.ganssDeltaElementList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.GANSSDeltaElementList", HFILL }},
+ { &hf_rrlp_ephemerisDeltaSizes,
+ { "ephemerisDeltaSizes", "rrlp.ephemerisDeltaSizes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSEphemerisDeltaBitSizes", HFILL }},
+ { &hf_rrlp_ephemerisDeltaScales,
+ { "ephemerisDeltaScales", "rrlp.ephemerisDeltaScales",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSEphemerisDeltaScales", HFILL }},
+ { &hf_rrlp_GANSSDeltaElementList_item,
+ { "GANSSDeltaElementList item", "rrlp.GANSSDeltaElementList_item",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.OCTET_STRING_SIZE_1_49", HFILL }},
+ { &hf_rrlp_bitsize_delta_omega,
+ { "bitsize-delta-omega", "rrlp.bitsize_delta_omega",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_32", HFILL }},
+ { &hf_rrlp_bitsize_delta_deltaN,
+ { "bitsize-delta-deltaN", "rrlp.bitsize_delta_deltaN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_16", HFILL }},
+ { &hf_rrlp_bitsize_delta_m0,
+ { "bitsize-delta-m0", "rrlp.bitsize_delta_m0",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_32", HFILL }},
+ { &hf_rrlp_bitsize_delta_omegadot,
+ { "bitsize-delta-omegadot", "rrlp.bitsize_delta_omegadot",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_24", HFILL }},
+ { &hf_rrlp_bitsize_delta_e,
+ { "bitsize-delta-e", "rrlp.bitsize_delta_e",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_32", HFILL }},
+ { &hf_rrlp_bitsize_delta_idot,
+ { "bitsize-delta-idot", "rrlp.bitsize_delta_idot",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_14", HFILL }},
+ { &hf_rrlp_bitsize_delta_sqrtA,
+ { "bitsize-delta-sqrtA", "rrlp.bitsize_delta_sqrtA",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_32", HFILL }},
+ { &hf_rrlp_bitsize_delta_i0,
+ { "bitsize-delta-i0", "rrlp.bitsize_delta_i0",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_32", HFILL }},
+ { &hf_rrlp_bitsize_delta_omega0,
+ { "bitsize-delta-omega0", "rrlp.bitsize_delta_omega0",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_32", HFILL }},
+ { &hf_rrlp_bitsize_delta_crs,
+ { "bitsize-delta-crs", "rrlp.bitsize_delta_crs",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_16", HFILL }},
+ { &hf_rrlp_bitsize_delta_cis,
+ { "bitsize-delta-cis", "rrlp.bitsize_delta_cis",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_16", HFILL }},
+ { &hf_rrlp_bitsize_delta_cus,
+ { "bitsize-delta-cus", "rrlp.bitsize_delta_cus",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_16", HFILL }},
+ { &hf_rrlp_bitsize_delta_crc,
+ { "bitsize-delta-crc", "rrlp.bitsize_delta_crc",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_16", HFILL }},
+ { &hf_rrlp_bitsize_delta_cic,
+ { "bitsize-delta-cic", "rrlp.bitsize_delta_cic",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_16", HFILL }},
+ { &hf_rrlp_bitsize_delta_cuc,
+ { "bitsize-delta-cuc", "rrlp.bitsize_delta_cuc",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_16", HFILL }},
+ { &hf_rrlp_bitsize_delta_tgd1,
+ { "bitsize-delta-tgd1", "rrlp.bitsize_delta_tgd1",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_10", HFILL }},
+ { &hf_rrlp_bitsize_delta_tgd2,
+ { "bitsize-delta-tgd2", "rrlp.bitsize_delta_tgd2",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_10", HFILL }},
+ { &hf_rrlp_scale_delta_omega,
+ { "scale-delta-omega", "rrlp.scale_delta_omega",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_scale_delta_deltaN,
+ { "scale-delta-deltaN", "rrlp.scale_delta_deltaN",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_scale_delta_m0,
+ { "scale-delta-m0", "rrlp.scale_delta_m0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_scale_delta_omegadot,
+ { "scale-delta-omegadot", "rrlp.scale_delta_omegadot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_scale_delta_e,
+ { "scale-delta-e", "rrlp.scale_delta_e",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_scale_delta_idot,
+ { "scale-delta-idot", "rrlp.scale_delta_idot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_scale_delta_sqrtA,
+ { "scale-delta-sqrtA", "rrlp.scale_delta_sqrtA",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_scale_delta_i0,
+ { "scale-delta-i0", "rrlp.scale_delta_i0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_scale_delta_omega0,
+ { "scale-delta-omega0", "rrlp.scale_delta_omega0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_scale_delta_crs,
+ { "scale-delta-crs", "rrlp.scale_delta_crs",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_scale_delta_cis,
+ { "scale-delta-cis", "rrlp.scale_delta_cis",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_scale_delta_cus,
+ { "scale-delta-cus", "rrlp.scale_delta_cus",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_scale_delta_crc,
+ { "scale-delta-crc", "rrlp.scale_delta_crc",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_scale_delta_cic,
+ { "scale-delta-cic", "rrlp.scale_delta_cic",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_scale_delta_cuc,
+ { "scale-delta-cuc", "rrlp.scale_delta_cuc",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_scale_delta_tgd1,
+ { "scale-delta-tgd1", "rrlp.scale_delta_tgd1",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_scale_delta_tgd2,
+ { "scale-delta-tgd2", "rrlp.scale_delta_tgd2",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_ganssBeginTime,
+ { "ganssBeginTime", "rrlp.ganssBeginTime",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSEphemerisExtensionTime", HFILL }},
+ { &hf_rrlp_ganssEndTime,
+ { "ganssEndTime", "rrlp.ganssEndTime",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSEphemerisExtensionTime", HFILL }},
+ { &hf_rrlp_ganssSatEventsInfo,
+ { "ganssSatEventsInfo", "rrlp.ganssSatEventsInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSSatEventsInfo", HFILL }},
+ { &hf_rrlp_eventOccured,
+ { "eventOccured", "rrlp.eventOccured",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.BIT_STRING_SIZE_64", HFILL }},
+ { &hf_rrlp_futureEventNoted,
+ { "futureEventNoted", "rrlp.futureEventNoted",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.BIT_STRING_SIZE_64", HFILL }},
+ { &hf_rrlp_utcModel2,
+ { "utcModel2", "rrlp.utcModel2",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.UTCmodelSet2", HFILL }},
+ { &hf_rrlp_utcModel3,
+ { "utcModel3", "rrlp.utcModel3",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.UTCmodelSet3", HFILL }},
+ { &hf_rrlp_utcModel4,
+ { "utcModel4", "rrlp.utcModel4",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.UTCmodelSet4", HFILL }},
+ { &hf_rrlp_utcA0_01,
+ { "utcA0", "rrlp.utcA0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_utcA1_01,
+ { "utcA1", "rrlp.utcA1",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M4096_4095", HFILL }},
+ { &hf_rrlp_utcA2,
+ { "utcA2", "rrlp.utcA2",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M64_63", HFILL }},
+ { &hf_rrlp_utcTot_01,
+ { "utcTot", "rrlp.utcTot",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_65535", HFILL }},
+ { &hf_rrlp_utcWNot,
+ { "utcWNot", "rrlp.utcWNot",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_8191", HFILL }},
+ { &hf_rrlp_utcDN_01,
+ { "utcDN", "rrlp.utcDN",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.BIT_STRING_SIZE_4", HFILL }},
+ { &hf_rrlp_nA,
+ { "nA", "rrlp.nA",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_1461", HFILL }},
+ { &hf_rrlp_tauC,
+ { "tauC", "rrlp.tauC",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.T_tauC", HFILL }},
+ { &hf_rrlp_b1,
+ { "b1", "rrlp.b1",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M1024_1023", HFILL }},
+ { &hf_rrlp_b2,
+ { "b2", "rrlp.b2",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M512_511", HFILL }},
+ { &hf_rrlp_kp,
+ { "kp", "rrlp.kp",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.BIT_STRING_SIZE_2", HFILL }},
+ { &hf_rrlp_utcA1wnt,
+ { "utcA1wnt", "rrlp.utcA1wnt",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M8388608_8388607", HFILL }},
+ { &hf_rrlp_utcA0wnt,
+ { "utcA0wnt", "rrlp.utcA0wnt",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.T_utcA0wnt", HFILL }},
+ { &hf_rrlp_utcStandardID,
+ { "utcStandardID", "rrlp.utcStandardID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_7", HFILL }},
+ { &hf_rrlp_ganssID1,
+ { "ganssID1", "rrlp.ganssID1",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.GANSS_ID1", HFILL }},
+ { &hf_rrlp_ganssID3,
+ { "ganssID3", "rrlp.ganssID3",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.GANSS_ID3", HFILL }},
+ { &hf_rrlp_GANSS_ID1_item,
+ { "GANSS-ID1-element", "rrlp.GANSS_ID1_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSS_ID1_element", HFILL }},
+ { &hf_rrlp_signalsAvailable,
+ { "signalsAvailable", "rrlp.signalsAvailable",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.GANSSSignals", HFILL }},
+ { &hf_rrlp_GANSS_ID3_item,
+ { "GANSS-ID3-element", "rrlp.GANSS_ID3_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSS_ID3_element", HFILL }},
+ { &hf_rrlp_channelNumber,
+ { "channelNumber", "rrlp.channelNumber",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M7_13", HFILL }},
+ { &hf_rrlp_GANSSDiffCorrectionsValidityPeriod_item,
+ { "DGANSSExtensionSgnTypeElement", "rrlp.DGANSSExtensionSgnTypeElement",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.DGANSSExtensionSgnTypeElement", HFILL }},
+ { &hf_rrlp_dganssExtensionSgnList,
+ { "dganssExtensionSgnList", "rrlp.dganssExtensionSgnList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfDGANSSExtensionSgnElement", HFILL }},
+ { &hf_rrlp_SeqOfDGANSSExtensionSgnElement_item,
+ { "DGANSSExtensionSgnElement", "rrlp.DGANSSExtensionSgnElement",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.DGANSSExtensionSgnElement", HFILL }},
+ { &hf_rrlp_udreGrowthRate,
+ { "udreGrowthRate", "rrlp.udreGrowthRate",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_7", HFILL }},
+ { &hf_rrlp_udreValidityTime,
+ { "udreValidityTime", "rrlp.udreValidityTime",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_7", HFILL }},
+ { &hf_rrlp_add_GPS_controlHeader,
+ { "add-GPS-controlHeader", "rrlp.add_GPS_controlHeader",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.Add_GPS_ControlHeader", HFILL }},
+ { &hf_rrlp_gpsEphemerisExtension,
+ { "gpsEphemerisExtension", "rrlp.gpsEphemerisExtension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GPSEphemerisExtension", HFILL }},
+ { &hf_rrlp_gpsEphemerisExtensionCheck,
+ { "gpsEphemerisExtensionCheck", "rrlp.gpsEphemerisExtensionCheck",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GPSEphemerisExtensionCheck", HFILL }},
+ { &hf_rrlp_dgpsCorrectionsValidityPeriod,
+ { "dgpsCorrectionsValidityPeriod", "rrlp.dgpsCorrectionsValidityPeriod",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.DGPSCorrectionsValidityPeriod", HFILL }},
+ { &hf_rrlp_af2,
+ { "af2", "rrlp.af2",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M128_127", HFILL }},
+ { &hf_rrlp_af1,
+ { "af1", "rrlp.af1",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_af0,
+ { "af0", "rrlp.af0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M2097152_2097151", HFILL }},
+ { &hf_rrlp_tgd,
+ { "tgd", "rrlp.tgd",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M128_127", HFILL }},
+ { &hf_rrlp_gpsEphemerisHeader,
+ { "gpsEphemerisHeader", "rrlp.gpsEphemerisHeader",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GPSEphemerisExtensionHeader", HFILL }},
+ { &hf_rrlp_gpsReferenceSet,
+ { "gpsReferenceSet", "rrlp.gpsReferenceSet",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfGPSRefOrbit", HFILL }},
+ { &hf_rrlp_gpsephemerisDeltaMatrix,
+ { "gpsephemerisDeltaMatrix", "rrlp.gpsephemerisDeltaMatrix",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.GPSEphemerisDeltaMatrix", HFILL }},
+ { &hf_rrlp_timeofEstimation,
+ { "timeofEstimation", "rrlp.timeofEstimation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GPSEphemerisExtensionTime", HFILL }},
+ { &hf_rrlp_SeqOfGPSRefOrbit_item,
+ { "GPSReferenceOrbit", "rrlp.GPSReferenceOrbit",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GPSReferenceOrbit", HFILL }},
+ { &hf_rrlp_gpsOrbitModel,
+ { "gpsOrbitModel", "rrlp.gpsOrbitModel",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.ReferenceNavModel", HFILL }},
+ { &hf_rrlp_gpsClockModel,
+ { "gpsClockModel", "rrlp.gpsClockModel",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GPSClockModel", HFILL }},
+ { &hf_rrlp_GPSEphemerisDeltaMatrix_item,
+ { "GPSEphemerisDeltaEpoch", "rrlp.GPSEphemerisDeltaEpoch",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GPSEphemerisDeltaEpoch", HFILL }},
+ { &hf_rrlp_gpsDeltaEpochHeader,
+ { "gpsDeltaEpochHeader", "rrlp.gpsDeltaEpochHeader",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GPSDeltaEpochHeader", HFILL }},
+ { &hf_rrlp_gpsDeltaElementList,
+ { "gpsDeltaElementList", "rrlp.gpsDeltaElementList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.GPSDeltaElementList", HFILL }},
+ { &hf_rrlp_ephemerisDeltaSizes_01,
+ { "ephemerisDeltaSizes", "rrlp.ephemerisDeltaSizes",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GPSEphemerisDeltaBitSizes", HFILL }},
+ { &hf_rrlp_ephemerisDeltaScales_01,
+ { "ephemerisDeltaScales", "rrlp.ephemerisDeltaScales",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GPSEphemerisDeltaScales", HFILL }},
+ { &hf_rrlp_GPSDeltaElementList_item,
+ { "GPSDeltaElementList item", "rrlp.GPSDeltaElementList_item",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.OCTET_STRING_SIZE_1_47", HFILL }},
+ { &hf_rrlp_bitsize_delta_tgd,
+ { "bitsize-delta-tgd", "rrlp.bitsize_delta_tgd",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_1_10", HFILL }},
+ { &hf_rrlp_scale_delta_tgd,
+ { "scale-delta-tgd", "rrlp.scale_delta_tgd",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M16_15", HFILL }},
+ { &hf_rrlp_gpsBeginTime,
+ { "gpsBeginTime", "rrlp.gpsBeginTime",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GPSEphemerisExtensionTime", HFILL }},
+ { &hf_rrlp_gpsEndTime,
+ { "gpsEndTime", "rrlp.gpsEndTime",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GPSEphemerisExtensionTime", HFILL }},
+ { &hf_rrlp_gpsSatEventsInfo,
+ { "gpsSatEventsInfo", "rrlp.gpsSatEventsInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GPSSatEventsInfo", HFILL }},
+ { &hf_rrlp_eventOccured_01,
+ { "eventOccured", "rrlp.eventOccured",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.BIT_STRING_SIZE_32", HFILL }},
+ { &hf_rrlp_futureEventNoted_01,
+ { "futureEventNoted", "rrlp.futureEventNoted",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.BIT_STRING_SIZE_32", HFILL }},
+ { &hf_rrlp_DGPSCorrectionsValidityPeriod_item,
+ { "DGPSExtensionSatElement", "rrlp.DGPSExtensionSatElement",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.DGPSExtensionSatElement", HFILL }},
{ &hf_rrlp_velEstimate,
{ "velEstimate", "rrlp.velEstimate",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -6212,10 +9828,6 @@ void proto_register_rrlp(void) {
{ "ganssTODFrac", "rrlp.ganssTODFrac",
FT_UINT32, BASE_DEC, NULL, 0,
"rrlp.INTEGER_0_16384", HFILL }},
- { &hf_rrlp_ganssTimeID_01,
- { "ganssTimeID", "rrlp.ganssTimeID",
- FT_UINT32, BASE_DEC, NULL, 0,
- "rrlp.INTEGER_0_3", HFILL }},
{ &hf_rrlp_posData,
{ "posData", "rrlp.posData",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -6240,10 +9852,18 @@ void proto_register_rrlp(void) {
{ "GANSS-MsrSetElement", "rrlp.GANSS_MsrSetElement",
FT_NONE, BASE_NONE, NULL, 0,
"rrlp.GANSS_MsrSetElement", HFILL }},
- { &hf_rrlp_deltaGNASSTOD,
- { "deltaGNASSTOD", "rrlp.deltaGNASSTOD",
+ { &hf_rrlp_deltaGANSSTOD,
+ { "deltaGANSSTOD", "rrlp.deltaGANSSTOD",
FT_UINT32, BASE_DEC, NULL, 0,
"rrlp.INTEGER_0_127", HFILL }},
+ { &hf_rrlp_ganss_MsrElementList,
+ { "ganss-MsrElementList", "rrlp.ganss_MsrElementList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfGANSS_MsrElement", HFILL }},
+ { &hf_rrlp_SeqOfGANSS_MsrElement_item,
+ { "GANSS-MsrElement", "rrlp.GANSS_MsrElement",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSS_MsrElement", HFILL }},
{ &hf_rrlp_ganss_SgnTypeList,
{ "ganss-SgnTypeList", "rrlp.ganss_SgnTypeList",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -6252,10 +9872,10 @@ void proto_register_rrlp(void) {
{ "GANSS-SgnTypeElement", "rrlp.GANSS_SgnTypeElement",
FT_NONE, BASE_NONE, NULL, 0,
"rrlp.GANSS_SgnTypeElement", HFILL }},
- { &hf_rrlp_ganssSignalID_02,
- { "ganssSignalID", "rrlp.ganssSignalID",
+ { &hf_rrlp_ganssCodePhaseAmbiguity,
+ { "ganssCodePhaseAmbiguity", "rrlp.ganssCodePhaseAmbiguity",
FT_UINT32, BASE_DEC, NULL, 0,
- "rrlp.INTEGER_0_15", HFILL }},
+ "rrlp.INTEGER_0_127", HFILL }},
{ &hf_rrlp_ganss_SgnList,
{ "ganss-SgnList", "rrlp.ganss_SgnList",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -6279,7 +9899,7 @@ void proto_register_rrlp(void) {
{ &hf_rrlp_integerCodePhase,
{ "integerCodePhase", "rrlp.integerCodePhase",
FT_UINT32, BASE_DEC, NULL, 0,
- "rrlp.INTEGER_0_63", HFILL }},
+ "rrlp.INTEGER_0_127", HFILL }},
{ &hf_rrlp_codePhaseRMSError,
{ "codePhaseRMSError", "rrlp.codePhaseRMSError",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -6288,6 +9908,78 @@ void proto_register_rrlp(void) {
{ "adr", "rrlp.adr",
FT_UINT32, BASE_DEC, NULL, 0,
"rrlp.INTEGER_0_33554431", HFILL }},
+ { &hf_rrlp_nonGANSSpositionMethods,
+ { "nonGANSSpositionMethods", "rrlp.nonGANSSpositionMethods",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.NonGANSSPositionMethods", HFILL }},
+ { &hf_rrlp_multipleMeasurementSets,
+ { "multipleMeasurementSets", "rrlp.multipleMeasurementSets",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.MultipleMeasurementSets", HFILL }},
+ { &hf_rrlp_GANSSPositionMethods_item,
+ { "GANSSPositionMethod", "rrlp.GANSSPositionMethod",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSPositionMethod", HFILL }},
+ { &hf_rrlp_gANSSPositioningMethodTypes,
+ { "gANSSPositioningMethodTypes", "rrlp.gANSSPositioningMethodTypes",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.GANSSPositioningMethodTypes", HFILL }},
+ { &hf_rrlp_gANSSSignals,
+ { "gANSSSignals", "rrlp.gANSSSignals",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.GANSSSignals", HFILL }},
+ { &hf_rrlp_sbasID_01,
+ { "sbasID", "rrlp.sbasID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.SBASID", HFILL }},
+ { &hf_rrlp_gpsAssistance,
+ { "gpsAssistance", "rrlp.gpsAssistance",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.GPSAssistance", HFILL }},
+ { &hf_rrlp_gANSSAssistanceSet,
+ { "gANSSAssistanceSet", "rrlp.gANSSAssistanceSet",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSAssistanceSet", HFILL }},
+ { &hf_rrlp_gANSSAdditionalAssistanceChoices,
+ { "gANSSAdditionalAssistanceChoices", "rrlp.gANSSAdditionalAssistanceChoices",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.GANSSAdditionalAssistanceChoices", HFILL }},
+ { &hf_rrlp_commonGANSSAssistance,
+ { "commonGANSSAssistance", "rrlp.commonGANSSAssistance",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.CommonGANSSAssistance", HFILL }},
+ { &hf_rrlp_specificGANSSAssistance,
+ { "specificGANSSAssistance", "rrlp.specificGANSSAssistance",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SpecificGANSSAssistance", HFILL }},
+ { &hf_rrlp_SpecificGANSSAssistance_item,
+ { "GANSSAssistanceForOneGANSS", "rrlp.GANSSAssistanceForOneGANSS",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSAssistanceForOneGANSS", HFILL }},
+ { &hf_rrlp_gANSSAssistance,
+ { "gANSSAssistance", "rrlp.gANSSAssistance",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.GANSSAssistance", HFILL }},
+ { &hf_rrlp_GANSSAdditionalAssistanceChoices_item,
+ { "GANSSAdditionalAssistanceChoicesForOneGANSS", "rrlp.GANSSAdditionalAssistanceChoicesForOneGANSS",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSAdditionalAssistanceChoicesForOneGANSS", HFILL }},
+ { &hf_rrlp_ganssClockModelChoice,
+ { "ganssClockModelChoice", "rrlp.ganssClockModelChoice",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.GANSSModelID", HFILL }},
+ { &hf_rrlp_gannsOrbitModelChoice,
+ { "gannsOrbitModelChoice", "rrlp.gannsOrbitModelChoice",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.GANSSModelID", HFILL }},
+ { &hf_rrlp_ganssAlmanacModelChoice,
+ { "ganssAlmanacModelChoice", "rrlp.ganssAlmanacModelChoice",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.GANSSModelID", HFILL }},
+ { &hf_rrlp_ganssAdditionalUTCModelChoice,
+ { "ganssAdditionalUTCModelChoice", "rrlp.ganssAdditionalUTCModelChoice",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "rrlp.GANSSModelID", HFILL }},
{ &hf_rrlp_GANSSPositioningMethod_gps,
{ "gps", "rrlp.gps",
FT_BOOLEAN, 8, NULL, 0x80,
@@ -6296,6 +9988,22 @@ void proto_register_rrlp(void) {
{ "galileo", "rrlp.galileo",
FT_BOOLEAN, 8, NULL, 0x40,
NULL, HFILL }},
+ { &hf_rrlp_GANSSPositioningMethod_sbas,
+ { "sbas", "rrlp.sbas",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSPositioningMethod_modernizedGPS,
+ { "modernizedGPS", "rrlp.modernizedGPS",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSPositioningMethod_qzss,
+ { "qzss", "rrlp.qzss",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSPositioningMethod_glonass,
+ { "glonass", "rrlp.glonass",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
{ &hf_rrlp_PositionData_e_otd,
{ "e-otd", "rrlp.e-otd",
FT_BOOLEAN, 8, NULL, 0x80,
@@ -6308,6 +10016,258 @@ void proto_register_rrlp(void) {
{ "galileo", "rrlp.galileo",
FT_BOOLEAN, 8, NULL, 0x20,
NULL, HFILL }},
+ { &hf_rrlp_PositionData_sbas,
+ { "sbas", "rrlp.sbas",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_rrlp_PositionData_modernizedGPS,
+ { "modernizedGPS", "rrlp.modernizedGPS",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_rrlp_PositionData_qzss,
+ { "qzss", "rrlp.qzss",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_rrlp_PositionData_glonass,
+ { "glonass", "rrlp.glonass",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_rrlp_NonGANSSPositionMethods_msAssistedEOTD,
+ { "msAssistedEOTD", "rrlp.msAssistedEOTD",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_rrlp_NonGANSSPositionMethods_msBasedEOTD,
+ { "msBasedEOTD", "rrlp.msBasedEOTD",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_rrlp_NonGANSSPositionMethods_msAssistedGPS,
+ { "msAssistedGPS", "rrlp.msAssistedGPS",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_rrlp_NonGANSSPositionMethods_msBasedGPS,
+ { "msBasedGPS", "rrlp.msBasedGPS",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_rrlp_NonGANSSPositionMethods_standaloneGPS,
+ { "standaloneGPS", "rrlp.standaloneGPS",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSPositioningMethodTypes_msAssisted,
+ { "msAssisted", "rrlp.msAssisted",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSPositioningMethodTypes_msBased,
+ { "msBased", "rrlp.msBased",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSPositioningMethodTypes_standalone,
+ { "standalone", "rrlp.standalone",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSSignals_signal1,
+ { "signal1", "rrlp.signal1",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSSignals_signal2,
+ { "signal2", "rrlp.signal2",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSSignals_signal3,
+ { "signal3", "rrlp.signal3",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSSignals_signal4,
+ { "signal4", "rrlp.signal4",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSSignals_signal5,
+ { "signal5", "rrlp.signal5",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSSignals_signal6,
+ { "signal6", "rrlp.signal6",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSSignals_signal7,
+ { "signal7", "rrlp.signal7",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSSignals_signal8,
+ { "signal8", "rrlp.signal8",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }},
+ { &hf_rrlp_SBASID_waas,
+ { "waas", "rrlp.waas",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_rrlp_SBASID_egnos,
+ { "egnos", "rrlp.egnos",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_rrlp_SBASID_masas,
+ { "masas", "rrlp.masas",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_rrlp_SBASID_gagan,
+ { "gagan", "rrlp.gagan",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_rrlp_MultipleMeasurementSets_eotd,
+ { "eotd", "rrlp.eotd",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_rrlp_MultipleMeasurementSets_gps,
+ { "gps", "rrlp.gps",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_rrlp_MultipleMeasurementSets_ganss,
+ { "ganss", "rrlp.ganss",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_rrlp_GPSAssistance_almanac,
+ { "almanac", "rrlp.almanac",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_rrlp_GPSAssistance_uTCmodel,
+ { "uTCmodel", "rrlp.uTCmodel",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_rrlp_GPSAssistance_ionosphericModel,
+ { "ionosphericModel", "rrlp.ionosphericModel",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_rrlp_GPSAssistance_navigationmodel,
+ { "navigationmodel", "rrlp.navigationmodel",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_rrlp_GPSAssistance_dGPScorrections,
+ { "dGPScorrections", "rrlp.dGPScorrections",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_rrlp_GPSAssistance_referenceLocation,
+ { "referenceLocation", "rrlp.referenceLocation",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_rrlp_GPSAssistance_referenceTime,
+ { "referenceTime", "rrlp.referenceTime",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_rrlp_GPSAssistance_acquisitionAssistance,
+ { "acquisitionAssistance", "rrlp.acquisitionAssistance",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }},
+ { &hf_rrlp_GPSAssistance_realTimeIntegrity,
+ { "realTimeIntegrity", "rrlp.realTimeIntegrity",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_rrlp_GPSAssistance_ephemerisExtension,
+ { "ephemerisExtension", "rrlp.ephemerisExtension",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_rrlp_GPSAssistance_ephemerisExtensionCheck,
+ { "ephemerisExtensionCheck", "rrlp.ephemerisExtensionCheck",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_rrlp_CommonGANSSAssistance_referenceTime,
+ { "referenceTime", "rrlp.referenceTime",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_rrlp_CommonGANSSAssistance_referenceLocation,
+ { "referenceLocation", "rrlp.referenceLocation",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_rrlp_CommonGANSSAssistance_ionosphericModel,
+ { "ionosphericModel", "rrlp.ionosphericModel",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_rrlp_CommonGANSSAssistance_addIonosphericModel,
+ { "addIonosphericModel", "rrlp.addIonosphericModel",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_rrlp_CommonGANSSAssistance_earthOrientationParam,
+ { "earthOrientationParam", "rrlp.earthOrientationParam",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSAssistance_realTimeIntegrity,
+ { "realTimeIntegrity", "rrlp.realTimeIntegrity",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSAssistance_differentialCorrections,
+ { "differentialCorrections", "rrlp.differentialCorrections",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSAssistance_almanac,
+ { "almanac", "rrlp.almanac",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSAssistance_referenceMeasurementInformation,
+ { "referenceMeasurementInformation", "rrlp.referenceMeasurementInformation",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSAssistance_navigationModel,
+ { "navigationModel", "rrlp.navigationModel",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSAssistance_timeModelGNSS_UTC,
+ { "timeModelGNSS-UTC", "rrlp.timeModelGNSS-UTC",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSAssistance_timeModelGNSS_GNSS,
+ { "timeModelGNSS-GNSS", "rrlp.timeModelGNSS-GNSS",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSAssistance_databitassistance,
+ { "databitassistance", "rrlp.databitassistance",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSAssistance_ephemerisExtension,
+ { "ephemerisExtension", "rrlp.ephemerisExtension",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSAssistance_ephemerisExtensionCheck,
+ { "ephemerisExtensionCheck", "rrlp.ephemerisExtensionCheck",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSAssistance_addUTCmodel,
+ { "addUTCmodel", "rrlp.addUTCmodel",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSAssistance_auxiliaryInformation,
+ { "auxiliaryInformation", "rrlp.auxiliaryInformation",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSModelID_model1,
+ { "model1", "rrlp.model1",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSModelID_model2,
+ { "model2", "rrlp.model2",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSModelID_model3,
+ { "model3", "rrlp.model3",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSModelID_model4,
+ { "model4", "rrlp.model4",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSModelID_model5,
+ { "model5", "rrlp.model5",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSModelID_model6,
+ { "model6", "rrlp.model6",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSModelID_model7,
+ { "model7", "rrlp.model7",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_rrlp_GANSSModelID_model8,
+ { "model8", "rrlp.model8",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }},
/*--- End of included file: packet-rrlp-hfarr.c ---*/
#line 80 "packet-rrlp-template.c"
@@ -6329,6 +10289,8 @@ void proto_register_rrlp(void) {
&ett_rrlp_MsrPosition_Rsp,
&ett_rrlp_AssistanceData,
&ett_rrlp_ProtocolError,
+ &ett_rrlp_PosCapability_Req,
+ &ett_rrlp_PosCapability_Rsp,
&ett_rrlp_PositionInstruct,
&ett_rrlp_MethodType,
&ett_rrlp_AccuracyOpt,
@@ -6433,6 +10395,8 @@ void proto_register_rrlp(void) {
&ett_rrlp_GANSSIonosphericModel,
&ett_rrlp_GANSSIonosphereModel,
&ett_rrlp_GANSSIonoStormFlags,
+ &ett_rrlp_GANSSAddIonosphericModel,
+ &ett_rrlp_GANSSEarthOrientParam,
&ett_rrlp_SeqOfGANSSTimeModel,
&ett_rrlp_GANSSTimeModelElement,
&ett_rrlp_GANSSDiffCorrections,
@@ -6445,13 +10409,25 @@ void proto_register_rrlp(void) {
&ett_rrlp_GANSSSatelliteElement,
&ett_rrlp_GANSSOrbitModel,
&ett_rrlp_NavModel_KeplerianSet,
+ &ett_rrlp_NavModel_NAVKeplerianSet,
+ &ett_rrlp_NavModel_CNAVKeplerianSet,
+ &ett_rrlp_NavModel_GLONASSecef,
+ &ett_rrlp_NavModel_SBASecef,
&ett_rrlp_GANSSClockModel,
&ett_rrlp_SeqOfStandardClockModelElement,
&ett_rrlp_StandardClockModelElement,
+ &ett_rrlp_NAVclockModel,
+ &ett_rrlp_CNAVclockModel,
+ &ett_rrlp_GLONASSclockModel,
+ &ett_rrlp_SBASclockModel,
&ett_rrlp_GANSSRealTimeIntegrity,
&ett_rrlp_SeqOfBadSignalElement,
&ett_rrlp_BadSignalElement,
&ett_rrlp_GANSSDataBitAssist,
+ &ett_rrlp_SeqOfGanssDataBitsElement,
+ &ett_rrlp_GanssDataBitsElement,
+ &ett_rrlp_Seq_OfGANSSDataBitsSgn,
+ &ett_rrlp_GANSSDataBitsSgnElement,
&ett_rrlp_SeqOf_GANSSDataBits,
&ett_rrlp_GANSSRefMeasurementAssist,
&ett_rrlp_SeqOfGANSSRefMeasurementElement,
@@ -6461,7 +10437,57 @@ void proto_register_rrlp(void) {
&ett_rrlp_SeqOfGANSSAlmanacElement,
&ett_rrlp_GANSSAlmanacElement,
&ett_rrlp_Almanac_KeplerianSet,
+ &ett_rrlp_Almanac_NAVKeplerianSet,
+ &ett_rrlp_Almanac_ReducedKeplerianSet,
+ &ett_rrlp_Almanac_MidiAlmanacSet,
+ &ett_rrlp_Almanac_GlonassAlmanacSet,
+ &ett_rrlp_Almanac_ECEFsbasAlmanacSet,
&ett_rrlp_GANSSUTCModel,
+ &ett_rrlp_GANSSEphemerisExtension,
+ &ett_rrlp_GANSSEphemerisExtensionHeader,
+ &ett_rrlp_GANSSEphemerisExtensionTime,
+ &ett_rrlp_ReferenceNavModel,
+ &ett_rrlp_SeqOfGANSSRefOrbit,
+ &ett_rrlp_GANSSReferenceOrbit,
+ &ett_rrlp_GANSSEphemerisDeltaMatrix,
+ &ett_rrlp_GANSSEphemerisDeltaEpoch,
+ &ett_rrlp_GANSSDeltaEpochHeader,
+ &ett_rrlp_GANSSDeltaElementList,
+ &ett_rrlp_GANSSEphemerisDeltaBitSizes,
+ &ett_rrlp_GANSSEphemerisDeltaScales,
+ &ett_rrlp_GANSSEphemerisExtensionCheck,
+ &ett_rrlp_GANSSSatEventsInfo,
+ &ett_rrlp_GANSSAddUTCModel,
+ &ett_rrlp_UTCmodelSet2,
+ &ett_rrlp_UTCmodelSet3,
+ &ett_rrlp_UTCmodelSet4,
+ &ett_rrlp_GANSSAuxiliaryInformation,
+ &ett_rrlp_GANSS_ID1,
+ &ett_rrlp_GANSS_ID1_element,
+ &ett_rrlp_GANSS_ID3,
+ &ett_rrlp_GANSS_ID3_element,
+ &ett_rrlp_GANSSDiffCorrectionsValidityPeriod,
+ &ett_rrlp_DGANSSExtensionSgnTypeElement,
+ &ett_rrlp_SeqOfDGANSSExtensionSgnElement,
+ &ett_rrlp_DGANSSExtensionSgnElement,
+ &ett_rrlp_Add_GPS_AssistData,
+ &ett_rrlp_Add_GPS_ControlHeader,
+ &ett_rrlp_GPSClockModel,
+ &ett_rrlp_GPSEphemerisExtension,
+ &ett_rrlp_GPSEphemerisExtensionHeader,
+ &ett_rrlp_GPSEphemerisExtensionTime,
+ &ett_rrlp_SeqOfGPSRefOrbit,
+ &ett_rrlp_GPSReferenceOrbit,
+ &ett_rrlp_GPSEphemerisDeltaMatrix,
+ &ett_rrlp_GPSEphemerisDeltaEpoch,
+ &ett_rrlp_GPSDeltaEpochHeader,
+ &ett_rrlp_GPSDeltaElementList,
+ &ett_rrlp_GPSEphemerisDeltaBitSizes,
+ &ett_rrlp_GPSEphemerisDeltaScales,
+ &ett_rrlp_GPSEphemerisExtensionCheck,
+ &ett_rrlp_GPSSatEventsInfo,
+ &ett_rrlp_DGPSCorrectionsValidityPeriod,
+ &ett_rrlp_DGPSExtensionSatElement,
&ett_rrlp_Rel_7_MsrPosition_Rsp_Extension,
&ett_rrlp_GANSSLocationInfo,
&ett_rrlp_PositionData,
@@ -6469,11 +10495,32 @@ void proto_register_rrlp(void) {
&ett_rrlp_GANSSMeasureInfo,
&ett_rrlp_SeqOfGANSS_MsrSetElement,
&ett_rrlp_GANSS_MsrSetElement,
+ &ett_rrlp_SeqOfGANSS_MsrElement,
+ &ett_rrlp_GANSS_MsrElement,
&ett_rrlp_SeqOfGANSS_SgnTypeElement,
&ett_rrlp_GANSS_SgnTypeElement,
&ett_rrlp_SeqOfGANSS_SgnElement,
&ett_rrlp_GANSS_SgnElement,
&ett_rrlp_Rel7_AssistanceData_Extension,
+ &ett_rrlp_PosCapabilities,
+ &ett_rrlp_NonGANSSPositionMethods,
+ &ett_rrlp_GANSSPositionMethods,
+ &ett_rrlp_GANSSPositionMethod,
+ &ett_rrlp_GANSSPositioningMethodTypes,
+ &ett_rrlp_GANSSSignals,
+ &ett_rrlp_SBASID,
+ &ett_rrlp_MultipleMeasurementSets,
+ &ett_rrlp_AssistanceSupported,
+ &ett_rrlp_GPSAssistance,
+ &ett_rrlp_GANSSAssistanceSet,
+ &ett_rrlp_CommonGANSSAssistance,
+ &ett_rrlp_SpecificGANSSAssistance,
+ &ett_rrlp_GANSSAssistanceForOneGANSS,
+ &ett_rrlp_GANSSAssistance,
+ &ett_rrlp_GANSSAdditionalAssistanceChoices,
+ &ett_rrlp_GANSSAdditionalAssistanceChoicesForOneGANSS,
+ &ett_rrlp_GANSSModelID,
+ &ett_rrlp_AssistanceNeeded,
/*--- End of included file: packet-rrlp-ettarr.c ---*/
#line 86 "packet-rrlp-template.c"