diff options
author | Tomas Kukosa <tomas.kukosa@siemens.com> | 2007-05-18 12:53:55 +0000 |
---|---|---|
committer | Tomas Kukosa <tomas.kukosa@siemens.com> | 2007-05-18 12:53:55 +0000 |
commit | 16c10108948a362fab61513c2d54ad182b7aa119 (patch) | |
tree | db96ac560e428fd266cb024e226051d956dbcda3 /epan/dissectors/packet-rrlp.c | |
parent | 16c4aa8e387ade8dd72213b879206b858e6d1ca5 (diff) |
RRLP updated to 3GPP TS 44.031 V7.4.0 (2007-03)
svn path=/trunk/; revision=21825
Diffstat (limited to 'epan/dissectors/packet-rrlp.c')
-rw-r--r-- | epan/dissectors/packet-rrlp.c | 2413 |
1 files changed, 2361 insertions, 52 deletions
diff --git a/epan/dissectors/packet-rrlp.c b/epan/dissectors/packet-rrlp.c index dfebdf9f6a..bb39e4809c 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 -u -e -p rrlp -c rrlp.cnf -s packet-rrlp-template rrlp.asn */ +/* ../../tools/asn2wrs.py -p rrlp -c rrlp.cnf -s packet-rrlp-template RRLP-Messages.asn RRLP-Components.asn ../gsmmap/MAP-ExtensionDataTypes.asn ../gsmmap/MAP-LCS-DataTypes.asn */ /* Input file: packet-rrlp-template.c */ @@ -46,8 +46,6 @@ #include <stdio.h> #include <string.h> -#include "packet-rrlp.h" - #include "packet-ber.h" #include "packet-per.h" #include "packet-gsm_map.h" @@ -89,6 +87,7 @@ static int hf_rrlp_gps_AssistData = -1; /* GPS_AssistData */ static int hf_rrlp_extensionContainer = -1; /* ExtensionContainer */ static int hf_rrlp_rel98_MsrPosition_Req_extension = -1; /* Rel98_MsrPosition_Req_Extension */ static int hf_rrlp_rel5_MsrPosition_Req_extension = -1; /* Rel5_MsrPosition_Req_Extension */ +static int hf_rrlp_rel7_MsrPosition_Req_extension = -1; /* Rel7_MsrPosition_Req_Extension */ static int hf_rrlp_multipleSets = -1; /* MultipleSets */ static int hf_rrlp_referenceIdentity = -1; /* ReferenceIdentity */ static int hf_rrlp_otd_MeasureInfo = -1; /* OTD_MeasureInfo */ @@ -97,9 +96,11 @@ static int hf_rrlp_gps_MeasureInfo = -1; /* GPS_MeasureInfo */ static int hf_rrlp_locationError = -1; /* LocationError */ static int hf_rrlp_rel_98_MsrPosition_Rsp_Extension = -1; /* Rel_98_MsrPosition_Rsp_Extension */ static int hf_rrlp_rel_5_MsrPosition_Rsp_Extension = -1; /* Rel_5_MsrPosition_Rsp_Extension */ +static int hf_rrlp_rel_7_MsrPosition_Rsp_Extension = -1; /* Rel_7_MsrPosition_Rsp_Extension */ static int hf_rrlp_moreAssDataToBeSent = -1; /* MoreAssDataToBeSent */ static int hf_rrlp_rel98_AssistanceData_Extension = -1; /* Rel98_AssistanceData_Extension */ static int hf_rrlp_rel5_AssistanceData_Extension = -1; /* Rel5_AssistanceData_Extension */ +static int hf_rrlp_rel7_AssistanceData_Extension = -1; /* Rel7_AssistanceData_Extension */ static int hf_rrlp_errorCause = -1; /* ErrorCodes */ static int hf_rrlp_rel_5_ProtocolError_Extension = -1; /* Rel_5_ProtocolError_Extension */ static int hf_rrlp_methodType = -1; /* MethodType */ @@ -185,6 +186,7 @@ static int hf_rrlp_pseuRangeRMSErr = -1; /* INTEGER_0_63 */ static int hf_rrlp_locErrorReason = -1; /* LocErrorReason */ static int hf_rrlp_additionalAssistanceData = -1; /* AdditionalAssistanceData */ static int hf_rrlp_gpsAssistanceData = -1; /* GPSAssistanceData */ +static int hf_rrlp_ganssAssistanceData = -1; /* GANSSAssistanceData */ static int hf_rrlp_controlHeader = -1; /* ControlHeader */ static int hf_rrlp_referenceTime = -1; /* ReferenceTime */ static int hf_rrlp_refLocation = -1; /* RefLocation */ @@ -334,9 +336,177 @@ 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 */ static int hf_rrlp_transaction_ID = -1; /* INTEGER_0_262143 */ +static int hf_rrlp_velocityRequested = -1; /* NULL */ +static int hf_rrlp_ganssPositionMethod = -1; /* GANSSPositioningMethod */ +static int hf_rrlp_ganss_AssistData = -1; /* GANSS_AssistData */ +static int hf_rrlp_ganssCarrierPhaseMeasurementRequest = -1; /* NULL */ +static int hf_rrlp_ganssTODGSMTimeAssociationMeasurementRequest = -1; /* NULL */ +static int hf_rrlp_requiredResponseTime = -1; /* RequiredResponseTime */ +static int hf_rrlp_ganss_controlHeader = -1; /* GANSS_ControlHeader */ +static int hf_rrlp_ganssCommonAssistData = -1; /* GANSSCommonAssistData */ +static int hf_rrlp_ganssGenericAssistDataList = -1; /* SeqOfGANSSGenericAssistDataElement */ +static int hf_rrlp_ganssReferenceTime = -1; /* GANSSReferenceTime */ +static int hf_rrlp_ganssRefLocation = -1; /* GANSSRefLocation */ +static int hf_rrlp_ganssIonosphericModel = -1; /* GANSSIonosphericModel */ +static int hf_rrlp_SeqOfGANSSGenericAssistDataElement_item = -1; /* GANSSGenericAssistDataElement */ +static int hf_rrlp_ganssID = -1; /* INTEGER_0_7 */ +static int hf_rrlp_ganssTimeModel = -1; /* SeqOfGANSSTimeModel */ +static int hf_rrlp_ganssDiffCorrections = -1; /* GANSSDiffCorrections */ +static int hf_rrlp_ganssNavigationModel = -1; /* GANSSNavModel */ +static int hf_rrlp_ganssRealTimeIntegrity = -1; /* GANSSRealTimeIntegrity */ +static int hf_rrlp_ganssDataBitAssist = -1; /* GANSSDataBitAssist */ +static int hf_rrlp_ganssRefMeasurementAssist = -1; /* GANSSRefMeasurementAssist */ +static int hf_rrlp_ganssAlmanacModel = -1; /* GANSSAlmanacModel */ +static int hf_rrlp_ganssUTCModel = -1; /* GANSSUTCModel */ +static int hf_rrlp_ganssRefTimeInfo = -1; /* GANSSRefTimeInfo */ +static int hf_rrlp_ganssTOD_GSMTimeAssociation = -1; /* GANSSTOD_GSMTimeAssociation */ +static int hf_rrlp_ganssDay = -1; /* INTEGER_0_8191 */ +static int hf_rrlp_ganssTOD = -1; /* GANSSTOD */ +static int hf_rrlp_ganssTODUncertainty = -1; /* GANSSTODUncertainty */ +static int hf_rrlp_ganssTimeID = -1; /* INTEGER_0_7 */ +static int hf_rrlp_frameDrift = -1; /* FrameDrift */ +static int hf_rrlp_ganssIonoModel = -1; /* GANSSIonosphereModel */ +static int hf_rrlp_ganssIonoStormFlags = -1; /* GANSSIonoStormFlags */ +static int hf_rrlp_ai0 = -1; /* INTEGER_0_4095 */ +static int hf_rrlp_ai1 = -1; /* INTEGER_0_4095 */ +static int hf_rrlp_ai2 = -1; /* INTEGER_0_4095 */ +static int hf_rrlp_ionoStormFlag1 = -1; /* INTEGER_0_1 */ +static int hf_rrlp_ionoStormFlag2 = -1; /* INTEGER_0_1 */ +static int hf_rrlp_ionoStormFlag3 = -1; /* INTEGER_0_1 */ +static int hf_rrlp_ionoStormFlag4 = -1; /* INTEGER_0_1 */ +static int hf_rrlp_ionoStormFlag5 = -1; /* INTEGER_0_1 */ +static int hf_rrlp_SeqOfGANSSTimeModel_item = -1; /* GANSSTimeModelElement */ +static int hf_rrlp_ganssTimeModelRefTime = -1; /* INTEGER_0_65535 */ +static int hf_rrlp_tA0 = -1; /* TA0 */ +static int hf_rrlp_tA1 = -1; /* TA1 */ +static int hf_rrlp_tA2 = -1; /* TA2 */ +static int hf_rrlp_gnssTOID = -1; /* INTEGER_0_7 */ +static int hf_rrlp_weekNumber = -1; /* INTEGER_0_8191 */ +static int hf_rrlp_dganssRefTime = -1; /* INTEGER_0_119 */ +static int hf_rrlp_sgnTypeList = -1; /* SeqOfSgnTypeElement */ +static int hf_rrlp_SeqOfSgnTypeElement_item = -1; /* SgnTypeElement */ +static int hf_rrlp_ganssSignalID = -1; /* GANSSSignalID */ +static int hf_rrlp_ganssStatusHealth = -1; /* INTEGER_0_7 */ +static int hf_rrlp_dganssSgnList = -1; /* SeqOfDGANSSSgnElement */ +static int hf_rrlp_SeqOfDGANSSSgnElement_item = -1; /* DGANSSSgnElement */ +static int hf_rrlp_svID = -1; /* SVID */ +static int hf_rrlp_iod = -1; /* INTEGER_0_1023 */ +static int hf_rrlp_nonBroadcastIndFlag = -1; /* INTEGER_0_1 */ +static int hf_rrlp_toeMSB = -1; /* INTEGER_0_31 */ +static int hf_rrlp_eMSB = -1; /* INTEGER_0_127 */ +static int hf_rrlp_sqrtAMBS = -1; /* INTEGER_0_63 */ +static int hf_rrlp_ganssSatelliteList = -1; /* SeqOfGANSSSatelliteElement */ +static int hf_rrlp_SeqOfGANSSSatelliteElement_item = -1; /* GANSSSatelliteElement */ +static int hf_rrlp_svHealth = -1; /* INTEGER_M7_13 */ +static int hf_rrlp_ganssClockModel = -1; /* GANSSClockModel */ +static int hf_rrlp_ganssOrbitModel = -1; /* GANSSOrbitModel */ +static int hf_rrlp_keplerianSet = -1; /* NavModel_KeplerianSet */ +static int hf_rrlp_keplerToeLSB = -1; /* INTEGER_0_511 */ +static int hf_rrlp_keplerW = -1; /* INTEGER_M2147483648_2147483647 */ +static int hf_rrlp_keplerDeltaN = -1; /* INTEGER_M32768_32767 */ +static int hf_rrlp_keplerM0 = -1; /* INTEGER_M2147483648_2147483647 */ +static int hf_rrlp_keplerOmegaDot = -1; /* INTEGER_M8388608_8388607 */ +static int hf_rrlp_keplerELSB = -1; /* INTEGER_0_33554431 */ +static int hf_rrlp_keplerIDot = -1; /* INTEGER_M8192_8191 */ +static int hf_rrlp_keplerAPowerHalfLSB = -1; /* INTEGER_0_67108863 */ +static int hf_rrlp_keplerI0 = -1; /* INTEGER_M2147483648_2147483647 */ +static int hf_rrlp_keplerOmega0 = -1; /* INTEGER_M2147483648_2147483647 */ +static int hf_rrlp_keplerCrs = -1; /* INTEGER_M32768_32767 */ +static int hf_rrlp_keplerCis = -1; /* INTEGER_M32768_32767 */ +static int hf_rrlp_keplerCus = -1; /* INTEGER_M32768_32767 */ +static int hf_rrlp_keplerCrc = -1; /* INTEGER_M32768_32767 */ +static int hf_rrlp_keplerCic = -1; /* INTEGER_M32768_32767 */ +static int hf_rrlp_keplerCuc = -1; /* INTEGER_M32768_32767 */ +static int hf_rrlp_standardClockModelList = -1; /* SeqOfStandardClockModelElement */ +static int hf_rrlp_SeqOfStandardClockModelElement_item = -1; /* StandardClockModelElement */ +static int hf_rrlp_stanClockTocLSB = -1; /* INTEGER_0_511 */ +static int hf_rrlp_stanClockAF2 = -1; /* INTEGER_M2048_2047 */ +static int hf_rrlp_stanClockAF1 = -1; /* INTEGER_M131072_131071 */ +static int hf_rrlp_stanClockAF0 = -1; /* INTEGER_M134217728_134217727 */ +static int hf_rrlp_stanClockTgd = -1; /* INTEGER_M512_511 */ +static int hf_rrlp_stanModelID = -1; /* INTEGER_0_1 */ +static int hf_rrlp_ganssBadSignalList = -1; /* SeqOfBadSignalElement */ +static int hf_rrlp_SeqOfBadSignalElement_item = -1; /* BadSignalElement */ +static int hf_rrlp_badSVID = -1; /* SVID */ +static int hf_rrlp_badSignalID = -1; /* INTEGER_0_3 */ +static int hf_rrlp_ganssTOD1 = -1; /* INTEGER_0_59 */ +static int hf_rrlp_ganssDataTypeID = -1; /* INTEGER_0_2 */ +static int hf_rrlp_ganssDataBits = -1; /* SeqOf_GANSSDataBits */ +static int hf_rrlp_SeqOf_GANSSDataBits_item = -1; /* GANSSDataBit */ +static int hf_rrlp_ganssSignalID1 = -1; /* INTEGER_0_3 */ +static int hf_rrlp_ganssRefMeasAssitList = -1; /* SeqOfGANSSRefMeasurementElement */ +static int hf_rrlp_SeqOfGANSSRefMeasurementElement_item = -1; /* GANSSRefMeasurementElement */ +static int hf_rrlp_additionalDoppler = -1; /* AdditionalDopplerFields */ +static int hf_rrlp_intCodePhase1 = -1; /* INTEGER_0_127 */ +static int hf_rrlp_codePhaseSearchWindow1 = -1; /* INTEGER_0_31 */ +static int hf_rrlp_additionalAngle = -1; /* AddionalAngleFields */ +static int hf_rrlp_dopplerUncertainty1 = -1; /* INTEGER_0_4 */ +static int hf_rrlp_weekNumber1 = -1; /* INTEGER_0_255 */ +static int hf_rrlp_svIDMask = -1; /* SVIDMASK */ +static int hf_rrlp_toa = -1; /* INTEGER_0_255 */ +static int hf_rrlp_ioda = -1; /* INTEGER_0_3 */ +static int hf_rrlp_ganssAlmanacList = -1; /* SeqOfGANSSAlmanacElement */ +static int hf_rrlp_SeqOfGANSSAlmanacElement_item = -1; /* GANSSAlmanacElement */ +static int hf_rrlp_keplerianAlmanacSet = -1; /* Almanac_KeplerianSet */ +static int hf_rrlp_kepAlmanacE = -1; /* INTEGER_0_2047 */ +static int hf_rrlp_kepAlmanacDeltaI = -1; /* INTEGER_M1024_1023 */ +static int hf_rrlp_kepAlmanacOmegaDot = -1; /* INTEGER_M1024_1023 */ +static int hf_rrlp_kepSVHealth = -1; /* INTEGER_0_15 */ +static int hf_rrlp_kepAlmanacAPowerHalf = -1; /* INTEGER_M65536_65535 */ +static int hf_rrlp_kepAlmanacOmega0 = -1; /* INTEGER_M32768_32767 */ +static int hf_rrlp_kepAlmanacW = -1; /* INTEGER_M32768_32767 */ +static int hf_rrlp_kepAlmanacM0 = -1; /* INTEGER_M32768_32767 */ +static int hf_rrlp_kepAlmanacAF0 = -1; /* INTEGER_M8192_8191 */ +static int hf_rrlp_kepAlmanacAF1 = -1; /* INTEGER_M1024_1023 */ +static int hf_rrlp_ganssUtcA1 = -1; /* INTEGER_M8388608_8388607 */ +static int hf_rrlp_ganssUtcA0 = -1; /* INTEGER_M2147483648_2147483647 */ +static int hf_rrlp_ganssUtcTot = -1; /* INTEGER_0_255 */ +static int hf_rrlp_ganssUtcWNt = -1; /* INTEGER_0_255 */ +static int hf_rrlp_ganssUtcDeltaTls = -1; /* INTEGER_M128_127 */ +static int hf_rrlp_ganssUtcWNlsf = -1; /* INTEGER_0_255 */ +static int hf_rrlp_ganssUtcDN = -1; /* INTEGER_M128_127 */ +static int hf_rrlp_ganssUtcDeltaTlsf = -1; /* INTEGER_M128_127 */ +static int hf_rrlp_velEstimate = -1; /* VelocityEstimate */ +static int hf_rrlp_ganssLocationInfo = -1; /* GANSSLocationInfo */ +static int hf_rrlp_ganssMeasureInfo = -1; /* GANSSMeasureInfo */ +static int hf_rrlp_referenceFrame = -1; /* ReferenceFrame */ +static int hf_rrlp_ganssTODm = -1; /* GANSSTODm */ +static int hf_rrlp_ganssTODFrac = -1; /* INTEGER_0_16384 */ +static int hf_rrlp_ganssTimeID1 = -1; /* INTEGER_0_3 */ +static int hf_rrlp_posData = -1; /* PositionData */ +static int hf_rrlp_stationaryIndication = -1; /* INTEGER_0_1 */ +static int hf_rrlp_referenceFN = -1; /* INTEGER_0_65535 */ +static int hf_rrlp_referenceFNMSB = -1; /* INTEGER_0_63 */ +static int hf_rrlp_ganssMsrSetList = -1; /* SeqOfGANSS_MsrSetElement */ +static int hf_rrlp_SeqOfGANSS_MsrSetElement_item = -1; /* GANSS_MsrSetElement */ +static int hf_rrlp_deltaGNASSTOD = -1; /* INTEGER_0_127 */ +static int hf_rrlp_ganss_SgnTypeList = -1; /* SeqOfGANSS_SgnTypeElement */ +static int hf_rrlp_SeqOfGANSS_SgnTypeElement_item = -1; /* GANSS_SgnTypeElement */ +static int hf_rrlp_ganssSignalID2 = -1; /* INTEGER_0_15 */ +static int hf_rrlp_ganss_SgnList = -1; /* SeqOfGANSS_SgnElement */ +static int hf_rrlp_SeqOfGANSS_SgnElement_item = -1; /* GANSS_SgnElement */ +static int hf_rrlp_mpathDet = -1; /* MpathIndic */ +static int hf_rrlp_carrierQualityInd = -1; /* INTEGER_0_3 */ +static int hf_rrlp_codePhase1 = -1; /* INTEGER_0_2097151 */ +static int hf_rrlp_integerCodePhase = -1; /* INTEGER_0_63 */ +static int hf_rrlp_codePhaseRMSError = -1; /* INTEGER_0_63 */ +static int hf_rrlp_adr = -1; /* INTEGER_0_33554431 */ +static int hf_rrlp_privateExtensionList = -1; /* PrivateExtensionList */ +static int hf_rrlp_pcs_Extensions = -1; /* PCS_Extensions */ +static int hf_rrlp_slr_Arg_PCS_Extensions = -1; /* SLR_Arg_PCS_Extensions */ +static int hf_rrlp_PrivateExtensionList_item = -1; /* PrivateExtension */ +static int hf_rrlp_extId = -1; /* OBJECT_IDENTIFIER */ +static int hf_rrlp_extType = -1; /* T_extType */ +static int hf_rrlp_na_ESRK_Request = -1; /* NULL */ +/* named bits */ +static int hf_rrlp_GANSSPositioningMethod_gps = -1; +static int hf_rrlp_GANSSPositioningMethod_galileo = -1; +static int hf_rrlp_PositionData_e_otd = -1; +static int hf_rrlp_PositionData_gps = -1; +static int hf_rrlp_PositionData_galileo = -1; /*--- End of included file: packet-rrlp-hf.c ---*/ -#line 66 "packet-rrlp-template.c" +#line 64 "packet-rrlp-template.c" /* Initialize the subtree pointers */ static gint ett_rrlp = -1; @@ -439,18 +609,82 @@ static gint ett_rrlp_Extended_reference = -1; static gint ett_rrlp_Rel5_MsrPosition_Req_Extension = -1; static gint ett_rrlp_Rel5_AssistanceData_Extension = -1; static gint ett_rrlp_Rel_5_ProtocolError_Extension = -1; +static gint ett_rrlp_Rel7_MsrPosition_Req_Extension = -1; +static gint ett_rrlp_GANSSPositioningMethod = -1; +static gint ett_rrlp_GANSS_AssistData = -1; +static gint ett_rrlp_GANSS_ControlHeader = -1; +static gint ett_rrlp_GANSSCommonAssistData = -1; +static gint ett_rrlp_SeqOfGANSSGenericAssistDataElement = -1; +static gint ett_rrlp_GANSSGenericAssistDataElement = -1; +static gint ett_rrlp_GANSSReferenceTime = -1; +static gint ett_rrlp_GANSSRefTimeInfo = -1; +static gint ett_rrlp_GANSSTOD_GSMTimeAssociation = -1; +static gint ett_rrlp_GANSSRefLocation = -1; +static gint ett_rrlp_GANSSIonosphericModel = -1; +static gint ett_rrlp_GANSSIonosphereModel = -1; +static gint ett_rrlp_GANSSIonoStormFlags = -1; +static gint ett_rrlp_SeqOfGANSSTimeModel = -1; +static gint ett_rrlp_GANSSTimeModelElement = -1; +static gint ett_rrlp_GANSSDiffCorrections = -1; +static gint ett_rrlp_SeqOfSgnTypeElement = -1; +static gint ett_rrlp_SgnTypeElement = -1; +static gint ett_rrlp_SeqOfDGANSSSgnElement = -1; +static gint ett_rrlp_DGANSSSgnElement = -1; +static gint ett_rrlp_GANSSNavModel = -1; +static gint ett_rrlp_SeqOfGANSSSatelliteElement = -1; +static gint ett_rrlp_GANSSSatelliteElement = -1; +static gint ett_rrlp_GANSSOrbitModel = -1; +static gint ett_rrlp_NavModel_KeplerianSet = -1; +static gint ett_rrlp_GANSSClockModel = -1; +static gint ett_rrlp_SeqOfStandardClockModelElement = -1; +static gint ett_rrlp_StandardClockModelElement = -1; +static gint ett_rrlp_GANSSRealTimeIntegrity = -1; +static gint ett_rrlp_SeqOfBadSignalElement = -1; +static gint ett_rrlp_BadSignalElement = -1; +static gint ett_rrlp_GANSSDataBitAssist = -1; +static gint ett_rrlp_SeqOf_GANSSDataBits = -1; +static gint ett_rrlp_GANSSRefMeasurementAssist = -1; +static gint ett_rrlp_SeqOfGANSSRefMeasurementElement = -1; +static gint ett_rrlp_GANSSRefMeasurementElement = -1; +static gint ett_rrlp_AdditionalDopplerFields = -1; +static gint ett_rrlp_GANSSAlmanacModel = -1; +static gint ett_rrlp_SeqOfGANSSAlmanacElement = -1; +static gint ett_rrlp_GANSSAlmanacElement = -1; +static gint ett_rrlp_Almanac_KeplerianSet = -1; +static gint ett_rrlp_GANSSUTCModel = -1; +static gint ett_rrlp_Rel_7_MsrPosition_Rsp_Extension = -1; +static gint ett_rrlp_GANSSLocationInfo = -1; +static gint ett_rrlp_PositionData = -1; +static gint ett_rrlp_ReferenceFrame = -1; +static gint ett_rrlp_GANSSMeasureInfo = -1; +static gint ett_rrlp_SeqOfGANSS_MsrSetElement = -1; +static gint ett_rrlp_GANSS_MsrSetElement = -1; +static gint ett_rrlp_SeqOfGANSS_SgnTypeElement = -1; +static gint ett_rrlp_GANSS_SgnTypeElement = -1; +static gint ett_rrlp_SeqOfGANSS_SgnElement = -1; +static gint ett_rrlp_GANSS_SgnElement = -1; +static gint ett_rrlp_Rel7_AssistanceData_Extension = -1; +static gint ett_rrlp_ExtensionContainer = -1; +static gint ett_rrlp_SLR_ArgExtensionContainer = -1; +static gint ett_rrlp_PrivateExtensionList = -1; +static gint ett_rrlp_PrivateExtension = -1; +static gint ett_rrlp_PCS_Extensions = -1; +static gint ett_rrlp_SLR_Arg_PCS_Extensions = -1; /*--- End of included file: packet-rrlp-ett.c ---*/ -#line 70 "packet-rrlp-template.c" +#line 68 "packet-rrlp-template.c" /* Include constants */ /*--- Included file: packet-rrlp-val.h ---*/ #line 1 "packet-rrlp-val.h" #define maxGPSAssistanceData 40 +#define maxGANSSAssistanceData 40 +#define maxNumOfPrivateExtensions 10 +#define maxExt_GeographicalInformation 20 /*--- End of included file: packet-rrlp-val.h ---*/ -#line 73 "packet-rrlp-template.c" +#line 71 "packet-rrlp-template.c" @@ -459,35 +693,6 @@ static gint ett_rrlp_Rel_5_ProtocolError_Extension = -1; static int -dissect_rrlp_Ext_GeographicalInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 21 "rrlp.cnf" - -tvbuff_t *parameter_tvb = NULL; - - offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, - 1, 20, ¶meter_tvb); - - - if(parameter_tvb) - dissect_geographical_description(parameter_tvb, actx->pinfo, tree); - - - return offset; -} - - - -static int -dissect_rrlp_ExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, - NO_BOUND, NO_BOUND, NULL); - - return offset; -} - - - -static int dissect_rrlp_INTEGER_0_7(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 7U, NULL, FALSE); @@ -662,6 +867,25 @@ dissect_rrlp_TimeSlotScheme(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int +dissect_rrlp_Ext_GeographicalInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 35 "rrlp.cnf" + +tvbuff_t *parameter_tvb = NULL; + + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 1, maxExt_GeographicalInformation, ¶meter_tvb); + + + if(parameter_tvb) + dissect_geographical_description(parameter_tvb, actx->pinfo, tree); + + + return offset; +} + + + +static int dissect_rrlp_BTSPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_rrlp_Ext_GeographicalInformation(tvb, offset, actx, tree, hf_index); @@ -1777,6 +2001,81 @@ dissect_rrlp_GPS_AssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int +dissect_rrlp_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL); + + return offset; +} + + + +static int +dissect_rrlp_T_extType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_open_type(tvb, offset, actx, tree, hf_index, NULL); + + return offset; +} + + +static const per_sequence_t PrivateExtension_sequence[] = { + { &hf_rrlp_extId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_OBJECT_IDENTIFIER }, + { &hf_rrlp_extType , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_T_extType }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_PrivateExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_PrivateExtension, PrivateExtension_sequence); + + return offset; +} + + +static const per_sequence_t PrivateExtensionList_sequence_of[1] = { + { &hf_rrlp_PrivateExtensionList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_PrivateExtension }, +}; + +static int +dissect_rrlp_PrivateExtensionList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_rrlp_PrivateExtensionList, PrivateExtensionList_sequence_of, + 1, maxNumOfPrivateExtensions); + + return offset; +} + + +static const per_sequence_t PCS_Extensions_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_PCS_Extensions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_PCS_Extensions, PCS_Extensions_sequence); + + return offset; +} + + +static const per_sequence_t ExtensionContainer_sequence[] = { + { &hf_rrlp_privateExtensionList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_PrivateExtensionList }, + { &hf_rrlp_pcs_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_PCS_Extensions }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_ExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_ExtensionContainer, ExtensionContainer_sequence); + + return offset; +} + + + +static int dissect_rrlp_ExpectedOTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 1250U, NULL, FALSE); @@ -1983,6 +2282,1001 @@ dissect_rrlp_Rel5_MsrPosition_Req_Extension(tvbuff_t *tvb _U_, int offset _U_, a } +static const asn_namedbit GANSSPositioningMethod_bits[] = { + { 0, &hf_rrlp_GANSSPositioningMethod_gps, -1, -1, "gps", NULL }, + { 1, &hf_rrlp_GANSSPositioningMethod_galileo, -1, -1, "galileo", NULL }, + { 0, NULL, 0, 0, NULL, NULL } +}; + +static int +dissect_rrlp_GANSSPositioningMethod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 2, 16, FALSE, NULL); + + return offset; +} + + + +static int +dissect_rrlp_INTEGER_0_8191(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 8191U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_rrlp_GANSSTOD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 86399U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_rrlp_GANSSTODUncertainty(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 127U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t GANSSRefTimeInfo_sequence[] = { + { &hf_rrlp_ganssDay , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_8191 }, + { &hf_rrlp_ganssTOD , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSTOD }, + { &hf_rrlp_ganssTODUncertainty, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSTODUncertainty }, + { &hf_rrlp_ganssTimeID , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_7 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSSRefTimeInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSRefTimeInfo, GANSSRefTimeInfo_sequence); + + return offset; +} + + + +static int +dissect_rrlp_FrameDrift(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + -64, 63U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t GANSSTOD_GSMTimeAssociation_sequence[] = { + { &hf_rrlp_bcchCarrier , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BCCHCarrier }, + { &hf_rrlp_bsic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BSIC }, + { &hf_rrlp_frameNumber , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_FrameNumber }, + { &hf_rrlp_timeSlot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_TimeSlot }, + { &hf_rrlp_bitNumber , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BitNumber }, + { &hf_rrlp_frameDrift , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_FrameDrift }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSSTOD_GSMTimeAssociation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSTOD_GSMTimeAssociation, GANSSTOD_GSMTimeAssociation_sequence); + + return offset; +} + + +static const per_sequence_t GANSSReferenceTime_sequence[] = { + { &hf_rrlp_ganssRefTimeInfo, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSRefTimeInfo }, + { &hf_rrlp_ganssTOD_GSMTimeAssociation, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSTOD_GSMTimeAssociation }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSSReferenceTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSReferenceTime, GANSSReferenceTime_sequence); + + return offset; +} + + +static const per_sequence_t GANSSRefLocation_sequence[] = { + { &hf_rrlp_threeDLocation , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_Ext_GeographicalInformation }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSSRefLocation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSRefLocation, GANSSRefLocation_sequence); + + return offset; +} + + + +static int +dissect_rrlp_INTEGER_0_4095(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 4095U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t GANSSIonosphereModel_sequence[] = { + { &hf_rrlp_ai0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4095 }, + { &hf_rrlp_ai1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4095 }, + { &hf_rrlp_ai2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4095 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSSIonosphereModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSIonosphereModel, GANSSIonosphereModel_sequence); + + return offset; +} + + +static const per_sequence_t GANSSIonoStormFlags_sequence[] = { + { &hf_rrlp_ionoStormFlag1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 }, + { &hf_rrlp_ionoStormFlag2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 }, + { &hf_rrlp_ionoStormFlag3 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 }, + { &hf_rrlp_ionoStormFlag4 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 }, + { &hf_rrlp_ionoStormFlag5 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSSIonoStormFlags(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSIonoStormFlags, GANSSIonoStormFlags_sequence); + + return offset; +} + + +static const per_sequence_t GANSSIonosphericModel_sequence[] = { + { &hf_rrlp_ganssIonoModel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSIonosphereModel }, + { &hf_rrlp_ganssIonoStormFlags, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSIonoStormFlags }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSSIonosphericModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSIonosphericModel, GANSSIonosphericModel_sequence); + + return offset; +} + + +static const per_sequence_t GANSSCommonAssistData_sequence[] = { + { &hf_rrlp_ganssReferenceTime, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSReferenceTime }, + { &hf_rrlp_ganssRefLocation, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSRefLocation }, + { &hf_rrlp_ganssIonosphericModel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSIonosphericModel }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSSCommonAssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSCommonAssistData, GANSSCommonAssistData_sequence); + + return offset; +} + + + +static int +dissect_rrlp_TA0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + -2147483648, 2147483647U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_rrlp_TA1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + -8388608, 8388607U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_rrlp_TA2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + -64, 63U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t GANSSTimeModelElement_sequence[] = { + { &hf_rrlp_ganssTimeModelRefTime, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_65535 }, + { &hf_rrlp_tA0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_TA0 }, + { &hf_rrlp_tA1 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_TA1 }, + { &hf_rrlp_tA2 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_TA2 }, + { &hf_rrlp_gnssTOID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 }, + { &hf_rrlp_weekNumber , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_8191 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSSTimeModelElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSTimeModelElement, GANSSTimeModelElement_sequence); + + return offset; +} + + +static const per_sequence_t SeqOfGANSSTimeModel_sequence_of[1] = { + { &hf_rrlp_SeqOfGANSSTimeModel_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSTimeModelElement }, +}; + +static int +dissect_rrlp_SeqOfGANSSTimeModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_rrlp_SeqOfGANSSTimeModel, SeqOfGANSSTimeModel_sequence_of, + 1, 7); + + return offset; +} + + + +static int +dissect_rrlp_INTEGER_0_119(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 119U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_rrlp_GANSSSignalID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 3U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_rrlp_SVID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 63U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t DGANSSSgnElement_sequence[] = { + { &hf_rrlp_svID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID }, + { &hf_rrlp_iod , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1023 }, + { &hf_rrlp_udre , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_3 }, + { &hf_rrlp_pseudoRangeCor , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2047_2047 }, + { &hf_rrlp_rangeRateCor , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M127_127 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_DGANSSSgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_DGANSSSgnElement, DGANSSSgnElement_sequence); + + return offset; +} + + +static const per_sequence_t SeqOfDGANSSSgnElement_sequence_of[1] = { + { &hf_rrlp_SeqOfDGANSSSgnElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_DGANSSSgnElement }, +}; + +static int +dissect_rrlp_SeqOfDGANSSSgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_rrlp_SeqOfDGANSSSgnElement, SeqOfDGANSSSgnElement_sequence_of, + 1, 16); + + return offset; +} + + +static const per_sequence_t SgnTypeElement_sequence[] = { + { &hf_rrlp_ganssSignalID , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSSignalID }, + { &hf_rrlp_ganssStatusHealth, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 }, + { &hf_rrlp_dganssSgnList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfDGANSSSgnElement }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_SgnTypeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_SgnTypeElement, SgnTypeElement_sequence); + + return offset; +} + + +static const per_sequence_t SeqOfSgnTypeElement_sequence_of[1] = { + { &hf_rrlp_SeqOfSgnTypeElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SgnTypeElement }, +}; + +static int +dissect_rrlp_SeqOfSgnTypeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_rrlp_SeqOfSgnTypeElement, SeqOfSgnTypeElement_sequence_of, + 1, 3); + + return offset; +} + + +static const per_sequence_t GANSSDiffCorrections_sequence[] = { + { &hf_rrlp_dganssRefTime , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_119 }, + { &hf_rrlp_sgnTypeList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfSgnTypeElement }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSSDiffCorrections(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSDiffCorrections, GANSSDiffCorrections_sequence); + + return offset; +} + + + +static int +dissect_rrlp_INTEGER_0_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 127U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_rrlp_INTEGER_M7_13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + -7, 13U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_rrlp_INTEGER_0_511(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 511U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_rrlp_INTEGER_M131072_131071(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + -131072, 131071U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_rrlp_INTEGER_M134217728_134217727(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + -134217728, 134217727U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_rrlp_INTEGER_M512_511(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + -512, 511U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t StandardClockModelElement_sequence[] = { + { &hf_rrlp_stanClockTocLSB, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_511 }, + { &hf_rrlp_stanClockAF2 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2048_2047 }, + { &hf_rrlp_stanClockAF1 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M131072_131071 }, + { &hf_rrlp_stanClockAF0 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M134217728_134217727 }, + { &hf_rrlp_stanClockTgd , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M512_511 }, + { &hf_rrlp_stanModelID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_1 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_StandardClockModelElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_StandardClockModelElement, StandardClockModelElement_sequence); + + return offset; +} + + +static const per_sequence_t SeqOfStandardClockModelElement_sequence_of[1] = { + { &hf_rrlp_SeqOfStandardClockModelElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_StandardClockModelElement }, +}; + +static int +dissect_rrlp_SeqOfStandardClockModelElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_rrlp_SeqOfStandardClockModelElement, SeqOfStandardClockModelElement_sequence_of, + 1, 2); + + return offset; +} + + +static const value_string rrlp_GANSSClockModel_vals[] = { + { 0, "standardClockModelList" }, + { 0, NULL } +}; + +static const per_choice_t GANSSClockModel_choice[] = { + { 0, &hf_rrlp_standardClockModelList, ASN1_EXTENSION_ROOT , dissect_rrlp_SeqOfStandardClockModelElement }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_rrlp_GANSSClockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSClockModel, GANSSClockModel_choice, + NULL); + + return offset; +} + + + +static int +dissect_rrlp_INTEGER_0_33554431(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 33554431U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_rrlp_INTEGER_0_67108863(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 67108863U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t NavModel_KeplerianSet_sequence[] = { + { &hf_rrlp_keplerToeLSB , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_511 }, + { &hf_rrlp_keplerW , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 }, + { &hf_rrlp_keplerDeltaN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 }, + { &hf_rrlp_keplerM0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 }, + { &hf_rrlp_keplerOmegaDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 }, + { &hf_rrlp_keplerELSB , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_33554431 }, + { &hf_rrlp_keplerIDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8192_8191 }, + { &hf_rrlp_keplerAPowerHalfLSB, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_67108863 }, + { &hf_rrlp_keplerI0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 }, + { &hf_rrlp_keplerOmega0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 }, + { &hf_rrlp_keplerCrs , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 }, + { &hf_rrlp_keplerCis , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 }, + { &hf_rrlp_keplerCus , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 }, + { &hf_rrlp_keplerCrc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 }, + { &hf_rrlp_keplerCic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 }, + { &hf_rrlp_keplerCuc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_NavModel_KeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_NavModel_KeplerianSet, NavModel_KeplerianSet_sequence); + + return offset; +} + + +static const value_string rrlp_GANSSOrbitModel_vals[] = { + { 0, "keplerianSet" }, + { 0, NULL } +}; + +static const per_choice_t GANSSOrbitModel_choice[] = { + { 0, &hf_rrlp_keplerianSet , ASN1_EXTENSION_ROOT , dissect_rrlp_NavModel_KeplerianSet }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_rrlp_GANSSOrbitModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSOrbitModel, GANSSOrbitModel_choice, + NULL); + + return offset; +} + + +static const per_sequence_t GANSSSatelliteElement_sequence[] = { + { &hf_rrlp_svID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID }, + { &hf_rrlp_svHealth , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M7_13 }, + { &hf_rrlp_iod , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1023 }, + { &hf_rrlp_ganssClockModel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSClockModel }, + { &hf_rrlp_ganssOrbitModel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSOrbitModel }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSSSatelliteElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSSatelliteElement, GANSSSatelliteElement_sequence); + + return offset; +} + + +static const per_sequence_t SeqOfGANSSSatelliteElement_sequence_of[1] = { + { &hf_rrlp_SeqOfGANSSSatelliteElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSSatelliteElement }, +}; + +static int +dissect_rrlp_SeqOfGANSSSatelliteElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_rrlp_SeqOfGANSSSatelliteElement, SeqOfGANSSSatelliteElement_sequence_of, + 1, 32); + + return offset; +} + + +static const per_sequence_t GANSSNavModel_sequence[] = { + { &hf_rrlp_nonBroadcastIndFlag, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 }, + { &hf_rrlp_toeMSB , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_31 }, + { &hf_rrlp_eMSB , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_127 }, + { &hf_rrlp_sqrtAMBS , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_63 }, + { &hf_rrlp_ganssSatelliteList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSSSatelliteElement }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSSNavModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSNavModel, GANSSNavModel_sequence); + + return offset; +} + + +static const per_sequence_t BadSignalElement_sequence[] = { + { &hf_rrlp_badSVID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID }, + { &hf_rrlp_badSignalID , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_3 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_BadSignalElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_BadSignalElement, BadSignalElement_sequence); + + return offset; +} + + +static const per_sequence_t SeqOfBadSignalElement_sequence_of[1] = { + { &hf_rrlp_SeqOfBadSignalElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BadSignalElement }, +}; + +static int +dissect_rrlp_SeqOfBadSignalElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_rrlp_SeqOfBadSignalElement, SeqOfBadSignalElement_sequence_of, + 1, 16); + + return offset; +} + + +static const per_sequence_t GANSSRealTimeIntegrity_sequence[] = { + { &hf_rrlp_ganssBadSignalList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfBadSignalElement }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSSRealTimeIntegrity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSRealTimeIntegrity, GANSSRealTimeIntegrity_sequence); + + return offset; +} + + + +static int +dissect_rrlp_INTEGER_0_59(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 59U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_rrlp_INTEGER_0_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 2U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_rrlp_GANSSDataBit(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 1U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t SeqOf_GANSSDataBits_sequence_of[1] = { + { &hf_rrlp_SeqOf_GANSSDataBits_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSDataBit }, +}; + +static int +dissect_rrlp_SeqOf_GANSSDataBits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_rrlp_SeqOf_GANSSDataBits, SeqOf_GANSSDataBits_sequence_of, + 1, 1024); + + return offset; +} + + +static const per_sequence_t GANSSDataBitAssist_sequence[] = { + { &hf_rrlp_ganssTOD1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_59 }, + { &hf_rrlp_svID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID }, + { &hf_rrlp_ganssDataTypeID, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2 }, + { &hf_rrlp_ganssDataBits , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOf_GANSSDataBits }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSSDataBitAssist(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSDataBitAssist, GANSSDataBitAssist_sequence); + + return offset; +} + + + +static int +dissect_rrlp_INTEGER_0_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 4U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t AdditionalDopplerFields_sequence[] = { + { &hf_rrlp_doppler1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 }, + { &hf_rrlp_dopplerUncertainty1, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_AdditionalDopplerFields(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_AdditionalDopplerFields, AdditionalDopplerFields_sequence); + + return offset; +} + + +static const per_sequence_t GANSSRefMeasurementElement_sequence[] = { + { &hf_rrlp_svID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID }, + { &hf_rrlp_doppler0 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2048_2047 }, + { &hf_rrlp_additionalDoppler, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_AdditionalDopplerFields }, + { &hf_rrlp_codePhase , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1022 }, + { &hf_rrlp_intCodePhase1 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_127 }, + { &hf_rrlp_codePhaseSearchWindow1, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_31 }, + { &hf_rrlp_additionalAngle, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_AddionalAngleFields }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSSRefMeasurementElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSRefMeasurementElement, GANSSRefMeasurementElement_sequence); + + return offset; +} + + +static const per_sequence_t SeqOfGANSSRefMeasurementElement_sequence_of[1] = { + { &hf_rrlp_SeqOfGANSSRefMeasurementElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSRefMeasurementElement }, +}; + +static int +dissect_rrlp_SeqOfGANSSRefMeasurementElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_rrlp_SeqOfGANSSRefMeasurementElement, SeqOfGANSSRefMeasurementElement_sequence_of, + 1, 16); + + return offset; +} + + +static const per_sequence_t GANSSRefMeasurementAssist_sequence[] = { + { &hf_rrlp_ganssSignalID1 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_3 }, + { &hf_rrlp_ganssRefMeasAssitList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSSRefMeasurementElement }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSSRefMeasurementAssist(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSRefMeasurementAssist, GANSSRefMeasurementAssist_sequence); + + return offset; +} + + + +static int +dissect_rrlp_SVIDMASK(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 1, 36, FALSE, NULL); + + return offset; +} + + + +static int +dissect_rrlp_INTEGER_0_2047(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 2047U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_rrlp_INTEGER_M65536_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + -65536, 65535U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t Almanac_KeplerianSet_sequence[] = { + { &hf_rrlp_kepAlmanacE , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2047 }, + { &hf_rrlp_kepAlmanacDeltaI, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 }, + { &hf_rrlp_kepAlmanacOmegaDot, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 }, + { &hf_rrlp_kepSVHealth , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_15 }, + { &hf_rrlp_kepAlmanacAPowerHalf, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M65536_65535 }, + { &hf_rrlp_kepAlmanacOmega0, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 }, + { &hf_rrlp_kepAlmanacW , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 }, + { &hf_rrlp_kepAlmanacM0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 }, + { &hf_rrlp_kepAlmanacAF0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8192_8191 }, + { &hf_rrlp_kepAlmanacAF1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_Almanac_KeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_Almanac_KeplerianSet, Almanac_KeplerianSet_sequence); + + return offset; +} + + +static const value_string rrlp_GANSSAlmanacElement_vals[] = { + { 0, "keplerianAlmanacSet" }, + { 0, NULL } +}; + +static const per_choice_t GANSSAlmanacElement_choice[] = { + { 0, &hf_rrlp_keplerianAlmanacSet, ASN1_EXTENSION_ROOT , dissect_rrlp_Almanac_KeplerianSet }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_rrlp_GANSSAlmanacElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSAlmanacElement, GANSSAlmanacElement_choice, + NULL); + + return offset; +} + + +static const per_sequence_t SeqOfGANSSAlmanacElement_sequence_of[1] = { + { &hf_rrlp_SeqOfGANSSAlmanacElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSAlmanacElement }, +}; + +static int +dissect_rrlp_SeqOfGANSSAlmanacElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_rrlp_SeqOfGANSSAlmanacElement, SeqOfGANSSAlmanacElement_sequence_of, + 1, 36); + + return offset; +} + + +static const per_sequence_t GANSSAlmanacModel_sequence[] = { + { &hf_rrlp_weekNumber1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 }, + { &hf_rrlp_svIDMask , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVIDMASK }, + { &hf_rrlp_toa , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_255 }, + { &hf_rrlp_ioda , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_3 }, + { &hf_rrlp_ganssAlmanacList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSSAlmanacElement }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSSAlmanacModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSAlmanacModel, GANSSAlmanacModel_sequence); + + return offset; +} + + +static const per_sequence_t GANSSUTCModel_sequence[] = { + { &hf_rrlp_ganssUtcA1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 }, + { &hf_rrlp_ganssUtcA0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 }, + { &hf_rrlp_ganssUtcTot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 }, + { &hf_rrlp_ganssUtcWNt , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 }, + { &hf_rrlp_ganssUtcDeltaTls, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 }, + { &hf_rrlp_ganssUtcWNlsf , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 }, + { &hf_rrlp_ganssUtcDN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 }, + { &hf_rrlp_ganssUtcDeltaTlsf, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSSUTCModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSUTCModel, GANSSUTCModel_sequence); + + return offset; +} + + +static const per_sequence_t GANSSGenericAssistDataElement_sequence[] = { + { &hf_rrlp_ganssID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_7 }, + { &hf_rrlp_ganssTimeModel , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_SeqOfGANSSTimeModel }, + { &hf_rrlp_ganssDiffCorrections, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSDiffCorrections }, + { &hf_rrlp_ganssNavigationModel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSNavModel }, + { &hf_rrlp_ganssRealTimeIntegrity, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSRealTimeIntegrity }, + { &hf_rrlp_ganssDataBitAssist, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSDataBitAssist }, + { &hf_rrlp_ganssRefMeasurementAssist, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSRefMeasurementAssist }, + { &hf_rrlp_ganssAlmanacModel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSAlmanacModel }, + { &hf_rrlp_ganssUTCModel , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSUTCModel }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSSGenericAssistDataElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSGenericAssistDataElement, GANSSGenericAssistDataElement_sequence); + + return offset; +} + + +static const per_sequence_t SeqOfGANSSGenericAssistDataElement_sequence_of[1] = { + { &hf_rrlp_SeqOfGANSSGenericAssistDataElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSGenericAssistDataElement }, +}; + +static int +dissect_rrlp_SeqOfGANSSGenericAssistDataElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_rrlp_SeqOfGANSSGenericAssistDataElement, SeqOfGANSSGenericAssistDataElement_sequence_of, + 1, 8); + + return offset; +} + + +static const per_sequence_t GANSS_ControlHeader_sequence[] = { + { &hf_rrlp_ganssCommonAssistData, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSCommonAssistData }, + { &hf_rrlp_ganssGenericAssistDataList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_SeqOfGANSSGenericAssistDataElement }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSS_ControlHeader(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSS_ControlHeader, GANSS_ControlHeader_sequence); + + return offset; +} + + +static const per_sequence_t GANSS_AssistData_sequence[] = { + { &hf_rrlp_ganss_controlHeader, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSS_ControlHeader }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSS_AssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSS_AssistData, GANSS_AssistData_sequence); + + return offset; +} + + + +static int +dissect_rrlp_RequiredResponseTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 128U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t Rel7_MsrPosition_Req_Extension_sequence[] = { + { &hf_rrlp_velocityRequested, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NULL }, + { &hf_rrlp_ganssPositionMethod, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSPositioningMethod }, + { &hf_rrlp_ganss_AssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSS_AssistData }, + { &hf_rrlp_ganssCarrierPhaseMeasurementRequest, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NULL }, + { &hf_rrlp_ganssTODGSMTimeAssociationMeasurementRequest, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NULL }, + { &hf_rrlp_requiredResponseTime, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_RequiredResponseTime }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_Rel7_MsrPosition_Req_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_Rel7_MsrPosition_Req_Extension, Rel7_MsrPosition_Req_Extension_sequence); + + return offset; +} + + static const per_sequence_t MsrPosition_Req_sequence[] = { { &hf_rrlp_positionInstruct, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_PositionInstruct }, { &hf_rrlp_referenceAssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ReferenceAssistData }, @@ -1992,6 +3286,7 @@ static const per_sequence_t MsrPosition_Req_sequence[] = { { &hf_rrlp_extensionContainer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ExtensionContainer }, { &hf_rrlp_rel98_MsrPosition_Req_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel98_MsrPosition_Req_Extension }, { &hf_rrlp_rel5_MsrPosition_Req_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel5_MsrPosition_Req_Extension }, + { &hf_rrlp_rel7_MsrPosition_Req_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel7_MsrPosition_Req_Extension }, { NULL, 0, 0, NULL } }; @@ -2658,6 +3953,9 @@ static const value_string rrlp_LocErrorReason_vals[] = { { 8, "notProcessed" }, { 9, "refBTSForGPSNotServingBTS" }, { 10, "refBTSForEOTDNotServingBTS" }, + { 11, "notEnoughGANSSSats" }, + { 12, "ganssAssDataMissing" }, + { 13, "refBTSForGANSSNotServingBTS" }, { 0, NULL } }; @@ -2665,7 +3963,7 @@ static const value_string rrlp_LocErrorReason_vals[] = { static int dissect_rrlp_LocErrorReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 11, NULL, TRUE, 0, NULL); + 11, NULL, TRUE, 3, NULL); return offset; } @@ -2681,9 +3979,20 @@ dissect_rrlp_GPSAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac } + +static int +dissect_rrlp_GANSSAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 1, maxGANSSAssistanceData, NULL); + + return offset; +} + + static const per_sequence_t AdditionalAssistanceData_sequence[] = { { &hf_rrlp_gpsAssistanceData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPSAssistanceData }, { &hf_rrlp_extensionContainer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ExtensionContainer }, + { &hf_rrlp_ganssAssistanceData, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GANSSAssistanceData }, { NULL, 0, 0, NULL } }; @@ -2777,16 +4086,6 @@ dissect_rrlp_INTEGER_0_9999(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } - -static int -dissect_rrlp_INTEGER_0_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 0U, 127U, NULL, FALSE); - - return offset; -} - - static const per_sequence_t GPSTimeAssistanceMeasurements_sequence[] = { { &hf_rrlp_referenceFrameMSB, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 }, { &hf_rrlp_gpsTowSubms , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_9999 }, @@ -2860,6 +4159,226 @@ dissect_rrlp_Rel_5_MsrPosition_Rsp_Extension(tvbuff_t *tvb _U_, int offset _U_, } + +static int +dissect_rrlp_VelocityEstimate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 4, 7, NULL); + + return offset; +} + + +static const per_sequence_t ReferenceFrame_sequence[] = { + { &hf_rrlp_referenceFN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_65535 }, + { &hf_rrlp_referenceFNMSB , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_63 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_ReferenceFrame(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_ReferenceFrame, ReferenceFrame_sequence); + + return offset; +} + + + +static int +dissect_rrlp_GANSSTODm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 3599999U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_rrlp_INTEGER_0_16384(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 16384U, NULL, FALSE); + + return offset; +} + + +static const asn_namedbit PositionData_bits[] = { + { 0, &hf_rrlp_PositionData_e_otd, -1, -1, "e-otd", NULL }, + { 1, &hf_rrlp_PositionData_gps, -1, -1, "gps", NULL }, + { 2, &hf_rrlp_PositionData_galileo, -1, -1, "galileo", NULL }, + { 0, NULL, 0, 0, NULL, NULL } +}; + +static int +dissect_rrlp_PositionData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 3, 16, FALSE, NULL); + + return offset; +} + + +static const per_sequence_t GANSSLocationInfo_sequence[] = { + { &hf_rrlp_referenceFrame , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ReferenceFrame }, + { &hf_rrlp_ganssTODm , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSTODm }, + { &hf_rrlp_ganssTODFrac , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_16384 }, + { &hf_rrlp_ganssTODUncertainty, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSTODUncertainty }, + { &hf_rrlp_ganssTimeID1 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_3 }, + { &hf_rrlp_fixType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_FixType }, + { &hf_rrlp_posData , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_PositionData }, + { &hf_rrlp_stationaryIndication, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_1 }, + { &hf_rrlp_posEstimate , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_Ext_GeographicalInformation }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSSLocationInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSLocationInfo, GANSSLocationInfo_sequence); + + return offset; +} + + + +static int +dissect_rrlp_INTEGER_0_2097151(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 2097151U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t GANSS_SgnElement_sequence[] = { + { &hf_rrlp_svID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID }, + { &hf_rrlp_cNo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 }, + { &hf_rrlp_mpathDet , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_MpathIndic }, + { &hf_rrlp_carrierQualityInd, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_3 }, + { &hf_rrlp_codePhase1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2097151 }, + { &hf_rrlp_integerCodePhase, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_63 }, + { &hf_rrlp_codePhaseRMSError, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 }, + { &hf_rrlp_doppler , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M32768_32767 }, + { &hf_rrlp_adr , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_33554431 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSS_SgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSS_SgnElement, GANSS_SgnElement_sequence); + + return offset; +} + + +static const per_sequence_t SeqOfGANSS_SgnElement_sequence_of[1] = { + { &hf_rrlp_SeqOfGANSS_SgnElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSS_SgnElement }, +}; + +static int +dissect_rrlp_SeqOfGANSS_SgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_rrlp_SeqOfGANSS_SgnElement, SeqOfGANSS_SgnElement_sequence_of, + 1, 16); + + return offset; +} + + +static const per_sequence_t GANSS_SgnTypeElement_sequence[] = { + { &hf_rrlp_ganssSignalID2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_15 }, + { &hf_rrlp_ganss_SgnList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSS_SgnElement }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSS_SgnTypeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSS_SgnTypeElement, GANSS_SgnTypeElement_sequence); + + return offset; +} + + +static const per_sequence_t SeqOfGANSS_SgnTypeElement_sequence_of[1] = { + { &hf_rrlp_SeqOfGANSS_SgnTypeElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSS_SgnTypeElement }, +}; + +static int +dissect_rrlp_SeqOfGANSS_SgnTypeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_rrlp_SeqOfGANSS_SgnTypeElement, SeqOfGANSS_SgnTypeElement_sequence_of, + 1, 6); + + return offset; +} + + +static const per_sequence_t GANSS_MsrSetElement_sequence[] = { + { &hf_rrlp_referenceFrame , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_ReferenceFrame }, + { &hf_rrlp_ganssTODm , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSTODm }, + { &hf_rrlp_deltaGNASSTOD , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_127 }, + { &hf_rrlp_ganssTODUncertainty, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSTODUncertainty }, + { &hf_rrlp_ganss_SgnTypeList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSS_SgnTypeElement }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSS_MsrSetElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSS_MsrSetElement, GANSS_MsrSetElement_sequence); + + return offset; +} + + +static const per_sequence_t SeqOfGANSS_MsrSetElement_sequence_of[1] = { + { &hf_rrlp_SeqOfGANSS_MsrSetElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSS_MsrSetElement }, +}; + +static int +dissect_rrlp_SeqOfGANSS_MsrSetElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_rrlp_SeqOfGANSS_MsrSetElement, SeqOfGANSS_MsrSetElement_sequence_of, + 1, 3); + + return offset; +} + + +static const per_sequence_t GANSSMeasureInfo_sequence[] = { + { &hf_rrlp_ganssMsrSetList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSS_MsrSetElement }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_GANSSMeasureInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_GANSSMeasureInfo, GANSSMeasureInfo_sequence); + + return offset; +} + + +static const per_sequence_t Rel_7_MsrPosition_Rsp_Extension_sequence[] = { + { &hf_rrlp_velEstimate , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_VelocityEstimate }, + { &hf_rrlp_ganssLocationInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSLocationInfo }, + { &hf_rrlp_ganssMeasureInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSMeasureInfo }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_Rel_7_MsrPosition_Rsp_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_Rel_7_MsrPosition_Rsp_Extension, Rel_7_MsrPosition_Rsp_Extension_sequence); + + return offset; +} + + static const per_sequence_t MsrPosition_Rsp_sequence[] = { { &hf_rrlp_multipleSets , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_MultipleSets }, { &hf_rrlp_referenceIdentity, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ReferenceIdentity }, @@ -2870,6 +4389,7 @@ static const per_sequence_t MsrPosition_Rsp_sequence[] = { { &hf_rrlp_extensionContainer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ExtensionContainer }, { &hf_rrlp_rel_98_MsrPosition_Rsp_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel_98_MsrPosition_Rsp_Extension }, { &hf_rrlp_rel_5_MsrPosition_Rsp_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel_5_MsrPosition_Rsp_Extension }, + { &hf_rrlp_rel_7_MsrPosition_Rsp_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel_7_MsrPosition_Rsp_Extension }, { NULL, 0, 0, NULL } }; @@ -2928,6 +4448,22 @@ dissect_rrlp_Rel5_AssistanceData_Extension(tvbuff_t *tvb _U_, int offset _U_, as } +static const per_sequence_t Rel7_AssistanceData_Extension_sequence[] = { + { &hf_rrlp_ganss_AssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSS_AssistData }, + { &hf_rrlp_ganssCarrierPhaseMeasurementRequest, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NULL }, + { &hf_rrlp_ganssTODGSMTimeAssociationMeasurementRequest, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NULL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_Rel7_AssistanceData_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_Rel7_AssistanceData_Extension, Rel7_AssistanceData_Extension_sequence); + + return offset; +} + + static const per_sequence_t AssistanceData_sequence[] = { { &hf_rrlp_referenceAssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ReferenceAssistData }, { &hf_rrlp_msrAssistData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_MsrAssistData }, @@ -2937,6 +4473,7 @@ static const per_sequence_t AssistanceData_sequence[] = { { &hf_rrlp_extensionContainer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ExtensionContainer }, { &hf_rrlp_rel98_AssistanceData_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel98_AssistanceData_Extension }, { &hf_rrlp_rel5_AssistanceData_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel5_AssistanceData_Extension }, + { &hf_rrlp_rel7_AssistanceData_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel7_AssistanceData_Extension }, { NULL, 0, 0, NULL } }; @@ -3035,17 +4572,44 @@ 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 10 "rrlp.cnf" +#line 26 "rrlp.cnf" proto_tree_add_item(tree, proto_rrlp, tvb, 0, -1, FALSE); if (check_col(actx->pinfo->cinfo, COL_PROTOCOL)) col_append_str(actx->pinfo->cinfo, COL_PROTOCOL, "/RRLP"); - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_rrlp_PDU, PDU_sequence); + return offset; +} + +static const per_sequence_t SLR_Arg_PCS_Extensions_sequence[] = { + { &hf_rrlp_na_ESRK_Request, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_NULL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_SLR_Arg_PCS_Extensions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_SLR_Arg_PCS_Extensions, SLR_Arg_PCS_Extensions_sequence); + + return offset; +} + + +static const per_sequence_t SLR_ArgExtensionContainer_sequence[] = { + { &hf_rrlp_privateExtensionList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_PrivateExtensionList }, + { &hf_rrlp_slr_Arg_PCS_Extensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_SLR_Arg_PCS_Extensions }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_rrlp_SLR_ArgExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_rrlp_SLR_ArgExtensionContainer, SLR_ArgExtensionContainer_sequence); return offset; } @@ -3060,7 +4624,7 @@ static void dissect_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tre /*--- End of included file: packet-rrlp-fn.c ---*/ -#line 76 "packet-rrlp-template.c" +#line 74 "packet-rrlp-template.c" /*--- proto_register_rrlp -------------------------------------------*/ @@ -3126,7 +4690,7 @@ void proto_register_rrlp(void) { "rrlp.GPS_AssistData", HFILL }}, { &hf_rrlp_extensionContainer, { "extensionContainer", "rrlp.extensionContainer", - FT_BYTES, BASE_HEX, NULL, 0, + FT_NONE, BASE_NONE, NULL, 0, "rrlp.ExtensionContainer", HFILL }}, { &hf_rrlp_rel98_MsrPosition_Req_extension, { "rel98-MsrPosition-Req-extension", "rrlp.rel98_MsrPosition_Req_extension", @@ -3136,6 +4700,10 @@ void proto_register_rrlp(void) { { "rel5-MsrPosition-Req-extension", "rrlp.rel5_MsrPosition_Req_extension", FT_NONE, BASE_NONE, NULL, 0, "rrlp.Rel5_MsrPosition_Req_Extension", HFILL }}, + { &hf_rrlp_rel7_MsrPosition_Req_extension, + { "rel7-MsrPosition-Req-extension", "rrlp.rel7_MsrPosition_Req_extension", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.Rel7_MsrPosition_Req_Extension", HFILL }}, { &hf_rrlp_multipleSets, { "multipleSets", "rrlp.multipleSets", FT_NONE, BASE_NONE, NULL, 0, @@ -3168,6 +4736,10 @@ void proto_register_rrlp(void) { { "rel-5-MsrPosition-Rsp-Extension", "rrlp.rel_5_MsrPosition_Rsp_Extension", FT_NONE, BASE_NONE, NULL, 0, "rrlp.Rel_5_MsrPosition_Rsp_Extension", HFILL }}, + { &hf_rrlp_rel_7_MsrPosition_Rsp_Extension, + { "rel-7-MsrPosition-Rsp-Extension", "rrlp.rel_7_MsrPosition_Rsp_Extension", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.Rel_7_MsrPosition_Rsp_Extension", HFILL }}, { &hf_rrlp_moreAssDataToBeSent, { "moreAssDataToBeSent", "rrlp.moreAssDataToBeSent", FT_UINT32, BASE_DEC, VALS(rrlp_MoreAssDataToBeSent_vals), 0, @@ -3180,6 +4752,10 @@ void proto_register_rrlp(void) { { "rel5-AssistanceData-Extension", "rrlp.rel5_AssistanceData_Extension", FT_NONE, BASE_NONE, NULL, 0, "rrlp.Rel5_AssistanceData_Extension", HFILL }}, + { &hf_rrlp_rel7_AssistanceData_Extension, + { "rel7-AssistanceData-Extension", "rrlp.rel7_AssistanceData_Extension", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.Rel7_AssistanceData_Extension", HFILL }}, { &hf_rrlp_errorCause, { "errorCause", "rrlp.errorCause", FT_UINT32, BASE_DEC, VALS(rrlp_ErrorCodes_vals), 0, @@ -3520,6 +5096,10 @@ void proto_register_rrlp(void) { { "gpsAssistanceData", "rrlp.gpsAssistanceData", FT_BYTES, BASE_HEX, NULL, 0, "rrlp.GPSAssistanceData", HFILL }}, + { &hf_rrlp_ganssAssistanceData, + { "ganssAssistanceData", "rrlp.ganssAssistanceData", + FT_BYTES, BASE_HEX, NULL, 0, + "rrlp.GANSSAssistanceData", HFILL }}, { &hf_rrlp_controlHeader, { "controlHeader", "rrlp.controlHeader", FT_NONE, BASE_NONE, NULL, 0, @@ -4116,9 +5696,677 @@ void proto_register_rrlp(void) { { "transaction-ID", "rrlp.transaction_ID", FT_UINT32, BASE_DEC, NULL, 0, "rrlp.INTEGER_0_262143", HFILL }}, + { &hf_rrlp_velocityRequested, + { "velocityRequested", "rrlp.velocityRequested", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.NULL", HFILL }}, + { &hf_rrlp_ganssPositionMethod, + { "ganssPositionMethod", "rrlp.ganssPositionMethod", + FT_BYTES, BASE_HEX, NULL, 0, + "rrlp.GANSSPositioningMethod", HFILL }}, + { &hf_rrlp_ganss_AssistData, + { "ganss-AssistData", "rrlp.ganss_AssistData", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSS_AssistData", HFILL }}, + { &hf_rrlp_ganssCarrierPhaseMeasurementRequest, + { "ganssCarrierPhaseMeasurementRequest", "rrlp.ganssCarrierPhaseMeasurementRequest", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.NULL", HFILL }}, + { &hf_rrlp_ganssTODGSMTimeAssociationMeasurementRequest, + { "ganssTODGSMTimeAssociationMeasurementRequest", "rrlp.ganssTODGSMTimeAssociationMeasurementRequest", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.NULL", HFILL }}, + { &hf_rrlp_requiredResponseTime, + { "requiredResponseTime", "rrlp.requiredResponseTime", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.RequiredResponseTime", HFILL }}, + { &hf_rrlp_ganss_controlHeader, + { "ganss-controlHeader", "rrlp.ganss_controlHeader", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSS_ControlHeader", HFILL }}, + { &hf_rrlp_ganssCommonAssistData, + { "ganssCommonAssistData", "rrlp.ganssCommonAssistData", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSSCommonAssistData", HFILL }}, + { &hf_rrlp_ganssGenericAssistDataList, + { "ganssGenericAssistDataList", "rrlp.ganssGenericAssistDataList", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.SeqOfGANSSGenericAssistDataElement", HFILL }}, + { &hf_rrlp_ganssReferenceTime, + { "ganssReferenceTime", "rrlp.ganssReferenceTime", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSSReferenceTime", HFILL }}, + { &hf_rrlp_ganssRefLocation, + { "ganssRefLocation", "rrlp.ganssRefLocation", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSSRefLocation", HFILL }}, + { &hf_rrlp_ganssIonosphericModel, + { "ganssIonosphericModel", "rrlp.ganssIonosphericModel", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSSIonosphericModel", HFILL }}, + { &hf_rrlp_SeqOfGANSSGenericAssistDataElement_item, + { "Item", "rrlp.SeqOfGANSSGenericAssistDataElement_item", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSSGenericAssistDataElement", HFILL }}, + { &hf_rrlp_ganssID, + { "ganssID", "rrlp.ganssID", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_7", HFILL }}, + { &hf_rrlp_ganssTimeModel, + { "ganssTimeModel", "rrlp.ganssTimeModel", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.SeqOfGANSSTimeModel", HFILL }}, + { &hf_rrlp_ganssDiffCorrections, + { "ganssDiffCorrections", "rrlp.ganssDiffCorrections", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSSDiffCorrections", HFILL }}, + { &hf_rrlp_ganssNavigationModel, + { "ganssNavigationModel", "rrlp.ganssNavigationModel", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSSNavModel", HFILL }}, + { &hf_rrlp_ganssRealTimeIntegrity, + { "ganssRealTimeIntegrity", "rrlp.ganssRealTimeIntegrity", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSSRealTimeIntegrity", HFILL }}, + { &hf_rrlp_ganssDataBitAssist, + { "ganssDataBitAssist", "rrlp.ganssDataBitAssist", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSSDataBitAssist", HFILL }}, + { &hf_rrlp_ganssRefMeasurementAssist, + { "ganssRefMeasurementAssist", "rrlp.ganssRefMeasurementAssist", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSSRefMeasurementAssist", HFILL }}, + { &hf_rrlp_ganssAlmanacModel, + { "ganssAlmanacModel", "rrlp.ganssAlmanacModel", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSSAlmanacModel", HFILL }}, + { &hf_rrlp_ganssUTCModel, + { "ganssUTCModel", "rrlp.ganssUTCModel", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSSUTCModel", HFILL }}, + { &hf_rrlp_ganssRefTimeInfo, + { "ganssRefTimeInfo", "rrlp.ganssRefTimeInfo", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSSRefTimeInfo", HFILL }}, + { &hf_rrlp_ganssTOD_GSMTimeAssociation, + { "ganssTOD-GSMTimeAssociation", "rrlp.ganssTOD_GSMTimeAssociation", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSSTOD_GSMTimeAssociation", HFILL }}, + { &hf_rrlp_ganssDay, + { "ganssDay", "rrlp.ganssDay", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_8191", HFILL }}, + { &hf_rrlp_ganssTOD, + { "ganssTOD", "rrlp.ganssTOD", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.GANSSTOD", HFILL }}, + { &hf_rrlp_ganssTODUncertainty, + { "ganssTODUncertainty", "rrlp.ganssTODUncertainty", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.GANSSTODUncertainty", HFILL }}, + { &hf_rrlp_ganssTimeID, + { "ganssTimeID", "rrlp.ganssTimeID", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_7", HFILL }}, + { &hf_rrlp_frameDrift, + { "frameDrift", "rrlp.frameDrift", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.FrameDrift", HFILL }}, + { &hf_rrlp_ganssIonoModel, + { "ganssIonoModel", "rrlp.ganssIonoModel", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSSIonosphereModel", HFILL }}, + { &hf_rrlp_ganssIonoStormFlags, + { "ganssIonoStormFlags", "rrlp.ganssIonoStormFlags", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSSIonoStormFlags", HFILL }}, + { &hf_rrlp_ai0, + { "ai0", "rrlp.ai0", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_4095", HFILL }}, + { &hf_rrlp_ai1, + { "ai1", "rrlp.ai1", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_4095", HFILL }}, + { &hf_rrlp_ai2, + { "ai2", "rrlp.ai2", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_4095", HFILL }}, + { &hf_rrlp_ionoStormFlag1, + { "ionoStormFlag1", "rrlp.ionoStormFlag1", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_1", HFILL }}, + { &hf_rrlp_ionoStormFlag2, + { "ionoStormFlag2", "rrlp.ionoStormFlag2", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_1", HFILL }}, + { &hf_rrlp_ionoStormFlag3, + { "ionoStormFlag3", "rrlp.ionoStormFlag3", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_1", HFILL }}, + { &hf_rrlp_ionoStormFlag4, + { "ionoStormFlag4", "rrlp.ionoStormFlag4", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_1", HFILL }}, + { &hf_rrlp_ionoStormFlag5, + { "ionoStormFlag5", "rrlp.ionoStormFlag5", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_1", HFILL }}, + { &hf_rrlp_SeqOfGANSSTimeModel_item, + { "Item", "rrlp.SeqOfGANSSTimeModel_item", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSSTimeModelElement", HFILL }}, + { &hf_rrlp_ganssTimeModelRefTime, + { "ganssTimeModelRefTime", "rrlp.ganssTimeModelRefTime", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_65535", HFILL }}, + { &hf_rrlp_tA0, + { "tA0", "rrlp.tA0", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.TA0", HFILL }}, + { &hf_rrlp_tA1, + { "tA1", "rrlp.tA1", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.TA1", HFILL }}, + { &hf_rrlp_tA2, + { "tA2", "rrlp.tA2", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.TA2", HFILL }}, + { &hf_rrlp_gnssTOID, + { "gnssTOID", "rrlp.gnssTOID", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_7", HFILL }}, + { &hf_rrlp_weekNumber, + { "weekNumber", "rrlp.weekNumber", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_8191", HFILL }}, + { &hf_rrlp_dganssRefTime, + { "dganssRefTime", "rrlp.dganssRefTime", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_119", HFILL }}, + { &hf_rrlp_sgnTypeList, + { "sgnTypeList", "rrlp.sgnTypeList", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.SeqOfSgnTypeElement", HFILL }}, + { &hf_rrlp_SeqOfSgnTypeElement_item, + { "Item", "rrlp.SeqOfSgnTypeElement_item", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.SgnTypeElement", HFILL }}, + { &hf_rrlp_ganssSignalID, + { "ganssSignalID", "rrlp.ganssSignalID", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.GANSSSignalID", HFILL }}, + { &hf_rrlp_ganssStatusHealth, + { "ganssStatusHealth", "rrlp.ganssStatusHealth", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_7", HFILL }}, + { &hf_rrlp_dganssSgnList, + { "dganssSgnList", "rrlp.dganssSgnList", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.SeqOfDGANSSSgnElement", HFILL }}, + { &hf_rrlp_SeqOfDGANSSSgnElement_item, + { "Item", "rrlp.SeqOfDGANSSSgnElement_item", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.DGANSSSgnElement", HFILL }}, + { &hf_rrlp_svID, + { "svID", "rrlp.svID", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.SVID", HFILL }}, + { &hf_rrlp_iod, + { "iod", "rrlp.iod", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_1023", HFILL }}, + { &hf_rrlp_nonBroadcastIndFlag, + { "nonBroadcastIndFlag", "rrlp.nonBroadcastIndFlag", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_1", HFILL }}, + { &hf_rrlp_toeMSB, + { "toeMSB", "rrlp.toeMSB", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_31", HFILL }}, + { &hf_rrlp_eMSB, + { "eMSB", "rrlp.eMSB", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_127", HFILL }}, + { &hf_rrlp_sqrtAMBS, + { "sqrtAMBS", "rrlp.sqrtAMBS", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_63", HFILL }}, + { &hf_rrlp_ganssSatelliteList, + { "ganssSatelliteList", "rrlp.ganssSatelliteList", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.SeqOfGANSSSatelliteElement", HFILL }}, + { &hf_rrlp_SeqOfGANSSSatelliteElement_item, + { "Item", "rrlp.SeqOfGANSSSatelliteElement_item", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSSSatelliteElement", HFILL }}, + { &hf_rrlp_svHealth, + { "svHealth", "rrlp.svHealth", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M7_13", HFILL }}, + { &hf_rrlp_ganssClockModel, + { "ganssClockModel", "rrlp.ganssClockModel", + FT_UINT32, BASE_DEC, VALS(rrlp_GANSSClockModel_vals), 0, + "rrlp.GANSSClockModel", HFILL }}, + { &hf_rrlp_ganssOrbitModel, + { "ganssOrbitModel", "rrlp.ganssOrbitModel", + FT_UINT32, BASE_DEC, VALS(rrlp_GANSSOrbitModel_vals), 0, + "rrlp.GANSSOrbitModel", HFILL }}, + { &hf_rrlp_keplerianSet, + { "keplerianSet", "rrlp.keplerianSet", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.NavModel_KeplerianSet", HFILL }}, + { &hf_rrlp_keplerToeLSB, + { "keplerToeLSB", "rrlp.keplerToeLSB", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_511", HFILL }}, + { &hf_rrlp_keplerW, + { "keplerW", "rrlp.keplerW", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M2147483648_2147483647", HFILL }}, + { &hf_rrlp_keplerDeltaN, + { "keplerDeltaN", "rrlp.keplerDeltaN", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M32768_32767", HFILL }}, + { &hf_rrlp_keplerM0, + { "keplerM0", "rrlp.keplerM0", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M2147483648_2147483647", HFILL }}, + { &hf_rrlp_keplerOmegaDot, + { "keplerOmegaDot", "rrlp.keplerOmegaDot", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M8388608_8388607", HFILL }}, + { &hf_rrlp_keplerELSB, + { "keplerELSB", "rrlp.keplerELSB", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_33554431", HFILL }}, + { &hf_rrlp_keplerIDot, + { "keplerIDot", "rrlp.keplerIDot", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M8192_8191", HFILL }}, + { &hf_rrlp_keplerAPowerHalfLSB, + { "keplerAPowerHalfLSB", "rrlp.keplerAPowerHalfLSB", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_67108863", HFILL }}, + { &hf_rrlp_keplerI0, + { "keplerI0", "rrlp.keplerI0", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M2147483648_2147483647", HFILL }}, + { &hf_rrlp_keplerOmega0, + { "keplerOmega0", "rrlp.keplerOmega0", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M2147483648_2147483647", HFILL }}, + { &hf_rrlp_keplerCrs, + { "keplerCrs", "rrlp.keplerCrs", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M32768_32767", HFILL }}, + { &hf_rrlp_keplerCis, + { "keplerCis", "rrlp.keplerCis", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M32768_32767", HFILL }}, + { &hf_rrlp_keplerCus, + { "keplerCus", "rrlp.keplerCus", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M32768_32767", HFILL }}, + { &hf_rrlp_keplerCrc, + { "keplerCrc", "rrlp.keplerCrc", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M32768_32767", HFILL }}, + { &hf_rrlp_keplerCic, + { "keplerCic", "rrlp.keplerCic", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M32768_32767", HFILL }}, + { &hf_rrlp_keplerCuc, + { "keplerCuc", "rrlp.keplerCuc", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M32768_32767", HFILL }}, + { &hf_rrlp_standardClockModelList, + { "standardClockModelList", "rrlp.standardClockModelList", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.SeqOfStandardClockModelElement", HFILL }}, + { &hf_rrlp_SeqOfStandardClockModelElement_item, + { "Item", "rrlp.SeqOfStandardClockModelElement_item", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.StandardClockModelElement", HFILL }}, + { &hf_rrlp_stanClockTocLSB, + { "stanClockTocLSB", "rrlp.stanClockTocLSB", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_511", HFILL }}, + { &hf_rrlp_stanClockAF2, + { "stanClockAF2", "rrlp.stanClockAF2", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M2048_2047", HFILL }}, + { &hf_rrlp_stanClockAF1, + { "stanClockAF1", "rrlp.stanClockAF1", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M131072_131071", HFILL }}, + { &hf_rrlp_stanClockAF0, + { "stanClockAF0", "rrlp.stanClockAF0", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M134217728_134217727", HFILL }}, + { &hf_rrlp_stanClockTgd, + { "stanClockTgd", "rrlp.stanClockTgd", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M512_511", HFILL }}, + { &hf_rrlp_stanModelID, + { "stanModelID", "rrlp.stanModelID", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_1", HFILL }}, + { &hf_rrlp_ganssBadSignalList, + { "ganssBadSignalList", "rrlp.ganssBadSignalList", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.SeqOfBadSignalElement", HFILL }}, + { &hf_rrlp_SeqOfBadSignalElement_item, + { "Item", "rrlp.SeqOfBadSignalElement_item", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.BadSignalElement", HFILL }}, + { &hf_rrlp_badSVID, + { "badSVID", "rrlp.badSVID", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.SVID", HFILL }}, + { &hf_rrlp_badSignalID, + { "badSignalID", "rrlp.badSignalID", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_3", HFILL }}, + { &hf_rrlp_ganssTOD1, + { "ganssTOD", "rrlp.ganssTOD", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_59", HFILL }}, + { &hf_rrlp_ganssDataTypeID, + { "ganssDataTypeID", "rrlp.ganssDataTypeID", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_2", HFILL }}, + { &hf_rrlp_ganssDataBits, + { "ganssDataBits", "rrlp.ganssDataBits", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.SeqOf_GANSSDataBits", HFILL }}, + { &hf_rrlp_SeqOf_GANSSDataBits_item, + { "Item", "rrlp.SeqOf_GANSSDataBits_item", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.GANSSDataBit", HFILL }}, + { &hf_rrlp_ganssSignalID1, + { "ganssSignalID", "rrlp.ganssSignalID", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_3", HFILL }}, + { &hf_rrlp_ganssRefMeasAssitList, + { "ganssRefMeasAssitList", "rrlp.ganssRefMeasAssitList", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.SeqOfGANSSRefMeasurementElement", HFILL }}, + { &hf_rrlp_SeqOfGANSSRefMeasurementElement_item, + { "Item", "rrlp.SeqOfGANSSRefMeasurementElement_item", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSSRefMeasurementElement", HFILL }}, + { &hf_rrlp_additionalDoppler, + { "additionalDoppler", "rrlp.additionalDoppler", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.AdditionalDopplerFields", HFILL }}, + { &hf_rrlp_intCodePhase1, + { "intCodePhase", "rrlp.intCodePhase", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_127", HFILL }}, + { &hf_rrlp_codePhaseSearchWindow1, + { "codePhaseSearchWindow", "rrlp.codePhaseSearchWindow", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_31", HFILL }}, + { &hf_rrlp_additionalAngle, + { "additionalAngle", "rrlp.additionalAngle", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.AddionalAngleFields", HFILL }}, + { &hf_rrlp_dopplerUncertainty1, + { "dopplerUncertainty", "rrlp.dopplerUncertainty", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_4", HFILL }}, + { &hf_rrlp_weekNumber1, + { "weekNumber", "rrlp.weekNumber", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_255", HFILL }}, + { &hf_rrlp_svIDMask, + { "svIDMask", "rrlp.svIDMask", + FT_BYTES, BASE_HEX, NULL, 0, + "rrlp.SVIDMASK", HFILL }}, + { &hf_rrlp_toa, + { "toa", "rrlp.toa", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_255", HFILL }}, + { &hf_rrlp_ioda, + { "ioda", "rrlp.ioda", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_3", HFILL }}, + { &hf_rrlp_ganssAlmanacList, + { "ganssAlmanacList", "rrlp.ganssAlmanacList", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.SeqOfGANSSAlmanacElement", HFILL }}, + { &hf_rrlp_SeqOfGANSSAlmanacElement_item, + { "Item", "rrlp.SeqOfGANSSAlmanacElement_item", + FT_UINT32, BASE_DEC, VALS(rrlp_GANSSAlmanacElement_vals), 0, + "rrlp.GANSSAlmanacElement", HFILL }}, + { &hf_rrlp_keplerianAlmanacSet, + { "keplerianAlmanacSet", "rrlp.keplerianAlmanacSet", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.Almanac_KeplerianSet", HFILL }}, + { &hf_rrlp_kepAlmanacE, + { "kepAlmanacE", "rrlp.kepAlmanacE", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_2047", HFILL }}, + { &hf_rrlp_kepAlmanacDeltaI, + { "kepAlmanacDeltaI", "rrlp.kepAlmanacDeltaI", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M1024_1023", HFILL }}, + { &hf_rrlp_kepAlmanacOmegaDot, + { "kepAlmanacOmegaDot", "rrlp.kepAlmanacOmegaDot", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M1024_1023", HFILL }}, + { &hf_rrlp_kepSVHealth, + { "kepSVHealth", "rrlp.kepSVHealth", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_15", HFILL }}, + { &hf_rrlp_kepAlmanacAPowerHalf, + { "kepAlmanacAPowerHalf", "rrlp.kepAlmanacAPowerHalf", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M65536_65535", HFILL }}, + { &hf_rrlp_kepAlmanacOmega0, + { "kepAlmanacOmega0", "rrlp.kepAlmanacOmega0", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M32768_32767", HFILL }}, + { &hf_rrlp_kepAlmanacW, + { "kepAlmanacW", "rrlp.kepAlmanacW", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M32768_32767", HFILL }}, + { &hf_rrlp_kepAlmanacM0, + { "kepAlmanacM0", "rrlp.kepAlmanacM0", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M32768_32767", HFILL }}, + { &hf_rrlp_kepAlmanacAF0, + { "kepAlmanacAF0", "rrlp.kepAlmanacAF0", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M8192_8191", HFILL }}, + { &hf_rrlp_kepAlmanacAF1, + { "kepAlmanacAF1", "rrlp.kepAlmanacAF1", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M1024_1023", HFILL }}, + { &hf_rrlp_ganssUtcA1, + { "ganssUtcA1", "rrlp.ganssUtcA1", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M8388608_8388607", HFILL }}, + { &hf_rrlp_ganssUtcA0, + { "ganssUtcA0", "rrlp.ganssUtcA0", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M2147483648_2147483647", HFILL }}, + { &hf_rrlp_ganssUtcTot, + { "ganssUtcTot", "rrlp.ganssUtcTot", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_255", HFILL }}, + { &hf_rrlp_ganssUtcWNt, + { "ganssUtcWNt", "rrlp.ganssUtcWNt", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_255", HFILL }}, + { &hf_rrlp_ganssUtcDeltaTls, + { "ganssUtcDeltaTls", "rrlp.ganssUtcDeltaTls", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M128_127", HFILL }}, + { &hf_rrlp_ganssUtcWNlsf, + { "ganssUtcWNlsf", "rrlp.ganssUtcWNlsf", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_255", HFILL }}, + { &hf_rrlp_ganssUtcDN, + { "ganssUtcDN", "rrlp.ganssUtcDN", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M128_127", HFILL }}, + { &hf_rrlp_ganssUtcDeltaTlsf, + { "ganssUtcDeltaTlsf", "rrlp.ganssUtcDeltaTlsf", + FT_INT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_M128_127", HFILL }}, + { &hf_rrlp_velEstimate, + { "velEstimate", "rrlp.velEstimate", + FT_BYTES, BASE_HEX, NULL, 0, + "rrlp.VelocityEstimate", HFILL }}, + { &hf_rrlp_ganssLocationInfo, + { "ganssLocationInfo", "rrlp.ganssLocationInfo", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSSLocationInfo", HFILL }}, + { &hf_rrlp_ganssMeasureInfo, + { "ganssMeasureInfo", "rrlp.ganssMeasureInfo", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSSMeasureInfo", HFILL }}, + { &hf_rrlp_referenceFrame, + { "referenceFrame", "rrlp.referenceFrame", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.ReferenceFrame", HFILL }}, + { &hf_rrlp_ganssTODm, + { "ganssTODm", "rrlp.ganssTODm", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.GANSSTODm", HFILL }}, + { &hf_rrlp_ganssTODFrac, + { "ganssTODFrac", "rrlp.ganssTODFrac", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_16384", HFILL }}, + { &hf_rrlp_ganssTimeID1, + { "ganssTimeID", "rrlp.ganssTimeID", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_3", HFILL }}, + { &hf_rrlp_posData, + { "posData", "rrlp.posData", + FT_BYTES, BASE_HEX, NULL, 0, + "rrlp.PositionData", HFILL }}, + { &hf_rrlp_stationaryIndication, + { "stationaryIndication", "rrlp.stationaryIndication", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_1", HFILL }}, + { &hf_rrlp_referenceFN, + { "referenceFN", "rrlp.referenceFN", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_65535", HFILL }}, + { &hf_rrlp_referenceFNMSB, + { "referenceFNMSB", "rrlp.referenceFNMSB", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_63", HFILL }}, + { &hf_rrlp_ganssMsrSetList, + { "ganssMsrSetList", "rrlp.ganssMsrSetList", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.SeqOfGANSS_MsrSetElement", HFILL }}, + { &hf_rrlp_SeqOfGANSS_MsrSetElement_item, + { "Item", "rrlp.SeqOfGANSS_MsrSetElement_item", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSS_MsrSetElement", HFILL }}, + { &hf_rrlp_deltaGNASSTOD, + { "deltaGNASSTOD", "rrlp.deltaGNASSTOD", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_127", HFILL }}, + { &hf_rrlp_ganss_SgnTypeList, + { "ganss-SgnTypeList", "rrlp.ganss_SgnTypeList", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.SeqOfGANSS_SgnTypeElement", HFILL }}, + { &hf_rrlp_SeqOfGANSS_SgnTypeElement_item, + { "Item", "rrlp.SeqOfGANSS_SgnTypeElement_item", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSS_SgnTypeElement", HFILL }}, + { &hf_rrlp_ganssSignalID2, + { "ganssSignalID", "rrlp.ganssSignalID", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_15", HFILL }}, + { &hf_rrlp_ganss_SgnList, + { "ganss-SgnList", "rrlp.ganss_SgnList", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.SeqOfGANSS_SgnElement", HFILL }}, + { &hf_rrlp_SeqOfGANSS_SgnElement_item, + { "Item", "rrlp.SeqOfGANSS_SgnElement_item", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.GANSS_SgnElement", HFILL }}, + { &hf_rrlp_mpathDet, + { "mpathDet", "rrlp.mpathDet", + FT_UINT32, BASE_DEC, VALS(rrlp_MpathIndic_vals), 0, + "rrlp.MpathIndic", HFILL }}, + { &hf_rrlp_carrierQualityInd, + { "carrierQualityInd", "rrlp.carrierQualityInd", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_3", HFILL }}, + { &hf_rrlp_codePhase1, + { "codePhase", "rrlp.codePhase", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_2097151", HFILL }}, + { &hf_rrlp_integerCodePhase, + { "integerCodePhase", "rrlp.integerCodePhase", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_63", HFILL }}, + { &hf_rrlp_codePhaseRMSError, + { "codePhaseRMSError", "rrlp.codePhaseRMSError", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_63", HFILL }}, + { &hf_rrlp_adr, + { "adr", "rrlp.adr", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.INTEGER_0_33554431", HFILL }}, + { &hf_rrlp_privateExtensionList, + { "privateExtensionList", "rrlp.privateExtensionList", + FT_UINT32, BASE_DEC, NULL, 0, + "rrlp.PrivateExtensionList", HFILL }}, + { &hf_rrlp_pcs_Extensions, + { "pcs-Extensions", "rrlp.pcs_Extensions", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.PCS_Extensions", HFILL }}, + { &hf_rrlp_slr_Arg_PCS_Extensions, + { "slr-Arg-PCS-Extensions", "rrlp.slr_Arg_PCS_Extensions", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.SLR_Arg_PCS_Extensions", HFILL }}, + { &hf_rrlp_PrivateExtensionList_item, + { "Item", "rrlp.PrivateExtensionList_item", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.PrivateExtension", HFILL }}, + { &hf_rrlp_extId, + { "extId", "rrlp.extId", + FT_OID, BASE_NONE, NULL, 0, + "rrlp.OBJECT_IDENTIFIER", HFILL }}, + { &hf_rrlp_extType, + { "extType", "rrlp.extType", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.T_extType", HFILL }}, + { &hf_rrlp_na_ESRK_Request, + { "na-ESRK-Request", "rrlp.na_ESRK_Request", + FT_NONE, BASE_NONE, NULL, 0, + "rrlp.NULL", HFILL }}, + { &hf_rrlp_GANSSPositioningMethod_gps, + { "gps", "rrlp.gps", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_rrlp_GANSSPositioningMethod_galileo, + { "galileo", "rrlp.galileo", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_rrlp_PositionData_e_otd, + { "e-otd", "rrlp.e-otd", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_rrlp_PositionData_gps, + { "gps", "rrlp.gps", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_rrlp_PositionData_galileo, + { "galileo", "rrlp.galileo", + FT_BOOLEAN, 8, NULL, 0x20, + "", HFILL }}, /*--- End of included file: packet-rrlp-hfarr.c ---*/ -#line 85 "packet-rrlp-template.c" +#line 83 "packet-rrlp-template.c" }; /* List of subtrees */ @@ -4223,9 +6471,70 @@ void proto_register_rrlp(void) { &ett_rrlp_Rel5_MsrPosition_Req_Extension, &ett_rrlp_Rel5_AssistanceData_Extension, &ett_rrlp_Rel_5_ProtocolError_Extension, + &ett_rrlp_Rel7_MsrPosition_Req_Extension, + &ett_rrlp_GANSSPositioningMethod, + &ett_rrlp_GANSS_AssistData, + &ett_rrlp_GANSS_ControlHeader, + &ett_rrlp_GANSSCommonAssistData, + &ett_rrlp_SeqOfGANSSGenericAssistDataElement, + &ett_rrlp_GANSSGenericAssistDataElement, + &ett_rrlp_GANSSReferenceTime, + &ett_rrlp_GANSSRefTimeInfo, + &ett_rrlp_GANSSTOD_GSMTimeAssociation, + &ett_rrlp_GANSSRefLocation, + &ett_rrlp_GANSSIonosphericModel, + &ett_rrlp_GANSSIonosphereModel, + &ett_rrlp_GANSSIonoStormFlags, + &ett_rrlp_SeqOfGANSSTimeModel, + &ett_rrlp_GANSSTimeModelElement, + &ett_rrlp_GANSSDiffCorrections, + &ett_rrlp_SeqOfSgnTypeElement, + &ett_rrlp_SgnTypeElement, + &ett_rrlp_SeqOfDGANSSSgnElement, + &ett_rrlp_DGANSSSgnElement, + &ett_rrlp_GANSSNavModel, + &ett_rrlp_SeqOfGANSSSatelliteElement, + &ett_rrlp_GANSSSatelliteElement, + &ett_rrlp_GANSSOrbitModel, + &ett_rrlp_NavModel_KeplerianSet, + &ett_rrlp_GANSSClockModel, + &ett_rrlp_SeqOfStandardClockModelElement, + &ett_rrlp_StandardClockModelElement, + &ett_rrlp_GANSSRealTimeIntegrity, + &ett_rrlp_SeqOfBadSignalElement, + &ett_rrlp_BadSignalElement, + &ett_rrlp_GANSSDataBitAssist, + &ett_rrlp_SeqOf_GANSSDataBits, + &ett_rrlp_GANSSRefMeasurementAssist, + &ett_rrlp_SeqOfGANSSRefMeasurementElement, + &ett_rrlp_GANSSRefMeasurementElement, + &ett_rrlp_AdditionalDopplerFields, + &ett_rrlp_GANSSAlmanacModel, + &ett_rrlp_SeqOfGANSSAlmanacElement, + &ett_rrlp_GANSSAlmanacElement, + &ett_rrlp_Almanac_KeplerianSet, + &ett_rrlp_GANSSUTCModel, + &ett_rrlp_Rel_7_MsrPosition_Rsp_Extension, + &ett_rrlp_GANSSLocationInfo, + &ett_rrlp_PositionData, + &ett_rrlp_ReferenceFrame, + &ett_rrlp_GANSSMeasureInfo, + &ett_rrlp_SeqOfGANSS_MsrSetElement, + &ett_rrlp_GANSS_MsrSetElement, + &ett_rrlp_SeqOfGANSS_SgnTypeElement, + &ett_rrlp_GANSS_SgnTypeElement, + &ett_rrlp_SeqOfGANSS_SgnElement, + &ett_rrlp_GANSS_SgnElement, + &ett_rrlp_Rel7_AssistanceData_Extension, + &ett_rrlp_ExtensionContainer, + &ett_rrlp_SLR_ArgExtensionContainer, + &ett_rrlp_PrivateExtensionList, + &ett_rrlp_PrivateExtension, + &ett_rrlp_PCS_Extensions, + &ett_rrlp_SLR_Arg_PCS_Extensions, /*--- End of included file: packet-rrlp-ettarr.c ---*/ -#line 91 "packet-rrlp-template.c" +#line 89 "packet-rrlp-template.c" }; |