diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:34:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:34:10 +0000 |
commit | e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc (patch) | |
tree | 68cb5ef9081156392f1dd62a00c6ccc1451b93df /epan/dissectors/packet-ilp.c | |
parent | Initial commit. (diff) | |
download | wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.tar.xz wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.zip |
Adding upstream version 4.2.2.upstream/4.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'epan/dissectors/packet-ilp.c')
-rw-r--r-- | epan/dissectors/packet-ilp.c | 6650 |
1 files changed, 6650 insertions, 0 deletions
diff --git a/epan/dissectors/packet-ilp.c b/epan/dissectors/packet-ilp.c new file mode 100644 index 00000000..6af06365 --- /dev/null +++ b/epan/dissectors/packet-ilp.c @@ -0,0 +1,6650 @@ +/* Do not modify this file. Changes will be overwritten. */ +/* Generated automatically by the ASN.1 to Wireshark dissector compiler */ +/* packet-ilp.c */ +/* asn2wrs.py -L -p ilp -c ./ilp.cnf -s ./packet-ilp-template -D . -O ../.. ILP.asn ILP-Components.asn */ + +/* packet-ilp.c + * Routines for OMA Internal Location Protocol packet dissection + * Copyright 2006, e.yimjia <jy.m12.0@gmail.com> + * Copyright 2019, Pascal Quantin <pascal@wireshark.org> + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0-or-later + * + * ref OMA-TS-ILP-V2_0_4-20181213-A + * http://www.openmobilealliance.org + */ + +#include "config.h" + +#include <epan/packet.h> +#include <epan/prefs.h> +#include <epan/asn1.h> + +#include "packet-per.h" +#include "packet-tcp.h" +#include "packet-gsm_map.h" +#include "packet-e164.h" +#include "packet-e212.h" + +#define PNAME "OMA Internal Location Protocol" +#define PSNAME "ILP" +#define PFNAME "ilp" + +void proto_register_ilp(void); + +static dissector_handle_t rrlp_handle; +static dissector_handle_t lpp_handle; +static dissector_handle_t ilp_tcp_handle; + + +/* IANA Registered Ports + * oma-ilp 7276/tcp OMA Internal Location + */ +#define ILP_TCP_PORT 7276 + +/* Initialize the protocol and registered fields */ +static int proto_ilp = -1; + + +#define ILP_HEADER_SIZE 2 + +static gboolean ilp_desegment = TRUE; + +static int hf_ilp_ILP_PDU_PDU = -1; /* ILP_PDU */ +static int hf_ilp_length = -1; /* INTEGER_0_65535 */ +static int hf_ilp_version = -1; /* Version */ +static int hf_ilp_sessionID2 = -1; /* SessionID2 */ +static int hf_ilp_message = -1; /* IlpMessage */ +static int hf_ilp_msPREQ = -1; /* PREQ */ +static int hf_ilp_msPRES = -1; /* PRES */ +static int hf_ilp_msPRPT = -1; /* PRPT */ +static int hf_ilp_msPLREQ = -1; /* PLREQ */ +static int hf_ilp_msPLRES = -1; /* PLRES */ +static int hf_ilp_msPINIT = -1; /* PINIT */ +static int hf_ilp_msPAUTH = -1; /* PAUTH */ +static int hf_ilp_msPALIVE = -1; /* PALIVE */ +static int hf_ilp_msPEND = -1; /* PEND */ +static int hf_ilp_msPMESS = -1; /* PMESS */ +static int hf_ilp_sLPMode = -1; /* SLPMode */ +static int hf_ilp_approvedPosMethods = -1; /* PosTechnology */ +static int hf_ilp_locationId = -1; /* LocationId */ +static int hf_ilp_multipleLocationIds = -1; /* MultipleLocationIds */ +static int hf_ilp_position = -1; /* Position */ +static int hf_ilp_triggerParams = -1; /* TriggerParams */ +static int hf_ilp_sPCSETKey = -1; /* SPCSETKey */ +static int hf_ilp_spctid = -1; /* SPCTID */ +static int hf_ilp_sPCSETKeylifetime = -1; /* SPCSETKeylifetime */ +static int hf_ilp_qoP = -1; /* QoP */ +static int hf_ilp_sETCapabilities = -1; /* SETCapabilities */ +static int hf_ilp_notificationMode = -1; /* NotificationMode */ +static int hf_ilp_triggerType = -1; /* TriggerType */ +static int hf_ilp_periodicTriggerParams = -1; /* PeriodicTriggerParams */ +static int hf_ilp_numberOfFixes = -1; /* INTEGER_1_8639999 */ +static int hf_ilp_intervalBetweenFixes = -1; /* INTEGER_1_8639999 */ +static int hf_ilp_startTime = -1; /* INTEGER_0_2678400 */ +static int hf_ilp_preferredPosMethod = -1; /* PosMethod */ +static int hf_ilp_gnssPosTechnology = -1; /* GNSSPosTechnology */ +static int hf_ilp_supportedPosMethods = -1; /* PosTechnology */ +static int hf_ilp_sPCstatusCode = -1; /* SPCStatusCode */ +static int hf_ilp_fixNumber = -1; /* INTEGER_1_8639999 */ +static int hf_ilp_statusCode = -1; /* StatusCode */ +static int hf_ilp_positionResults = -1; /* PositionResults */ +static int hf_ilp_PositionResults_item = -1; /* PositionResult */ +static int hf_ilp_posMethod = -1; /* PosMethod */ +static int hf_ilp_requestedAssistData = -1; /* RequestedAssistData */ +static int hf_ilp_posPayLoad = -1; /* PosPayLoad */ +static int hf_ilp_utran_GPSReferenceTimeResult = -1; /* UTRAN_GPSReferenceTimeResult */ +static int hf_ilp_utran_GANSSReferenceTimeResult = -1; /* UTRAN_GANSSReferenceTimeResult */ +static int hf_ilp_almanacRequested = -1; /* BOOLEAN */ +static int hf_ilp_utcModelRequested = -1; /* BOOLEAN */ +static int hf_ilp_ionosphericModelRequested = -1; /* BOOLEAN */ +static int hf_ilp_dgpsCorrectionsRequested = -1; /* BOOLEAN */ +static int hf_ilp_referenceLocationRequested = -1; /* BOOLEAN */ +static int hf_ilp_referenceTimeRequested = -1; /* BOOLEAN */ +static int hf_ilp_acquisitionAssistanceRequested = -1; /* BOOLEAN */ +static int hf_ilp_realTimeIntegrityRequested = -1; /* BOOLEAN */ +static int hf_ilp_navigationModelRequested = -1; /* BOOLEAN */ +static int hf_ilp_navigationModelData = -1; /* NavigationModel */ +static int hf_ilp_ganssRequestedCommonAssistanceDataList = -1; /* GanssRequestedCommonAssistanceDataList */ +static int hf_ilp_ganssRequestedGenericAssistanceDataList = -1; /* GanssRequestedGenericAssistanceDataList */ +static int hf_ilp_extendedEphemeris = -1; /* ExtendedEphemeris */ +static int hf_ilp_extendedEphemerisCheck = -1; /* ExtendedEphCheck */ +static int hf_ilp_validity = -1; /* INTEGER_1_256 */ +static int hf_ilp_beginTime = -1; /* GPSTime */ +static int hf_ilp_endTime = -1; /* GPSTime */ +static int hf_ilp_gPSWeek = -1; /* INTEGER_0_1023 */ +static int hf_ilp_gPSTOWhour = -1; /* INTEGER_0_167 */ +static int hf_ilp_ganssReferenceTime = -1; /* BOOLEAN */ +static int hf_ilp_ganssIonosphericModel = -1; /* BOOLEAN */ +static int hf_ilp_ganssAdditionalIonosphericModelForDataID00 = -1; /* BOOLEAN */ +static int hf_ilp_ganssAdditionalIonosphericModelForDataID11 = -1; /* BOOLEAN */ +static int hf_ilp_ganssEarthOrientationParameters = -1; /* BOOLEAN */ +static int hf_ilp_ganssAdditionalIonosphericModelForDataID01 = -1; /* BOOLEAN */ +static int hf_ilp_GanssRequestedGenericAssistanceDataList_item = -1; /* GanssReqGenericData */ +static int hf_ilp_ganssId = -1; /* INTEGER_0_15 */ +static int hf_ilp_ganssSBASid = -1; /* BIT_STRING_SIZE_3 */ +static int hf_ilp_ganssRealTimeIntegrity = -1; /* BOOLEAN */ +static int hf_ilp_ganssDifferentialCorrection = -1; /* DGANSS_Sig_Id_Req */ +static int hf_ilp_ganssAlmanac = -1; /* BOOLEAN */ +static int hf_ilp_ganssNavigationModelData = -1; /* GanssNavigationModelData */ +static int hf_ilp_ganssTimeModels = -1; /* BIT_STRING_SIZE_16 */ +static int hf_ilp_ganssReferenceMeasurementInfo = -1; /* BOOLEAN */ +static int hf_ilp_ganssDataBits = -1; /* GanssDataBits */ +static int hf_ilp_ganssUTCModel = -1; /* BOOLEAN */ +static int hf_ilp_ganssAdditionalDataChoices = -1; /* GanssAdditionalDataChoices */ +static int hf_ilp_ganssAuxiliaryInformation = -1; /* BOOLEAN */ +static int hf_ilp_ganssExtendedEphemeris = -1; /* ExtendedEphemeris */ +static int hf_ilp_ganssExtendedEphemerisCheck = -1; /* GanssExtendedEphCheck */ +static int hf_ilp_bds_DifferentialCorrection = -1; /* BDS_Sig_Id_Req */ +static int hf_ilp_bds_GridModelReq = -1; /* BOOLEAN */ +static int hf_ilp_ganssWeek = -1; /* INTEGER_0_4095 */ +static int hf_ilp_ganssToe = -1; /* INTEGER_0_167 */ +static int hf_ilp_t_toeLimit = -1; /* INTEGER_0_10 */ +static int hf_ilp_satellitesListRelatedDataList = -1; /* SatellitesListRelatedDataList */ +static int hf_ilp_SatellitesListRelatedDataList_item = -1; /* SatellitesListRelatedData */ +static int hf_ilp_satId = -1; /* INTEGER_0_63 */ +static int hf_ilp_iod = -1; /* INTEGER_0_1023 */ +static int hf_ilp_ganssTODmin = -1; /* INTEGER_0_59 */ +static int hf_ilp_reqDataBitAssistanceList = -1; /* ReqDataBitAssistanceList */ +static int hf_ilp_gnssSignals = -1; /* GANSSSignals */ +static int hf_ilp_ganssDataBitInterval = -1; /* INTEGER_0_15 */ +static int hf_ilp_ganssDataBitSatList = -1; /* T_ganssDataBitSatList */ +static int hf_ilp_ganssDataBitSatList_item = -1; /* INTEGER_0_63 */ +static int hf_ilp_orbitModelID = -1; /* INTEGER_0_7 */ +static int hf_ilp_clockModelID = -1; /* INTEGER_0_7 */ +static int hf_ilp_utcModelID = -1; /* INTEGER_0_7 */ +static int hf_ilp_almanacModelID = -1; /* INTEGER_0_7 */ +static int hf_ilp_beginTime_01 = -1; /* GANSSextEphTime */ +static int hf_ilp_endTime_01 = -1; /* GANSSextEphTime */ +static int hf_ilp_gANSSday = -1; /* INTEGER_0_8191 */ +static int hf_ilp_gANSSTODhour = -1; /* INTEGER_0_23 */ +static int hf_ilp_gpsWeek = -1; /* INTEGER_0_1023 */ +static int hf_ilp_gpsToe = -1; /* INTEGER_0_167 */ +static int hf_ilp_nsat = -1; /* INTEGER_0_31 */ +static int hf_ilp_toeLimit = -1; /* INTEGER_0_10 */ +static int hf_ilp_satInfo = -1; /* SatelliteInfo */ +static int hf_ilp_SatelliteInfo_item = -1; /* SatelliteInfoElement */ +static int hf_ilp_iode = -1; /* INTEGER_0_255 */ +static int hf_ilp_sPCStatusCode = -1; /* SPCStatusCode */ +static int hf_ilp_velocity = -1; /* Velocity */ +static int hf_ilp_utran_GPSReferenceTimeAssistance = -1; /* UTRAN_GPSReferenceTimeAssistance */ +static int hf_ilp_utran_GANSSReferenceTimeAssistance = -1; /* UTRAN_GANSSReferenceTimeAssistance */ +static int hf_ilp_maj = -1; /* INTEGER_0_255 */ +static int hf_ilp_min = -1; /* INTEGER_0_255 */ +static int hf_ilp_servind = -1; /* INTEGER_0_255 */ +static int hf_ilp_slcSessionID = -1; /* SlcSessionID */ +static int hf_ilp_setSessionID = -1; /* SetSessionID */ +static int hf_ilp_spcSessionID = -1; /* SpcSessionID */ +static int hf_ilp_sessionId = -1; /* INTEGER_0_65535 */ +static int hf_ilp_setId = -1; /* SETId */ +static int hf_ilp_msisdn = -1; /* T_msisdn */ +static int hf_ilp_mdn = -1; /* T_mdn */ +static int hf_ilp_minsi = -1; /* BIT_STRING_SIZE_34 */ +static int hf_ilp_imsi = -1; /* T_imsi */ +static int hf_ilp_nai = -1; /* IA5String_SIZE_1_1000 */ +static int hf_ilp_iPAddress = -1; /* IPAddress */ +static int hf_ilp_imei = -1; /* OCTET_STRING_SIZE_8 */ +static int hf_ilp_sessionID = -1; /* OCTET_STRING_SIZE_4 */ +static int hf_ilp_slcId = -1; /* NodeAddress */ +static int hf_ilp_spcId = -1; /* NodeAddress */ +static int hf_ilp_ipv4Address = -1; /* OCTET_STRING_SIZE_4 */ +static int hf_ilp_ipv6Address = -1; /* OCTET_STRING_SIZE_16 */ +static int hf_ilp_fqdn = -1; /* FQDN */ +static int hf_ilp_cellInfo = -1; /* CellInfo */ +static int hf_ilp_status = -1; /* Status */ +static int hf_ilp_MultipleLocationIds_item = -1; /* LocationIdData */ +static int hf_ilp_relativetimestamp = -1; /* RelativeTime */ +static int hf_ilp_servingFlag = -1; /* BOOLEAN */ +static int hf_ilp_posTechnology = -1; /* PosTechnology */ +static int hf_ilp_prefMethod = -1; /* PrefMethod */ +static int hf_ilp_posProtocol = -1; /* PosProtocol */ +static int hf_ilp_supportedBearers = -1; /* SupportedBearers */ +static int hf_ilp_agpsSETassisted = -1; /* BOOLEAN */ +static int hf_ilp_agpsSETBased = -1; /* BOOLEAN */ +static int hf_ilp_autonomousGPS = -1; /* BOOLEAN */ +static int hf_ilp_aflt = -1; /* BOOLEAN */ +static int hf_ilp_ecid = -1; /* BOOLEAN */ +static int hf_ilp_eotd = -1; /* BOOLEAN */ +static int hf_ilp_otdoa = -1; /* BOOLEAN */ +static int hf_ilp_gANSSPositionMethods = -1; /* GANSSPositionMethods */ +static int hf_ilp_additionalPositioningMethods = -1; /* AdditionalPositioningMethods */ +static int hf_ilp_GANSSPositionMethods_item = -1; /* GANSSPositionMethod */ +static int hf_ilp_gANSSPositioningMethodTypes = -1; /* GANSSPositioningMethodTypes */ +static int hf_ilp_gANSSSignals = -1; /* GANSSSignals */ +static int hf_ilp_setAssisted = -1; /* BOOLEAN */ +static int hf_ilp_setBased = -1; /* BOOLEAN */ +static int hf_ilp_autonomous = -1; /* BOOLEAN */ +static int hf_ilp_AdditionalPositioningMethods_item = -1; /* AddPosSupport_Element */ +static int hf_ilp_addPosID = -1; /* T_addPosID */ +static int hf_ilp_addPosMode = -1; /* T_addPosMode */ +static int hf_ilp_tia801 = -1; /* BOOLEAN */ +static int hf_ilp_rrlp = -1; /* BOOLEAN */ +static int hf_ilp_rrc = -1; /* BOOLEAN */ +static int hf_ilp_lpp = -1; /* BOOLEAN */ +static int hf_ilp_posProtocolVersionRRLP = -1; /* PosProtocolVersion3GPP */ +static int hf_ilp_posProtocolVersionRRC = -1; /* PosProtocolVersion3GPP */ +static int hf_ilp_posProtocolVersionTIA801 = -1; /* PosProtocolVersion3GPP2 */ +static int hf_ilp_posProtocolVersionLPP = -1; /* PosProtocolVersion3GPP */ +static int hf_ilp_lppe = -1; /* BOOLEAN */ +static int hf_ilp_posProtocolVersionLPPe = -1; /* PosProtocolVersionOMA */ +static int hf_ilp_majorVersionField = -1; /* INTEGER_0_255 */ +static int hf_ilp_technicalVersionField = -1; /* INTEGER_0_255 */ +static int hf_ilp_editorialVersionField = -1; /* INTEGER_0_255 */ +static int hf_ilp_PosProtocolVersion3GPP2_item = -1; /* Supported3GPP2PosProtocolVersion */ +static int hf_ilp_revisionNumber = -1; /* BIT_STRING_SIZE_6 */ +static int hf_ilp_pointReleaseNumber = -1; /* INTEGER_0_255 */ +static int hf_ilp_internalEditLevel = -1; /* INTEGER_0_255 */ +static int hf_ilp_minorVersionField = -1; /* INTEGER_0_255 */ +static int hf_ilp_gsm = -1; /* BOOLEAN */ +static int hf_ilp_wcdma = -1; /* BOOLEAN */ +static int hf_ilp_lte = -1; /* BOOLEAN */ +static int hf_ilp_cdma = -1; /* BOOLEAN */ +static int hf_ilp_hprd = -1; /* BOOLEAN */ +static int hf_ilp_umb = -1; /* BOOLEAN */ +static int hf_ilp_wlan = -1; /* BOOLEAN */ +static int hf_ilp_wiMAX = -1; /* BOOLEAN */ +static int hf_ilp_nr = -1; /* BOOLEAN */ +static int hf_ilp_gsmCell = -1; /* GsmCellInformation */ +static int hf_ilp_wcdmaCell = -1; /* WcdmaCellInformation */ +static int hf_ilp_cdmaCell = -1; /* CdmaCellInformation */ +static int hf_ilp_hrpdCell = -1; /* HrpdCellInformation */ +static int hf_ilp_umbCell = -1; /* UmbCellInformation */ +static int hf_ilp_lteCell = -1; /* LteCellInformation */ +static int hf_ilp_wlanAP = -1; /* WlanAPInformation */ +static int hf_ilp_wimaxBS = -1; /* WimaxBSInformation */ +static int hf_ilp_nrCell = -1; /* NRCellInformation */ +static int hf_ilp_set_GPSTimingOfCell = -1; /* T_set_GPSTimingOfCell */ +static int hf_ilp_ms_part = -1; /* INTEGER_0_16383 */ +static int hf_ilp_ls_part = -1; /* INTEGER_0_4294967295 */ +static int hf_ilp_modeSpecificInfo = -1; /* T_modeSpecificInfo */ +static int hf_ilp_fdd = -1; /* T_fdd */ +static int hf_ilp_referenceIdentity = -1; /* PrimaryCPICH_Info */ +static int hf_ilp_tdd = -1; /* T_tdd */ +static int hf_ilp_referenceIdentity_01 = -1; /* CellParametersID */ +static int hf_ilp_sfn = -1; /* INTEGER_0_4095 */ +static int hf_ilp_gpsReferenceTimeUncertainty = -1; /* INTEGER_0_127 */ +static int hf_ilp_ganssTimeID = -1; /* INTEGER_0_15 */ +static int hf_ilp_set_GANSSReferenceTime = -1; /* SET_GANSSReferenceTime */ +static int hf_ilp_set_GANSSTimingOfCell = -1; /* T_set_GANSSTimingOfCell */ +static int hf_ilp_ms_part_01 = -1; /* INTEGER_0_80 */ +static int hf_ilp_modeSpecificInfo_01 = -1; /* T_modeSpecificInfo_01 */ +static int hf_ilp_fdd_01 = -1; /* T_fdd_01 */ +static int hf_ilp_tdd_01 = -1; /* T_tdd_01 */ +static int hf_ilp_ganss_TODUncertainty = -1; /* INTEGER_0_127 */ +static int hf_ilp_gps = -1; /* BOOLEAN */ +static int hf_ilp_galileo = -1; /* BOOLEAN */ +static int hf_ilp_sbas = -1; /* BOOLEAN */ +static int hf_ilp_modernized_gps = -1; /* BOOLEAN */ +static int hf_ilp_qzss = -1; /* BOOLEAN */ +static int hf_ilp_glonass = -1; /* BOOLEAN */ +static int hf_ilp_bds = -1; /* BOOLEAN */ +static int hf_ilp_timestamp = -1; /* UTCTime */ +static int hf_ilp_positionEstimate = -1; /* PositionEstimate */ +static int hf_ilp_latitudeSign = -1; /* T_latitudeSign */ +static int hf_ilp_latitude = -1; /* INTEGER_0_8388607 */ +static int hf_ilp_longitude = -1; /* INTEGER_M8388608_8388607 */ +static int hf_ilp_uncertainty = -1; /* T_uncertainty */ +static int hf_ilp_uncertaintySemiMajor = -1; /* INTEGER_0_127 */ +static int hf_ilp_uncertaintySemiMinor = -1; /* INTEGER_0_127 */ +static int hf_ilp_orientationMajorAxis = -1; /* INTEGER_0_180 */ +static int hf_ilp_confidence = -1; /* INTEGER_0_100 */ +static int hf_ilp_altitudeInfo = -1; /* AltitudeInfo */ +static int hf_ilp_altitudeDirection = -1; /* T_altitudeDirection */ +static int hf_ilp_altitude = -1; /* INTEGER_0_32767 */ +static int hf_ilp_altUncertainty = -1; /* INTEGER_0_127 */ +static int hf_ilp_refNID = -1; /* INTEGER_0_65535 */ +static int hf_ilp_refSID = -1; /* INTEGER_0_32767 */ +static int hf_ilp_refBASEID = -1; /* INTEGER_0_65535 */ +static int hf_ilp_refBASELAT = -1; /* INTEGER_0_4194303 */ +static int hf_ilp_reBASELONG = -1; /* INTEGER_0_8388607 */ +static int hf_ilp_refREFPN = -1; /* INTEGER_0_511 */ +static int hf_ilp_refWeekNumber = -1; /* INTEGER_0_65535 */ +static int hf_ilp_refSeconds = -1; /* INTEGER_0_4194303 */ +static int hf_ilp_refMCC = -1; /* INTEGER_0_999 */ +static int hf_ilp_refMNC = -1; /* INTEGER_0_999 */ +static int hf_ilp_refLAC = -1; /* INTEGER_0_65535 */ +static int hf_ilp_refCI = -1; /* INTEGER_0_65535 */ +static int hf_ilp_nmr = -1; /* NMR */ +static int hf_ilp_ta = -1; /* INTEGER_0_255 */ +static int hf_ilp_refUC = -1; /* INTEGER_0_268435455 */ +static int hf_ilp_frequencyInfo = -1; /* FrequencyInfo */ +static int hf_ilp_primaryScramblingCode = -1; /* INTEGER_0_511 */ +static int hf_ilp_measuredResultsList = -1; /* MeasuredResultsList */ +static int hf_ilp_cellParametersId = -1; /* INTEGER_0_127 */ +static int hf_ilp_timingAdvance = -1; /* TimingAdvance */ +static int hf_ilp_ta_01 = -1; /* INTEGER_0_8191 */ +static int hf_ilp_tAResolution = -1; /* TAResolution */ +static int hf_ilp_chipRate = -1; /* ChipRate */ +static int hf_ilp_refSECTORID = -1; /* BIT_STRING_SIZE_128 */ +static int hf_ilp_cellGlobalIdEUTRA = -1; /* CellGlobalIdEUTRA */ +static int hf_ilp_physCellId = -1; /* PhysCellId */ +static int hf_ilp_trackingAreaCode = -1; /* TrackingAreaCode */ +static int hf_ilp_rsrpResult = -1; /* RSRP_Range */ +static int hf_ilp_rsrqResult = -1; /* RSRQ_Range */ +static int hf_ilp_ta_02 = -1; /* INTEGER_0_1282 */ +static int hf_ilp_measResultListEUTRA = -1; /* MeasResultListEUTRA */ +static int hf_ilp_earfcn = -1; /* INTEGER_0_65535 */ +static int hf_ilp_earfcn_ext = -1; /* INTEGER_65536_262143 */ +static int hf_ilp_rsrpResult_ext = -1; /* RSRP_Range_Ext */ +static int hf_ilp_rsrqResult_ext = -1; /* RSRQ_Range_Ext */ +static int hf_ilp_rs_sinrResult = -1; /* RS_SINR_Range */ +static int hf_ilp_servingInformation5G = -1; /* ServingInformation5G */ +static int hf_ilp_MeasResultListEUTRA_item = -1; /* MeasResultEUTRA */ +static int hf_ilp_cgi_Info = -1; /* T_cgi_Info */ +static int hf_ilp_cellGlobalId = -1; /* CellGlobalIdEUTRA */ +static int hf_ilp_measResult = -1; /* T_measResult */ +static int hf_ilp_neighbourInformation5G = -1; /* NeighbourInformation5G */ +static int hf_ilp_plmn_Identity = -1; /* PLMN_Identity */ +static int hf_ilp_eutra_cellIdentity = -1; /* CellIdentity */ +static int hf_ilp_mcc = -1; /* MCC */ +static int hf_ilp_mnc = -1; /* MNC */ +static int hf_ilp_MCC_item = -1; /* MCC_MNC_Digit */ +static int hf_ilp_MNC_item = -1; /* MCC_MNC_Digit */ +static int hf_ilp_trackingAreaCode_01 = -1; /* TrackingAreaCodeNR */ +static int hf_ilp_apMACAddress = -1; /* BIT_STRING_SIZE_48 */ +static int hf_ilp_apTransmitPower = -1; /* INTEGER_M127_128 */ +static int hf_ilp_apAntennaGain = -1; /* INTEGER_M127_128 */ +static int hf_ilp_apSignaltoNoise = -1; /* INTEGER_M127_128 */ +static int hf_ilp_apDeviceType = -1; /* T_apDeviceType */ +static int hf_ilp_apSignalStrength = -1; /* INTEGER_M127_128 */ +static int hf_ilp_apChannelFrequency = -1; /* INTEGER_0_256 */ +static int hf_ilp_apRoundTripDelay = -1; /* RTD */ +static int hf_ilp_setTransmitPower = -1; /* INTEGER_M127_128 */ +static int hf_ilp_setAntennaGain = -1; /* INTEGER_M127_128 */ +static int hf_ilp_setSignaltoNoise = -1; /* INTEGER_M127_128 */ +static int hf_ilp_setSignalStrength = -1; /* INTEGER_M127_128 */ +static int hf_ilp_apReportedLocation = -1; /* ReportedLocation */ +static int hf_ilp_apRepLocation = -1; /* RepLocation */ +static int hf_ilp_apSignalStrengthDelta = -1; /* INTEGER_0_1 */ +static int hf_ilp_apSignaltoNoiseDelta = -1; /* INTEGER_0_1 */ +static int hf_ilp_setSignalStrengthDelta = -1; /* INTEGER_0_1 */ +static int hf_ilp_setSignaltoNoiseDelta = -1; /* INTEGER_0_1 */ +static int hf_ilp_operatingClass = -1; /* INTEGER_0_255 */ +static int hf_ilp_apSSID = -1; /* OCTET_STRING_SIZE_1_32 */ +static int hf_ilp_apPHYType = -1; /* T_apPHYType */ +static int hf_ilp_setMACAddress = -1; /* BIT_STRING_SIZE_48 */ +static int hf_ilp_rTDValue = -1; /* INTEGER_0_16777216 */ +static int hf_ilp_rTDUnits = -1; /* RTDUnits */ +static int hf_ilp_rTDAccuracy = -1; /* INTEGER_0_255 */ +static int hf_ilp_locationEncodingDescriptor = -1; /* LocationEncodingDescriptor */ +static int hf_ilp_locationData = -1; /* LocationData */ +static int hf_ilp_locationAccuracy = -1; /* INTEGER_0_4294967295 */ +static int hf_ilp_locationValue = -1; /* OCTET_STRING_SIZE_1_128 */ +static int hf_ilp_lciLocData = -1; /* LciLocData */ +static int hf_ilp_locationDataLCI = -1; /* LocationDataLCI */ +static int hf_ilp_latitudeResolution = -1; /* BIT_STRING_SIZE_6 */ +static int hf_ilp_LocationDataLCI_latitude = -1; /* BIT_STRING_SIZE_34 */ +static int hf_ilp_longitudeResolution = -1; /* BIT_STRING_SIZE_6 */ +static int hf_ilp_LocationDataLCI_longitude = -1; /* BIT_STRING_SIZE_34 */ +static int hf_ilp_altitudeType = -1; /* BIT_STRING_SIZE_4 */ +static int hf_ilp_altitudeResolution = -1; /* BIT_STRING_SIZE_6 */ +static int hf_ilp_LocationDataLCI_altitude = -1; /* BIT_STRING_SIZE_30 */ +static int hf_ilp_datum = -1; /* BIT_STRING_SIZE_8 */ +static int hf_ilp_wimaxBsID = -1; /* WimaxBsID */ +static int hf_ilp_wimaxRTD = -1; /* WimaxRTD */ +static int hf_ilp_wimaxNMRList = -1; /* WimaxNMRList */ +static int hf_ilp_bsID_MSB = -1; /* BIT_STRING_SIZE_24 */ +static int hf_ilp_bsID_LSB = -1; /* BIT_STRING_SIZE_24 */ +static int hf_ilp_rtd = -1; /* INTEGER_0_65535 */ +static int hf_ilp_rTDstd = -1; /* INTEGER_0_1023 */ +static int hf_ilp_WimaxNMRList_item = -1; /* WimaxNMR */ +static int hf_ilp_relDelay = -1; /* INTEGER_M32768_32767 */ +static int hf_ilp_relDelaystd = -1; /* INTEGER_0_1023 */ +static int hf_ilp_rssi = -1; /* INTEGER_0_255 */ +static int hf_ilp_rSSIstd = -1; /* INTEGER_0_63 */ +static int hf_ilp_bSTxPower = -1; /* INTEGER_0_255 */ +static int hf_ilp_cinr = -1; /* INTEGER_0_255 */ +static int hf_ilp_cINRstd = -1; /* INTEGER_0_63 */ +static int hf_ilp_bSLocation = -1; /* ReportedLocation */ +static int hf_ilp_servingCellInformation = -1; /* ServingCellInformationNR */ +static int hf_ilp_measuredResultsListNR = -1; /* MeasResultListNR */ +static int hf_ilp_ServingCellInformationNR_item = -1; /* ServCellNR */ +static int hf_ilp_physCellId_01 = -1; /* PhysCellIdNR */ +static int hf_ilp_arfcn_NR = -1; /* ARFCN_NR */ +static int hf_ilp_cellGlobalId_01 = -1; /* CellGlobalIdNR */ +static int hf_ilp_ssb_Measurements = -1; /* NR_Measurements */ +static int hf_ilp_csi_rs_Measurements = -1; /* NR_Measurements */ +static int hf_ilp_ta_03 = -1; /* INTEGER_0_3846 */ +static int hf_ilp_MeasResultListNR_item = -1; /* MeasResultNR */ +static int hf_ilp_cellIdentityNR = -1; /* CellIdentityNR */ +static int hf_ilp_rsrp_Range = -1; /* INTEGER_0_127 */ +static int hf_ilp_rsrq_Range = -1; /* INTEGER_0_127 */ +static int hf_ilp_sinr_Range = -1; /* INTEGER_0_127 */ +static int hf_ilp_modeSpecificFrequencyInfo = -1; /* FrequencySpecificInfo */ +static int hf_ilp_fdd_fr = -1; /* FrequencyInfoFDD */ +static int hf_ilp_tdd_fr = -1; /* FrequencyInfoTDD */ +static int hf_ilp_uarfcn_UL = -1; /* UARFCN */ +static int hf_ilp_uarfcn_DL = -1; /* UARFCN */ +static int hf_ilp_uarfcn_Nt = -1; /* UARFCN */ +static int hf_ilp_NMR_item = -1; /* NMRelement */ +static int hf_ilp_arfcn = -1; /* INTEGER_0_1023 */ +static int hf_ilp_bsic = -1; /* INTEGER_0_63 */ +static int hf_ilp_rxLev = -1; /* INTEGER_0_63 */ +static int hf_ilp_MeasuredResultsList_item = -1; /* MeasuredResults */ +static int hf_ilp_utra_CarrierRSSI = -1; /* UTRA_CarrierRSSI */ +static int hf_ilp_cellMeasuredResultsList = -1; /* CellMeasuredResultsList */ +static int hf_ilp_CellMeasuredResultsList_item = -1; /* CellMeasuredResults */ +static int hf_ilp_cellIdentity = -1; /* INTEGER_0_268435455 */ +static int hf_ilp_modeSpecificInfo_02 = -1; /* T_modeSpecificInfo_02 */ +static int hf_ilp_fdd_02 = -1; /* T_fdd_02 */ +static int hf_ilp_primaryCPICH_Info = -1; /* PrimaryCPICH_Info */ +static int hf_ilp_cpich_Ec_N0 = -1; /* CPICH_Ec_N0 */ +static int hf_ilp_cpich_RSCP = -1; /* CPICH_RSCP */ +static int hf_ilp_pathloss = -1; /* Pathloss */ +static int hf_ilp_tdd_02 = -1; /* T_tdd_02 */ +static int hf_ilp_cellParametersID = -1; /* CellParametersID */ +static int hf_ilp_proposedTGSN = -1; /* TGSN */ +static int hf_ilp_primaryCCPCH_RSCP = -1; /* PrimaryCCPCH_RSCP */ +static int hf_ilp_timeslotISCP_List = -1; /* TimeslotISCP_List */ +static int hf_ilp_TimeslotISCP_List_item = -1; /* TimeslotISCP */ +static int hf_ilp_utran_GPSReferenceTime = -1; /* UTRAN_GPSReferenceTime */ +static int hf_ilp_utranGPSDriftRate = -1; /* UTRANGPSDriftRate */ +static int hf_ilp_utran_GPSTimingOfCell = -1; /* T_utran_GPSTimingOfCell */ +static int hf_ilp_ms_part_02 = -1; /* INTEGER_0_1023 */ +static int hf_ilp_modeSpecificInfo_03 = -1; /* T_modeSpecificInfo_03 */ +static int hf_ilp_fdd_03 = -1; /* T_fdd_03 */ +static int hf_ilp_tdd_03 = -1; /* T_tdd_03 */ +static int hf_ilp_utran_GANSSReferenceTime = -1; /* UTRAN_GANSSReferenceTime */ +static int hf_ilp_ganssDay = -1; /* INTEGER_0_8191 */ +static int hf_ilp_utranGANSSDriftRate = -1; /* UTRANGANSSDriftRate */ +static int hf_ilp_ganssTOD = -1; /* INTEGER_0_86399 */ +static int hf_ilp_utran_GANSSTimingOfCell = -1; /* INTEGER_0_3999999 */ +static int hf_ilp_modeSpecificInfo_04 = -1; /* T_modeSpecificInfo_04 */ +static int hf_ilp_fdd_04 = -1; /* T_fdd_04 */ +static int hf_ilp_tdd_04 = -1; /* T_tdd_04 */ +static int hf_ilp_horacc = -1; /* INTEGER_0_127 */ +static int hf_ilp_veracc = -1; /* INTEGER_0_127 */ +static int hf_ilp_maxLocAge = -1; /* INTEGER_0_65535 */ +static int hf_ilp_delay = -1; /* INTEGER_0_7 */ +static int hf_ilp_ver2_responseTime = -1; /* INTEGER_1_128 */ +static int hf_ilp_horvel = -1; /* Horvel */ +static int hf_ilp_horandvervel = -1; /* Horandvervel */ +static int hf_ilp_horveluncert = -1; /* Horveluncert */ +static int hf_ilp_horandveruncert = -1; /* Horandveruncert */ +static int hf_ilp_bearing = -1; /* BIT_STRING_SIZE_9 */ +static int hf_ilp_horspeed = -1; /* BIT_STRING_SIZE_16 */ +static int hf_ilp_verdirect = -1; /* BIT_STRING_SIZE_1 */ +static int hf_ilp_verspeed = -1; /* BIT_STRING_SIZE_8 */ +static int hf_ilp_uncertspeed = -1; /* BIT_STRING_SIZE_8 */ +static int hf_ilp_horuncertspeed = -1; /* BIT_STRING_SIZE_8 */ +static int hf_ilp_veruncertspeed = -1; /* BIT_STRING_SIZE_8 */ +static int hf_ilp_rand = -1; /* BIT_STRING_SIZE_128 */ +static int hf_ilp_slpFQDN = -1; /* FQDN */ +static int hf_ilp_rrcPayload = -1; /* OCTET_STRING_SIZE_1_8192 */ +static int hf_ilp_rrlpPayload = -1; /* T_rrlpPayload */ +static int hf_ilp_multiPosPayload = -1; /* MultiPosPayLoad */ +static int hf_ilp_lPPPayload = -1; /* T_lPPPayload */ +static int hf_ilp_lPPPayload_item = -1; /* T_lPPPayload_item */ +static int hf_ilp_tia801Payload = -1; /* T_tia801Payload */ +static int hf_ilp_tia801Payload_item = -1; /* OCTET_STRING_SIZE_1_60000 */ +/* named bits */ +static int hf_ilp_GANSSSignals_signal1 = -1; +static int hf_ilp_GANSSSignals_signal2 = -1; +static int hf_ilp_GANSSSignals_signal3 = -1; +static int hf_ilp_GANSSSignals_signal4 = -1; +static int hf_ilp_GANSSSignals_signal5 = -1; +static int hf_ilp_GANSSSignals_signal6 = -1; +static int hf_ilp_GANSSSignals_signal7 = -1; +static int hf_ilp_GANSSSignals_signal8 = -1; +static int hf_ilp_T_addPosMode_standalone = -1; +static int hf_ilp_T_addPosMode_setBased = -1; +static int hf_ilp_T_addPosMode_setAssisted = -1; +static int hf_ilp_mobile_directory_number = -1; + +/* Initialize the subtree pointers */ +static gint ett_ilp = -1; +static gint ett_ilp_setid = -1; +static gint ett_ilp_ILP_PDU = -1; +static gint ett_ilp_IlpMessage = -1; +static gint ett_ilp_PREQ = -1; +static gint ett_ilp_TriggerParams = -1; +static gint ett_ilp_PeriodicTriggerParams = -1; +static gint ett_ilp_PRES = -1; +static gint ett_ilp_PRPT = -1; +static gint ett_ilp_PLREQ = -1; +static gint ett_ilp_PLRES = -1; +static gint ett_ilp_PositionResults = -1; +static gint ett_ilp_PositionResult = -1; +static gint ett_ilp_PINIT = -1; +static gint ett_ilp_RequestedAssistData = -1; +static gint ett_ilp_ExtendedEphemeris = -1; +static gint ett_ilp_ExtendedEphCheck = -1; +static gint ett_ilp_GPSTime = -1; +static gint ett_ilp_GanssRequestedCommonAssistanceDataList = -1; +static gint ett_ilp_GanssRequestedGenericAssistanceDataList = -1; +static gint ett_ilp_GanssReqGenericData = -1; +static gint ett_ilp_GanssNavigationModelData = -1; +static gint ett_ilp_SatellitesListRelatedDataList = -1; +static gint ett_ilp_SatellitesListRelatedData = -1; +static gint ett_ilp_GanssDataBits = -1; +static gint ett_ilp_ReqDataBitAssistanceList = -1; +static gint ett_ilp_T_ganssDataBitSatList = -1; +static gint ett_ilp_GanssAdditionalDataChoices = -1; +static gint ett_ilp_GanssExtendedEphCheck = -1; +static gint ett_ilp_GANSSextEphTime = -1; +static gint ett_ilp_NavigationModel = -1; +static gint ett_ilp_SatelliteInfo = -1; +static gint ett_ilp_SatelliteInfoElement = -1; +static gint ett_ilp_PAUTH = -1; +static gint ett_ilp_PALIVE = -1; +static gint ett_ilp_PEND = -1; +static gint ett_ilp_PMESS = -1; +static gint ett_ilp_Version = -1; +static gint ett_ilp_SessionID2 = -1; +static gint ett_ilp_SetSessionID = -1; +static gint ett_ilp_SETId = -1; +static gint ett_ilp_SlcSessionID = -1; +static gint ett_ilp_SpcSessionID = -1; +static gint ett_ilp_IPAddress = -1; +static gint ett_ilp_NodeAddress = -1; +static gint ett_ilp_LocationId = -1; +static gint ett_ilp_MultipleLocationIds = -1; +static gint ett_ilp_LocationIdData = -1; +static gint ett_ilp_SETCapabilities = -1; +static gint ett_ilp_PosTechnology = -1; +static gint ett_ilp_GANSSPositionMethods = -1; +static gint ett_ilp_GANSSPositionMethod = -1; +static gint ett_ilp_GANSSPositioningMethodTypes = -1; +static gint ett_ilp_GANSSSignals = -1; +static gint ett_ilp_AdditionalPositioningMethods = -1; +static gint ett_ilp_AddPosSupport_Element = -1; +static gint ett_ilp_T_addPosMode = -1; +static gint ett_ilp_PosProtocol = -1; +static gint ett_ilp_PosProtocolVersion3GPP = -1; +static gint ett_ilp_PosProtocolVersion3GPP2 = -1; +static gint ett_ilp_Supported3GPP2PosProtocolVersion = -1; +static gint ett_ilp_PosProtocolVersionOMA = -1; +static gint ett_ilp_SupportedBearers = -1; +static gint ett_ilp_CellInfo = -1; +static gint ett_ilp_UTRAN_GPSReferenceTimeResult = -1; +static gint ett_ilp_T_set_GPSTimingOfCell = -1; +static gint ett_ilp_T_modeSpecificInfo = -1; +static gint ett_ilp_T_fdd = -1; +static gint ett_ilp_T_tdd = -1; +static gint ett_ilp_UTRAN_GANSSReferenceTimeResult = -1; +static gint ett_ilp_SET_GANSSReferenceTime = -1; +static gint ett_ilp_T_set_GANSSTimingOfCell = -1; +static gint ett_ilp_T_modeSpecificInfo_01 = -1; +static gint ett_ilp_T_fdd_01 = -1; +static gint ett_ilp_T_tdd_01 = -1; +static gint ett_ilp_GNSSPosTechnology = -1; +static gint ett_ilp_Position = -1; +static gint ett_ilp_PositionEstimate = -1; +static gint ett_ilp_T_uncertainty = -1; +static gint ett_ilp_AltitudeInfo = -1; +static gint ett_ilp_CdmaCellInformation = -1; +static gint ett_ilp_GsmCellInformation = -1; +static gint ett_ilp_WcdmaCellInformation = -1; +static gint ett_ilp_TimingAdvance = -1; +static gint ett_ilp_HrpdCellInformation = -1; +static gint ett_ilp_UmbCellInformation = -1; +static gint ett_ilp_LteCellInformation = -1; +static gint ett_ilp_MeasResultListEUTRA = -1; +static gint ett_ilp_MeasResultEUTRA = -1; +static gint ett_ilp_T_cgi_Info = -1; +static gint ett_ilp_T_measResult = -1; +static gint ett_ilp_CellGlobalIdEUTRA = -1; +static gint ett_ilp_PLMN_Identity = -1; +static gint ett_ilp_MCC = -1; +static gint ett_ilp_MNC = -1; +static gint ett_ilp_ServingInformation5G = -1; +static gint ett_ilp_NeighbourInformation5G = -1; +static gint ett_ilp_WlanAPInformation = -1; +static gint ett_ilp_RTD = -1; +static gint ett_ilp_ReportedLocation = -1; +static gint ett_ilp_LocationData = -1; +static gint ett_ilp_RepLocation = -1; +static gint ett_ilp_LciLocData = -1; +static gint ett_ilp_LocationDataLCI = -1; +static gint ett_ilp_WimaxBSInformation = -1; +static gint ett_ilp_WimaxBsID = -1; +static gint ett_ilp_WimaxRTD = -1; +static gint ett_ilp_WimaxNMRList = -1; +static gint ett_ilp_WimaxNMR = -1; +static gint ett_ilp_NRCellInformation = -1; +static gint ett_ilp_ServingCellInformationNR = -1; +static gint ett_ilp_ServCellNR = -1; +static gint ett_ilp_MeasResultListNR = -1; +static gint ett_ilp_MeasResultNR = -1; +static gint ett_ilp_CellGlobalIdNR = -1; +static gint ett_ilp_NR_Measurements = -1; +static gint ett_ilp_FrequencyInfo = -1; +static gint ett_ilp_FrequencySpecificInfo = -1; +static gint ett_ilp_FrequencyInfoFDD = -1; +static gint ett_ilp_FrequencyInfoTDD = -1; +static gint ett_ilp_NMR = -1; +static gint ett_ilp_NMRelement = -1; +static gint ett_ilp_MeasuredResultsList = -1; +static gint ett_ilp_MeasuredResults = -1; +static gint ett_ilp_CellMeasuredResultsList = -1; +static gint ett_ilp_CellMeasuredResults = -1; +static gint ett_ilp_T_modeSpecificInfo_02 = -1; +static gint ett_ilp_T_fdd_02 = -1; +static gint ett_ilp_T_tdd_02 = -1; +static gint ett_ilp_TimeslotISCP_List = -1; +static gint ett_ilp_PrimaryCPICH_Info = -1; +static gint ett_ilp_UTRAN_GPSReferenceTimeAssistance = -1; +static gint ett_ilp_UTRAN_GPSReferenceTime = -1; +static gint ett_ilp_T_utran_GPSTimingOfCell = -1; +static gint ett_ilp_T_modeSpecificInfo_03 = -1; +static gint ett_ilp_T_fdd_03 = -1; +static gint ett_ilp_T_tdd_03 = -1; +static gint ett_ilp_UTRAN_GANSSReferenceTimeAssistance = -1; +static gint ett_ilp_UTRAN_GANSSReferenceTime = -1; +static gint ett_ilp_T_modeSpecificInfo_04 = -1; +static gint ett_ilp_T_fdd_04 = -1; +static gint ett_ilp_T_tdd_04 = -1; +static gint ett_ilp_QoP = -1; +static gint ett_ilp_Velocity = -1; +static gint ett_ilp_Horvel = -1; +static gint ett_ilp_Horandvervel = -1; +static gint ett_ilp_Horveluncert = -1; +static gint ett_ilp_Horandveruncert = -1; +static gint ett_ilp_SPCTID = -1; +static gint ett_ilp_PosPayLoad = -1; +static gint ett_ilp_MultiPosPayLoad = -1; +static gint ett_ilp_T_lPPPayload = -1; +static gint ett_ilp_T_tia801Payload = -1; + +/* Include constants */ +#define maxGANSS 16 +#define maxGANSSSat 32 +#define maxLidSize 64 +#define maxCellReport 8 +#define maxWimaxBSMeas 32 +#define maxNRServingCell 32 +#define maxCellReportNR 32 +#define maxCellMeas 32 +#define maxFreq 8 +#define maxTS 14 +#define maxPosSize 1024 + + + + +static int +dissect_ilp_INTEGER_0_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, + 0U, 65535U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 255U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t Version_sequence[] = { + { &hf_ilp_maj , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_255 }, + { &hf_ilp_min , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_255 }, + { &hf_ilp_servind , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_255 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_Version(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_ilp_Version, Version_sequence); + + return offset; +} + + + +static int +dissect_ilp_OCTET_STRING_SIZE_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 4, 4, FALSE, NULL); + + return offset; +} + + + +static int +dissect_ilp_OCTET_STRING_SIZE_16(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, + 16, 16, FALSE, NULL); + + return offset; +} + + +static const value_string ilp_IPAddress_vals[] = { + { 0, "ipv4Address" }, + { 1, "ipv6Address" }, + { 0, NULL } +}; + +static const per_choice_t IPAddress_choice[] = { + { 0, &hf_ilp_ipv4Address , ASN1_NO_EXTENSIONS , dissect_ilp_OCTET_STRING_SIZE_4 }, + { 1, &hf_ilp_ipv6Address , ASN1_NO_EXTENSIONS , dissect_ilp_OCTET_STRING_SIZE_16 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_ilp_IPAddress(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_ilp_IPAddress, IPAddress_choice, + NULL); + + return offset; +} + + + +static int +dissect_ilp_FQDN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index, + 1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-", 64, + NULL); + + return offset; +} + + +static const value_string ilp_NodeAddress_vals[] = { + { 0, "iPAddress" }, + { 1, "fqdn" }, + { 0, NULL } +}; + +static const per_choice_t NodeAddress_choice[] = { + { 0, &hf_ilp_iPAddress , ASN1_EXTENSION_ROOT , dissect_ilp_IPAddress }, + { 1, &hf_ilp_fqdn , ASN1_EXTENSION_ROOT , dissect_ilp_FQDN }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_ilp_NodeAddress(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_ilp_NodeAddress, NodeAddress_choice, + NULL); + + return offset; +} + + +static const per_sequence_t SlcSessionID_sequence[] = { + { &hf_ilp_sessionID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_OCTET_STRING_SIZE_4 }, + { &hf_ilp_slcId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_NodeAddress }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_SlcSessionID(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_ilp_SlcSessionID, SlcSessionID_sequence); + + return offset; +} + + + +static int +dissect_ilp_T_msisdn(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *msisdn_tvb; + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 8, 8, FALSE, &msisdn_tvb); + + if (msisdn_tvb) { + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_ilp_setid); + dissect_e164_msisdn(msisdn_tvb, subtree, 0, 8, E164_ENC_BCD); + } + + + return offset; +} + + + +static int +dissect_ilp_T_mdn(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *mdn_tvb; + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 8, 8, FALSE, &mdn_tvb); + + if (mdn_tvb) { + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_ilp_setid); + proto_tree_add_item(subtree, hf_ilp_mobile_directory_number, mdn_tvb, 0, 8, ENC_BCD_DIGITS_0_9); + } + + + return offset; +} + + + +static int +dissect_ilp_BIT_STRING_SIZE_34(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, + 34, 34, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + + +static int +dissect_ilp_T_imsi(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *imsi_tvb; + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 8, 8, FALSE, &imsi_tvb); + + if (imsi_tvb) { + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_ilp_setid); + dissect_e212_imsi(imsi_tvb, actx->pinfo, subtree, 0, 8, FALSE); + } + + + return offset; +} + + + +static int +dissect_ilp_IA5String_SIZE_1_1000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index, + 1, 1000, FALSE, + NULL); + + return offset; +} + + + +static int +dissect_ilp_OCTET_STRING_SIZE_8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 8, 8, FALSE, NULL); + + return offset; +} + + +static const value_string ilp_SETId_vals[] = { + { 0, "msisdn" }, + { 1, "mdn" }, + { 2, "min" }, + { 3, "imsi" }, + { 4, "nai" }, + { 5, "iPAddress" }, + { 6, "imei" }, + { 0, NULL } +}; + +static const per_choice_t SETId_choice[] = { + { 0, &hf_ilp_msisdn , ASN1_EXTENSION_ROOT , dissect_ilp_T_msisdn }, + { 1, &hf_ilp_mdn , ASN1_EXTENSION_ROOT , dissect_ilp_T_mdn }, + { 2, &hf_ilp_minsi , ASN1_EXTENSION_ROOT , dissect_ilp_BIT_STRING_SIZE_34 }, + { 3, &hf_ilp_imsi , ASN1_EXTENSION_ROOT , dissect_ilp_T_imsi }, + { 4, &hf_ilp_nai , ASN1_EXTENSION_ROOT , dissect_ilp_IA5String_SIZE_1_1000 }, + { 5, &hf_ilp_iPAddress , ASN1_EXTENSION_ROOT , dissect_ilp_IPAddress }, + { 6, &hf_ilp_imei , ASN1_NOT_EXTENSION_ROOT, dissect_ilp_OCTET_STRING_SIZE_8 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_ilp_SETId(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_ilp_SETId, SETId_choice, + NULL); + + return offset; +} + + +static const per_sequence_t SetSessionID_sequence[] = { + { &hf_ilp_sessionId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_65535 }, + { &hf_ilp_setId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_SETId }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_SetSessionID(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_ilp_SetSessionID, SetSessionID_sequence); + + return offset; +} + + +static const per_sequence_t SpcSessionID_sequence[] = { + { &hf_ilp_sessionID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_OCTET_STRING_SIZE_4 }, + { &hf_ilp_spcId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_NodeAddress }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_SpcSessionID(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_ilp_SpcSessionID, SpcSessionID_sequence); + + return offset; +} + + +static const per_sequence_t SessionID2_sequence[] = { + { &hf_ilp_slcSessionID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_SlcSessionID }, + { &hf_ilp_setSessionID , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ilp_SetSessionID }, + { &hf_ilp_spcSessionID , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ilp_SpcSessionID }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_SessionID2(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_ilp_SessionID2, SessionID2_sequence); + + return offset; +} + + +static const value_string ilp_SLPMode_vals[] = { + { 0, "proxy" }, + { 1, "nonProxy" }, + { 0, NULL } +}; + + +static int +dissect_ilp_SLPMode(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, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_ilp_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 15U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_ilp_BIT_STRING_SIZE_3(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, 3, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + +static const per_sequence_t GANSSPositioningMethodTypes_sequence[] = { + { &hf_ilp_setAssisted , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_setBased , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_autonomous , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_GANSSPositioningMethodTypes(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_ilp_GANSSPositioningMethodTypes, GANSSPositioningMethodTypes_sequence); + + return offset; +} + + +static int * const GANSSSignals_bits[] = { + &hf_ilp_GANSSSignals_signal1, + &hf_ilp_GANSSSignals_signal2, + &hf_ilp_GANSSSignals_signal3, + &hf_ilp_GANSSSignals_signal4, + &hf_ilp_GANSSSignals_signal5, + &hf_ilp_GANSSSignals_signal6, + &hf_ilp_GANSSSignals_signal7, + &hf_ilp_GANSSSignals_signal8, + NULL +}; + +static int +dissect_ilp_GANSSSignals(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 1, 8, FALSE, GANSSSignals_bits, 8, NULL, NULL); + + return offset; +} + + +static const per_sequence_t GANSSPositionMethod_sequence[] = { + { &hf_ilp_ganssId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_15 }, + { &hf_ilp_ganssSBASid , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_BIT_STRING_SIZE_3 }, + { &hf_ilp_gANSSPositioningMethodTypes, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_GANSSPositioningMethodTypes }, + { &hf_ilp_gANSSSignals , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_GANSSSignals }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_GANSSPositionMethod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_ilp_GANSSPositionMethod, GANSSPositionMethod_sequence); + + return offset; +} + + +static const per_sequence_t GANSSPositionMethods_sequence_of[1] = { + { &hf_ilp_GANSSPositionMethods_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_GANSSPositionMethod }, +}; + +static int +dissect_ilp_GANSSPositionMethods(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_ilp_GANSSPositionMethods, GANSSPositionMethods_sequence_of, + 1, 16, FALSE); + + return offset; +} + + +static const value_string ilp_T_addPosID_vals[] = { + { 0, "mBS" }, + { 0, NULL } +}; + + +static int +dissect_ilp_T_addPosID(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, + 1, NULL, TRUE, 0, NULL); + + return offset; +} + + +static int * const T_addPosMode_bits[] = { + &hf_ilp_T_addPosMode_standalone, + &hf_ilp_T_addPosMode_setBased, + &hf_ilp_T_addPosMode_setAssisted, + NULL +}; + +static int +dissect_ilp_T_addPosMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 1, 8, FALSE, T_addPosMode_bits, 3, NULL, NULL); + + return offset; +} + + +static const per_sequence_t AddPosSupport_Element_sequence[] = { + { &hf_ilp_addPosID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_T_addPosID }, + { &hf_ilp_addPosMode , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_T_addPosMode }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_AddPosSupport_Element(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_ilp_AddPosSupport_Element, AddPosSupport_Element_sequence); + + return offset; +} + + +static const per_sequence_t AdditionalPositioningMethods_sequence_of[1] = { + { &hf_ilp_AdditionalPositioningMethods_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_AddPosSupport_Element }, +}; + +static int +dissect_ilp_AdditionalPositioningMethods(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_ilp_AdditionalPositioningMethods, AdditionalPositioningMethods_sequence_of, + 1, 8, FALSE); + + return offset; +} + + +static const per_sequence_t PosTechnology_sequence[] = { + { &hf_ilp_agpsSETassisted , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_agpsSETBased , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_autonomousGPS , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_aflt , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_ecid , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_eotd , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_otdoa , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_gANSSPositionMethods, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_GANSSPositionMethods }, + { &hf_ilp_additionalPositioningMethods, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_AdditionalPositioningMethods }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_PosTechnology(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_ilp_PosTechnology, PosTechnology_sequence); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_999(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, 999U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_1023(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, 1023U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_63(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 63U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t NMRelement_sequence[] = { + { &hf_ilp_arfcn , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_1023 }, + { &hf_ilp_bsic , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_63 }, + { &hf_ilp_rxLev , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_63 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_NMRelement(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_ilp_NMRelement, NMRelement_sequence); + + return offset; +} + + +static const per_sequence_t NMR_sequence_of[1] = { + { &hf_ilp_NMR_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_NMRelement }, +}; + +static int +dissect_ilp_NMR(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_ilp_NMR, NMR_sequence_of, + 1, 15, FALSE); + + return offset; +} + + +static const per_sequence_t GsmCellInformation_sequence[] = { + { &hf_ilp_refMCC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_999 }, + { &hf_ilp_refMNC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_999 }, + { &hf_ilp_refLAC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_65535 }, + { &hf_ilp_refCI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_65535 }, + { &hf_ilp_nmr , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_NMR }, + { &hf_ilp_ta , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_255 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_GsmCellInformation(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_ilp_GsmCellInformation, GsmCellInformation_sequence); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_268435455(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, 268435455U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_ilp_UARFCN(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, 16383U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t FrequencyInfoFDD_sequence[] = { + { &hf_ilp_uarfcn_UL , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_UARFCN }, + { &hf_ilp_uarfcn_DL , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_UARFCN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_FrequencyInfoFDD(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_ilp_FrequencyInfoFDD, FrequencyInfoFDD_sequence); + + return offset; +} + + +static const per_sequence_t FrequencyInfoTDD_sequence[] = { + { &hf_ilp_uarfcn_Nt , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_UARFCN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_FrequencyInfoTDD(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_ilp_FrequencyInfoTDD, FrequencyInfoTDD_sequence); + + return offset; +} + + +static const value_string ilp_FrequencySpecificInfo_vals[] = { + { 0, "fdd" }, + { 1, "tdd" }, + { 0, NULL } +}; + +static const per_choice_t FrequencySpecificInfo_choice[] = { + { 0, &hf_ilp_fdd_fr , ASN1_EXTENSION_ROOT , dissect_ilp_FrequencyInfoFDD }, + { 1, &hf_ilp_tdd_fr , ASN1_EXTENSION_ROOT , dissect_ilp_FrequencyInfoTDD }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_ilp_FrequencySpecificInfo(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_ilp_FrequencySpecificInfo, FrequencySpecificInfo_choice, + NULL); + + return offset; +} + + +static const per_sequence_t FrequencyInfo_sequence[] = { + { &hf_ilp_modeSpecificFrequencyInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_FrequencySpecificInfo }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_FrequencyInfo(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_ilp_FrequencyInfo, FrequencyInfo_sequence); + + return offset; +} + + + +static int +dissect_ilp_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_ilp_UTRA_CarrierRSSI(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 PrimaryCPICH_Info_sequence[] = { + { &hf_ilp_primaryScramblingCode, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_511 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_PrimaryCPICH_Info(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_ilp_PrimaryCPICH_Info, PrimaryCPICH_Info_sequence); + + return offset; +} + + + +static int +dissect_ilp_CPICH_Ec_N0(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 int +dissect_ilp_CPICH_RSCP(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_ilp_Pathloss(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, + 46U, 173U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_fdd_02_sequence[] = { + { &hf_ilp_primaryCPICH_Info, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_PrimaryCPICH_Info }, + { &hf_ilp_cpich_Ec_N0 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ilp_CPICH_Ec_N0 }, + { &hf_ilp_cpich_RSCP , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ilp_CPICH_RSCP }, + { &hf_ilp_pathloss , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ilp_Pathloss }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_T_fdd_02(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_ilp_T_fdd_02, T_fdd_02_sequence); + + return offset; +} + + + +static int +dissect_ilp_CellParametersID(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_ilp_TGSN(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, 14U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_ilp_PrimaryCCPCH_RSCP(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_ilp_TimeslotISCP(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 TimeslotISCP_List_sequence_of[1] = { + { &hf_ilp_TimeslotISCP_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_TimeslotISCP }, +}; + +static int +dissect_ilp_TimeslotISCP_List(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_ilp_TimeslotISCP_List, TimeslotISCP_List_sequence_of, + 1, maxTS, FALSE); + + return offset; +} + + +static const per_sequence_t T_tdd_02_sequence[] = { + { &hf_ilp_cellParametersID, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_CellParametersID }, + { &hf_ilp_proposedTGSN , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ilp_TGSN }, + { &hf_ilp_primaryCCPCH_RSCP, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ilp_PrimaryCCPCH_RSCP }, + { &hf_ilp_pathloss , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ilp_Pathloss }, + { &hf_ilp_timeslotISCP_List, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ilp_TimeslotISCP_List }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_T_tdd_02(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_ilp_T_tdd_02, T_tdd_02_sequence); + + return offset; +} + + +static const value_string ilp_T_modeSpecificInfo_02_vals[] = { + { 0, "fdd" }, + { 1, "tdd" }, + { 0, NULL } +}; + +static const per_choice_t T_modeSpecificInfo_02_choice[] = { + { 0, &hf_ilp_fdd_02 , ASN1_NO_EXTENSIONS , dissect_ilp_T_fdd_02 }, + { 1, &hf_ilp_tdd_02 , ASN1_NO_EXTENSIONS , dissect_ilp_T_tdd_02 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_ilp_T_modeSpecificInfo_02(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_ilp_T_modeSpecificInfo_02, T_modeSpecificInfo_02_choice, + NULL); + + return offset; +} + + +static const per_sequence_t CellMeasuredResults_sequence[] = { + { &hf_ilp_cellIdentity , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_268435455 }, + { &hf_ilp_modeSpecificInfo_02, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_T_modeSpecificInfo_02 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_CellMeasuredResults(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_ilp_CellMeasuredResults, CellMeasuredResults_sequence); + + return offset; +} + + +static const per_sequence_t CellMeasuredResultsList_sequence_of[1] = { + { &hf_ilp_CellMeasuredResultsList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_CellMeasuredResults }, +}; + +static int +dissect_ilp_CellMeasuredResultsList(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_ilp_CellMeasuredResultsList, CellMeasuredResultsList_sequence_of, + 1, maxCellMeas, FALSE); + + return offset; +} + + +static const per_sequence_t MeasuredResults_sequence[] = { + { &hf_ilp_frequencyInfo , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ilp_FrequencyInfo }, + { &hf_ilp_utra_CarrierRSSI, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ilp_UTRA_CarrierRSSI }, + { &hf_ilp_cellMeasuredResultsList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ilp_CellMeasuredResultsList }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_MeasuredResults(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_ilp_MeasuredResults, MeasuredResults_sequence); + + return offset; +} + + +static const per_sequence_t MeasuredResultsList_sequence_of[1] = { + { &hf_ilp_MeasuredResultsList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_MeasuredResults }, +}; + +static int +dissect_ilp_MeasuredResultsList(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_ilp_MeasuredResultsList, MeasuredResultsList_sequence_of, + 1, maxFreq, FALSE); + + return offset; +} + + + +static int +dissect_ilp_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_ilp_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 const value_string ilp_TAResolution_vals[] = { + { 0, "res10chip" }, + { 1, "res05chip" }, + { 2, "res0125chip" }, + { 0, NULL } +}; + + +static int +dissect_ilp_TAResolution(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const value_string ilp_ChipRate_vals[] = { + { 0, "tdd128" }, + { 1, "tdd384" }, + { 2, "tdd768" }, + { 0, NULL } +}; + + +static int +dissect_ilp_ChipRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t TimingAdvance_sequence[] = { + { &hf_ilp_ta_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_8191 }, + { &hf_ilp_tAResolution , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_TAResolution }, + { &hf_ilp_chipRate , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_ChipRate }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_TimingAdvance(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_ilp_TimingAdvance, TimingAdvance_sequence); + + return offset; +} + + +static const per_sequence_t WcdmaCellInformation_sequence[] = { + { &hf_ilp_refMCC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_999 }, + { &hf_ilp_refMNC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_999 }, + { &hf_ilp_refUC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_268435455 }, + { &hf_ilp_frequencyInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_FrequencyInfo }, + { &hf_ilp_primaryScramblingCode, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_511 }, + { &hf_ilp_measuredResultsList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_MeasuredResultsList }, + { &hf_ilp_cellParametersId, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_127 }, + { &hf_ilp_timingAdvance , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_TimingAdvance }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_WcdmaCellInformation(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_ilp_WcdmaCellInformation, WcdmaCellInformation_sequence); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_32767(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 32767U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_4194303(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 4194303U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_8388607(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, 8388607U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t CdmaCellInformation_sequence[] = { + { &hf_ilp_refNID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_65535 }, + { &hf_ilp_refSID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_32767 }, + { &hf_ilp_refBASEID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_65535 }, + { &hf_ilp_refBASELAT , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_4194303 }, + { &hf_ilp_reBASELONG , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_8388607 }, + { &hf_ilp_refREFPN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_511 }, + { &hf_ilp_refWeekNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_65535 }, + { &hf_ilp_refSeconds , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_4194303 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_CdmaCellInformation(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_ilp_CdmaCellInformation, CdmaCellInformation_sequence); + + return offset; +} + + + +static int +dissect_ilp_BIT_STRING_SIZE_128(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, + 128, 128, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + +static const per_sequence_t HrpdCellInformation_sequence[] = { + { &hf_ilp_refSECTORID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_BIT_STRING_SIZE_128 }, + { &hf_ilp_refBASELAT , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_4194303 }, + { &hf_ilp_reBASELONG , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_8388607 }, + { &hf_ilp_refWeekNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_65535 }, + { &hf_ilp_refSeconds , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_4194303 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_HrpdCellInformation(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_ilp_HrpdCellInformation, HrpdCellInformation_sequence); + + return offset; +} + + +static const per_sequence_t UmbCellInformation_sequence[] = { + { &hf_ilp_refSECTORID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_128 }, + { &hf_ilp_refMCC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_999 }, + { &hf_ilp_refMNC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_999 }, + { &hf_ilp_refBASELAT , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_4194303 }, + { &hf_ilp_reBASELONG , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_8388607 }, + { &hf_ilp_refWeekNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_65535 }, + { &hf_ilp_refSeconds , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_4194303 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_UmbCellInformation(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_ilp_UmbCellInformation, UmbCellInformation_sequence); + + return offset; +} + + + +static int +dissect_ilp_MCC_MNC_Digit(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, 9U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t MCC_sequence_of[1] = { + { &hf_ilp_MCC_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_MCC_MNC_Digit }, +}; + +static int +dissect_ilp_MCC(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_ilp_MCC, MCC_sequence_of, + 3, 3, FALSE); + + return offset; +} + + +static const per_sequence_t MNC_sequence_of[1] = { + { &hf_ilp_MNC_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_MCC_MNC_Digit }, +}; + +static int +dissect_ilp_MNC(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_ilp_MNC, MNC_sequence_of, + 2, 3, FALSE); + + return offset; +} + + +static const per_sequence_t PLMN_Identity_sequence[] = { + { &hf_ilp_mcc , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ilp_MCC }, + { &hf_ilp_mnc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_MNC }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_PLMN_Identity(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_ilp_PLMN_Identity, PLMN_Identity_sequence); + + return offset; +} + + + +static int +dissect_ilp_CellIdentity(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, + 28, 28, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + +static const per_sequence_t CellGlobalIdEUTRA_sequence[] = { + { &hf_ilp_plmn_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_PLMN_Identity }, + { &hf_ilp_eutra_cellIdentity, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_CellIdentity }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_CellGlobalIdEUTRA(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_ilp_CellGlobalIdEUTRA, CellGlobalIdEUTRA_sequence); + + return offset; +} + + + +static int +dissect_ilp_PhysCellId(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, 503U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_ilp_TrackingAreaCode(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, + 16, 16, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + + +static int +dissect_ilp_RSRP_Range(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, 97U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_ilp_RSRQ_Range(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, 34U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_1282(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, 1282U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_cgi_Info_sequence[] = { + { &hf_ilp_cellGlobalId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_CellGlobalIdEUTRA }, + { &hf_ilp_trackingAreaCode, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_TrackingAreaCode }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_T_cgi_Info(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_ilp_T_cgi_Info, T_cgi_Info_sequence); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_65536_262143(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 65536U, 262143U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_ilp_RSRP_Range_Ext(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, + -17, -1, NULL, FALSE); + + return offset; +} + + + +static int +dissect_ilp_RSRQ_Range_Ext(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, + -30, 46U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_ilp_RS_SINR_Range(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_ilp_TrackingAreaCodeNR(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, + 24, 24, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + +static const per_sequence_t NeighbourInformation5G_sequence[] = { + { &hf_ilp_trackingAreaCode_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_TrackingAreaCodeNR }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_NeighbourInformation5G(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_ilp_NeighbourInformation5G, NeighbourInformation5G_sequence); + + return offset; +} + + +static const per_sequence_t T_measResult_sequence[] = { + { &hf_ilp_rsrpResult , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_RSRP_Range }, + { &hf_ilp_rsrqResult , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_RSRQ_Range }, + { &hf_ilp_earfcn , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_INTEGER_0_65535 }, + { &hf_ilp_earfcn_ext , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_INTEGER_65536_262143 }, + { &hf_ilp_rsrpResult_ext , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_RSRP_Range_Ext }, + { &hf_ilp_rsrqResult_ext , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_RSRQ_Range_Ext }, + { &hf_ilp_rs_sinrResult , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_RS_SINR_Range }, + { &hf_ilp_neighbourInformation5G, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_NeighbourInformation5G }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_T_measResult(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_ilp_T_measResult, T_measResult_sequence); + + return offset; +} + + +static const per_sequence_t MeasResultEUTRA_sequence[] = { + { &hf_ilp_physCellId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_PhysCellId }, + { &hf_ilp_cgi_Info , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ilp_T_cgi_Info }, + { &hf_ilp_measResult , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_T_measResult }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_MeasResultEUTRA(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_ilp_MeasResultEUTRA, MeasResultEUTRA_sequence); + + return offset; +} + + +static const per_sequence_t MeasResultListEUTRA_sequence_of[1] = { + { &hf_ilp_MeasResultListEUTRA_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_MeasResultEUTRA }, +}; + +static int +dissect_ilp_MeasResultListEUTRA(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_ilp_MeasResultListEUTRA, MeasResultListEUTRA_sequence_of, + 1, maxCellReport, FALSE); + + return offset; +} + + +static const per_sequence_t ServingInformation5G_sequence[] = { + { &hf_ilp_trackingAreaCode_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_TrackingAreaCodeNR }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_ServingInformation5G(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_ilp_ServingInformation5G, ServingInformation5G_sequence); + + return offset; +} + + +static const per_sequence_t LteCellInformation_sequence[] = { + { &hf_ilp_cellGlobalIdEUTRA, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_CellGlobalIdEUTRA }, + { &hf_ilp_physCellId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_PhysCellId }, + { &hf_ilp_trackingAreaCode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_TrackingAreaCode }, + { &hf_ilp_rsrpResult , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_RSRP_Range }, + { &hf_ilp_rsrqResult , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_RSRQ_Range }, + { &hf_ilp_ta_02 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_1282 }, + { &hf_ilp_measResultListEUTRA, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_MeasResultListEUTRA }, + { &hf_ilp_earfcn , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_INTEGER_0_65535 }, + { &hf_ilp_earfcn_ext , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_INTEGER_65536_262143 }, + { &hf_ilp_rsrpResult_ext , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_RSRP_Range_Ext }, + { &hf_ilp_rsrqResult_ext , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_RSRQ_Range_Ext }, + { &hf_ilp_rs_sinrResult , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_RS_SINR_Range }, + { &hf_ilp_servingInformation5G, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_ServingInformation5G }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_LteCellInformation(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_ilp_LteCellInformation, LteCellInformation_sequence); + + return offset; +} + + + +static int +dissect_ilp_BIT_STRING_SIZE_48(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, + 48, 48, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_M127_128(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, + -127, 128U, NULL, FALSE); + + return offset; +} + + +static const value_string ilp_T_apDeviceType_vals[] = { + { 0, "wlan802-11a" }, + { 1, "wlan802-11b" }, + { 2, "wlan802-11g" }, + { 3, "wlan802-11n" }, + { 4, "wlan802-11ac" }, + { 5, "wlan802-11ad" }, + { 0, NULL } +}; + + +static int +dissect_ilp_T_apDeviceType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, TRUE, 3, NULL); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_256(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, 256U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_16777216(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, 16777216U, NULL, FALSE); + + return offset; +} + + +static const value_string ilp_RTDUnits_vals[] = { + { 0, "microseconds" }, + { 1, "hundredsofnanoseconds" }, + { 2, "tensofnanoseconds" }, + { 3, "nanoseconds" }, + { 4, "tenthsofnanoseconds" }, + { 0, NULL } +}; + + +static int +dissect_ilp_RTDUnits(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, + 5, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t RTD_sequence[] = { + { &hf_ilp_rTDValue , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_16777216 }, + { &hf_ilp_rTDUnits , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_RTDUnits }, + { &hf_ilp_rTDAccuracy , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_255 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_RTD(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_ilp_RTD, RTD_sequence); + + return offset; +} + + +static const value_string ilp_LocationEncodingDescriptor_vals[] = { + { 0, "lci" }, + { 1, "asn1" }, + { 0, NULL } +}; + + +static int +dissect_ilp_LocationEncodingDescriptor(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, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_4294967295(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, 4294967295U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_ilp_OCTET_STRING_SIZE_1_128(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, 128, FALSE, NULL); + + return offset; +} + + +static const per_sequence_t LocationData_sequence[] = { + { &hf_ilp_locationAccuracy, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_4294967295 }, + { &hf_ilp_locationValue , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_OCTET_STRING_SIZE_1_128 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_LocationData(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_ilp_LocationData, LocationData_sequence); + + return offset; +} + + +static const per_sequence_t ReportedLocation_sequence[] = { + { &hf_ilp_locationEncodingDescriptor, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_LocationEncodingDescriptor }, + { &hf_ilp_locationData , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_LocationData }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_ReportedLocation(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_ilp_ReportedLocation, ReportedLocation_sequence); + + return offset; +} + + + +static int +dissect_ilp_BIT_STRING_SIZE_6(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, + 6, 6, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + + +static int +dissect_ilp_BIT_STRING_SIZE_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 4, 4, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + + +static int +dissect_ilp_BIT_STRING_SIZE_30(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, + 30, 30, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + + +static int +dissect_ilp_BIT_STRING_SIZE_8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 8, 8, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + +static const per_sequence_t LocationDataLCI_sequence[] = { + { &hf_ilp_latitudeResolution, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_6 }, + { &hf_ilp_LocationDataLCI_latitude, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_34 }, + { &hf_ilp_longitudeResolution, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_6 }, + { &hf_ilp_LocationDataLCI_longitude, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_34 }, + { &hf_ilp_altitudeType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_4 }, + { &hf_ilp_altitudeResolution, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_6 }, + { &hf_ilp_LocationDataLCI_altitude, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_30 }, + { &hf_ilp_datum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_8 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_LocationDataLCI(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_ilp_LocationDataLCI, LocationDataLCI_sequence); + + return offset; +} + + +static const per_sequence_t LciLocData_sequence[] = { + { &hf_ilp_locationDataLCI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_LocationDataLCI }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_LciLocData(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_ilp_LciLocData, LciLocData_sequence); + + return offset; +} + + +static const value_string ilp_RepLocation_vals[] = { + { 0, "lciLocData" }, + { 0, NULL } +}; + +static const per_choice_t RepLocation_choice[] = { + { 0, &hf_ilp_lciLocData , ASN1_EXTENSION_ROOT , dissect_ilp_LciLocData }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_ilp_RepLocation(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_ilp_RepLocation, RepLocation_choice, + NULL); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_1(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 int +dissect_ilp_OCTET_STRING_SIZE_1_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 1, 32, FALSE, NULL); + + return offset; +} + + +static const value_string ilp_T_apPHYType_vals[] = { + { 0, "unknown" }, + { 1, "any" }, + { 2, "fhss" }, + { 3, "dsss" }, + { 4, "irbaseband" }, + { 5, "ofdm" }, + { 6, "hrdsss" }, + { 7, "erp" }, + { 8, "ht" }, + { 9, "ihv" }, + { 0, NULL } +}; + + +static int +dissect_ilp_T_apPHYType(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, + 10, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t WlanAPInformation_sequence[] = { + { &hf_ilp_apMACAddress , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_48 }, + { &hf_ilp_apTransmitPower , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_M127_128 }, + { &hf_ilp_apAntennaGain , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_M127_128 }, + { &hf_ilp_apSignaltoNoise , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_M127_128 }, + { &hf_ilp_apDeviceType , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_T_apDeviceType }, + { &hf_ilp_apSignalStrength, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_M127_128 }, + { &hf_ilp_apChannelFrequency, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_256 }, + { &hf_ilp_apRoundTripDelay, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_RTD }, + { &hf_ilp_setTransmitPower, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_M127_128 }, + { &hf_ilp_setAntennaGain , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_M127_128 }, + { &hf_ilp_setSignaltoNoise, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_M127_128 }, + { &hf_ilp_setSignalStrength, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_M127_128 }, + { &hf_ilp_apReportedLocation, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_ReportedLocation }, + { &hf_ilp_apRepLocation , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_RepLocation }, + { &hf_ilp_apSignalStrengthDelta, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_INTEGER_0_1 }, + { &hf_ilp_apSignaltoNoiseDelta, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_INTEGER_0_1 }, + { &hf_ilp_setSignalStrengthDelta, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_INTEGER_0_1 }, + { &hf_ilp_setSignaltoNoiseDelta, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_INTEGER_0_1 }, + { &hf_ilp_operatingClass , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_INTEGER_0_255 }, + { &hf_ilp_apSSID , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_OCTET_STRING_SIZE_1_32 }, + { &hf_ilp_apPHYType , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_T_apPHYType }, + { &hf_ilp_setMACAddress , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_BIT_STRING_SIZE_48 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_WlanAPInformation(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_ilp_WlanAPInformation, WlanAPInformation_sequence); + + return offset; +} + + + +static int +dissect_ilp_BIT_STRING_SIZE_24(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, + 24, 24, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + +static const per_sequence_t WimaxBsID_sequence[] = { + { &hf_ilp_bsID_MSB , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_BIT_STRING_SIZE_24 }, + { &hf_ilp_bsID_LSB , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_24 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_WimaxBsID(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_ilp_WimaxBsID, WimaxBsID_sequence); + + return offset; +} + + +static const per_sequence_t WimaxRTD_sequence[] = { + { &hf_ilp_rtd , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_65535 }, + { &hf_ilp_rTDstd , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_1023 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_WimaxRTD(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_ilp_WimaxRTD, WimaxRTD_sequence); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_M32768_32767(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + -32768, 32767U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t WimaxNMR_sequence[] = { + { &hf_ilp_wimaxBsID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_WimaxBsID }, + { &hf_ilp_relDelay , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_M32768_32767 }, + { &hf_ilp_relDelaystd , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_1023 }, + { &hf_ilp_rssi , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_255 }, + { &hf_ilp_rSSIstd , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_63 }, + { &hf_ilp_bSTxPower , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_255 }, + { &hf_ilp_cinr , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_255 }, + { &hf_ilp_cINRstd , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_63 }, + { &hf_ilp_bSLocation , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_ReportedLocation }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_WimaxNMR(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_ilp_WimaxNMR, WimaxNMR_sequence); + + return offset; +} + + +static const per_sequence_t WimaxNMRList_sequence_of[1] = { + { &hf_ilp_WimaxNMRList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_WimaxNMR }, +}; + +static int +dissect_ilp_WimaxNMRList(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_ilp_WimaxNMRList, WimaxNMRList_sequence_of, + 1, maxWimaxBSMeas, FALSE); + + return offset; +} + + +static const per_sequence_t WimaxBSInformation_sequence[] = { + { &hf_ilp_wimaxBsID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_WimaxBsID }, + { &hf_ilp_wimaxRTD , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_WimaxRTD }, + { &hf_ilp_wimaxNMRList , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_WimaxNMRList }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_WimaxBSInformation(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_ilp_WimaxBSInformation, WimaxBSInformation_sequence); + + return offset; +} + + + +static int +dissect_ilp_PhysCellIdNR(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, 1007U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_ilp_ARFCN_NR(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, 3279165U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_ilp_CellIdentityNR(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, + 36, 36, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + +static const per_sequence_t CellGlobalIdNR_sequence[] = { + { &hf_ilp_plmn_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_PLMN_Identity }, + { &hf_ilp_cellIdentityNR , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_CellIdentityNR }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_CellGlobalIdNR(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_ilp_CellGlobalIdNR, CellGlobalIdNR_sequence); + + return offset; +} + + +static const per_sequence_t NR_Measurements_sequence[] = { + { &hf_ilp_rsrp_Range , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_127 }, + { &hf_ilp_rsrq_Range , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_127 }, + { &hf_ilp_sinr_Range , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_127 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_NR_Measurements(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_ilp_NR_Measurements, NR_Measurements_sequence); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_3846(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, 3846U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t ServCellNR_sequence[] = { + { &hf_ilp_physCellId_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_PhysCellIdNR }, + { &hf_ilp_arfcn_NR , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_ARFCN_NR }, + { &hf_ilp_cellGlobalId_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_CellGlobalIdNR }, + { &hf_ilp_trackingAreaCode_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_TrackingAreaCodeNR }, + { &hf_ilp_ssb_Measurements, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_NR_Measurements }, + { &hf_ilp_csi_rs_Measurements, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_NR_Measurements }, + { &hf_ilp_ta_03 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_3846 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_ServCellNR(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_ilp_ServCellNR, ServCellNR_sequence); + + return offset; +} + + +static const per_sequence_t ServingCellInformationNR_sequence_of[1] = { + { &hf_ilp_ServingCellInformationNR_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_ServCellNR }, +}; + +static int +dissect_ilp_ServingCellInformationNR(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_ilp_ServingCellInformationNR, ServingCellInformationNR_sequence_of, + 1, maxNRServingCell, FALSE); + + return offset; +} + + +static const per_sequence_t MeasResultNR_sequence[] = { + { &hf_ilp_physCellId_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_PhysCellIdNR }, + { &hf_ilp_arfcn_NR , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_ARFCN_NR }, + { &hf_ilp_cellGlobalId_01 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_CellGlobalIdNR }, + { &hf_ilp_trackingAreaCode_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_TrackingAreaCodeNR }, + { &hf_ilp_ssb_Measurements, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_NR_Measurements }, + { &hf_ilp_csi_rs_Measurements, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_NR_Measurements }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_MeasResultNR(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_ilp_MeasResultNR, MeasResultNR_sequence); + + return offset; +} + + +static const per_sequence_t MeasResultListNR_sequence_of[1] = { + { &hf_ilp_MeasResultListNR_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_MeasResultNR }, +}; + +static int +dissect_ilp_MeasResultListNR(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_ilp_MeasResultListNR, MeasResultListNR_sequence_of, + 1, maxCellReportNR, FALSE); + + return offset; +} + + +static const per_sequence_t NRCellInformation_sequence[] = { + { &hf_ilp_servingCellInformation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_ServingCellInformationNR }, + { &hf_ilp_measuredResultsListNR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_MeasResultListNR }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_NRCellInformation(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_ilp_NRCellInformation, NRCellInformation_sequence); + + return offset; +} + + +static const value_string ilp_CellInfo_vals[] = { + { 0, "gsmCell" }, + { 1, "wcdmaCell" }, + { 2, "cdmaCell" }, + { 3, "hrpdCell" }, + { 4, "umbCell" }, + { 5, "lteCell" }, + { 6, "wlanAP" }, + { 7, "wimaxBS" }, + { 8, "nrCell" }, + { 0, NULL } +}; + +static const per_choice_t CellInfo_choice[] = { + { 0, &hf_ilp_gsmCell , ASN1_EXTENSION_ROOT , dissect_ilp_GsmCellInformation }, + { 1, &hf_ilp_wcdmaCell , ASN1_EXTENSION_ROOT , dissect_ilp_WcdmaCellInformation }, + { 2, &hf_ilp_cdmaCell , ASN1_EXTENSION_ROOT , dissect_ilp_CdmaCellInformation }, + { 3, &hf_ilp_hrpdCell , ASN1_EXTENSION_ROOT , dissect_ilp_HrpdCellInformation }, + { 4, &hf_ilp_umbCell , ASN1_EXTENSION_ROOT , dissect_ilp_UmbCellInformation }, + { 5, &hf_ilp_lteCell , ASN1_EXTENSION_ROOT , dissect_ilp_LteCellInformation }, + { 6, &hf_ilp_wlanAP , ASN1_EXTENSION_ROOT , dissect_ilp_WlanAPInformation }, + { 7, &hf_ilp_wimaxBS , ASN1_EXTENSION_ROOT , dissect_ilp_WimaxBSInformation }, + { 8, &hf_ilp_nrCell , ASN1_NOT_EXTENSION_ROOT, dissect_ilp_NRCellInformation }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_ilp_CellInfo(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_ilp_CellInfo, CellInfo_choice, + NULL); + + return offset; +} + + +static const value_string ilp_Status_vals[] = { + { 0, "stale" }, + { 1, "current" }, + { 2, "unknown" }, + { 0, NULL } +}; + + +static int +dissect_ilp_Status(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t LocationId_sequence[] = { + { &hf_ilp_cellInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_CellInfo }, + { &hf_ilp_status , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_Status }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_LocationId(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_ilp_LocationId, LocationId_sequence); + + return offset; +} + + + +static int +dissect_ilp_RelativeTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 65535U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t LocationIdData_sequence[] = { + { &hf_ilp_locationId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_LocationId }, + { &hf_ilp_relativetimestamp, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_RelativeTime }, + { &hf_ilp_servingFlag , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_LocationIdData(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_ilp_LocationIdData, LocationIdData_sequence); + + return offset; +} + + +static const per_sequence_t MultipleLocationIds_sequence_of[1] = { + { &hf_ilp_MultipleLocationIds_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_LocationIdData }, +}; + +static int +dissect_ilp_MultipleLocationIds(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_ilp_MultipleLocationIds, MultipleLocationIds_sequence_of, + 1, maxLidSize, FALSE); + + return offset; +} + + + +static int +dissect_ilp_UTCTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_VisibleString(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, + NULL); + + return offset; +} + + +static const value_string ilp_T_latitudeSign_vals[] = { + { 0, "north" }, + { 1, "south" }, + { 0, NULL } +}; + + +static int +dissect_ilp_T_latitudeSign(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, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_M8388608_8388607(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_ilp_INTEGER_0_180(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, 180U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_uncertainty_sequence[] = { + { &hf_ilp_uncertaintySemiMajor, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_127 }, + { &hf_ilp_uncertaintySemiMinor, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_127 }, + { &hf_ilp_orientationMajorAxis, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_180 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_T_uncertainty(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_ilp_T_uncertainty, T_uncertainty_sequence); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_100(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, 100U, NULL, FALSE); + + return offset; +} + + +static const value_string ilp_T_altitudeDirection_vals[] = { + { 0, "height" }, + { 1, "depth" }, + { 0, NULL } +}; + + +static int +dissect_ilp_T_altitudeDirection(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, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t AltitudeInfo_sequence[] = { + { &hf_ilp_altitudeDirection, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_T_altitudeDirection }, + { &hf_ilp_altitude , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_32767 }, + { &hf_ilp_altUncertainty , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_127 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_AltitudeInfo(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_ilp_AltitudeInfo, AltitudeInfo_sequence); + + return offset; +} + + +static const per_sequence_t PositionEstimate_sequence[] = { + { &hf_ilp_latitudeSign , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_T_latitudeSign }, + { &hf_ilp_latitude , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_8388607 }, + { &hf_ilp_longitude , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_M8388608_8388607 }, + { &hf_ilp_uncertainty , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_T_uncertainty }, + { &hf_ilp_confidence , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_100 }, + { &hf_ilp_altitudeInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_AltitudeInfo }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_PositionEstimate(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_ilp_PositionEstimate, PositionEstimate_sequence); + + return offset; +} + + + +static int +dissect_ilp_BIT_STRING_SIZE_9(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, + 9, 9, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + + +static int +dissect_ilp_BIT_STRING_SIZE_16(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, + 16, 16, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + +static const per_sequence_t Horvel_sequence[] = { + { &hf_ilp_bearing , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_9 }, + { &hf_ilp_horspeed , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_16 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_Horvel(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_ilp_Horvel, Horvel_sequence); + + return offset; +} + + + +static int +dissect_ilp_BIT_STRING_SIZE_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 1, 1, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + +static const per_sequence_t Horandvervel_sequence[] = { + { &hf_ilp_verdirect , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_1 }, + { &hf_ilp_bearing , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_9 }, + { &hf_ilp_horspeed , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_16 }, + { &hf_ilp_verspeed , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_8 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_Horandvervel(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_ilp_Horandvervel, Horandvervel_sequence); + + return offset; +} + + +static const per_sequence_t Horveluncert_sequence[] = { + { &hf_ilp_bearing , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_9 }, + { &hf_ilp_horspeed , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_16 }, + { &hf_ilp_uncertspeed , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_8 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_Horveluncert(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_ilp_Horveluncert, Horveluncert_sequence); + + return offset; +} + + +static const per_sequence_t Horandveruncert_sequence[] = { + { &hf_ilp_verdirect , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_1 }, + { &hf_ilp_bearing , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_9 }, + { &hf_ilp_horspeed , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_16 }, + { &hf_ilp_verspeed , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_8 }, + { &hf_ilp_horuncertspeed , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_8 }, + { &hf_ilp_veruncertspeed , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_8 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_Horandveruncert(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_ilp_Horandveruncert, Horandveruncert_sequence); + + return offset; +} + + +static const value_string ilp_Velocity_vals[] = { + { 0, "horvel" }, + { 1, "horandvervel" }, + { 2, "horveluncert" }, + { 3, "horandveruncert" }, + { 0, NULL } +}; + +static const per_choice_t Velocity_choice[] = { + { 0, &hf_ilp_horvel , ASN1_EXTENSION_ROOT , dissect_ilp_Horvel }, + { 1, &hf_ilp_horandvervel , ASN1_EXTENSION_ROOT , dissect_ilp_Horandvervel }, + { 2, &hf_ilp_horveluncert , ASN1_EXTENSION_ROOT , dissect_ilp_Horveluncert }, + { 3, &hf_ilp_horandveruncert , ASN1_EXTENSION_ROOT , dissect_ilp_Horandveruncert }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_ilp_Velocity(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_ilp_Velocity, Velocity_choice, + NULL); + + return offset; +} + + +static const per_sequence_t Position_sequence[] = { + { &hf_ilp_timestamp , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_UTCTime }, + { &hf_ilp_positionEstimate, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_PositionEstimate }, + { &hf_ilp_velocity , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_Velocity }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_Position(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_ilp_Position, Position_sequence); + + return offset; +} + + +static const value_string ilp_TriggerType_vals[] = { + { 0, "periodic" }, + { 1, "areaEvent" }, + { 0, NULL } +}; + + +static int +dissect_ilp_TriggerType(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, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_1_8639999(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, 8639999U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_2678400(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, 2678400U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t PeriodicTriggerParams_sequence[] = { + { &hf_ilp_numberOfFixes , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_1_8639999 }, + { &hf_ilp_intervalBetweenFixes, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_1_8639999 }, + { &hf_ilp_startTime , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_2678400 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_PeriodicTriggerParams(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_ilp_PeriodicTriggerParams, PeriodicTriggerParams_sequence); + + return offset; +} + + +static const per_sequence_t TriggerParams_sequence[] = { + { &hf_ilp_triggerType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_TriggerType }, + { &hf_ilp_periodicTriggerParams, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_PeriodicTriggerParams }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_TriggerParams(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_ilp_TriggerParams, TriggerParams_sequence); + + return offset; +} + + + +static int +dissect_ilp_SPCSETKey(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, + 128, 128, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + +static const per_sequence_t SPCTID_sequence[] = { + { &hf_ilp_rand , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_128 }, + { &hf_ilp_slpFQDN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_FQDN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_SPCTID(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_ilp_SPCTID, SPCTID_sequence); + + return offset; +} + + + +static int +dissect_ilp_SPCSETKeylifetime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 24U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_ilp_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); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_1_128(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 QoP_sequence[] = { + { &hf_ilp_horacc , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_127 }, + { &hf_ilp_veracc , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_127 }, + { &hf_ilp_maxLocAge , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_65535 }, + { &hf_ilp_delay , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_7 }, + { &hf_ilp_ver2_responseTime, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_INTEGER_1_128 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_QoP(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_ilp_QoP, QoP_sequence); + + return offset; +} + + +static const value_string ilp_PrefMethod_vals[] = { + { 0, "agnssSETAssistedPreferred" }, + { 1, "agnssSETBasedPreferred" }, + { 2, "noPreference" }, + { 0, NULL } +}; + + +static int +dissect_ilp_PrefMethod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t PosProtocolVersion3GPP_sequence[] = { + { &hf_ilp_majorVersionField, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_255 }, + { &hf_ilp_technicalVersionField, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_255 }, + { &hf_ilp_editorialVersionField, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_255 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_PosProtocolVersion3GPP(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_ilp_PosProtocolVersion3GPP, PosProtocolVersion3GPP_sequence); + + return offset; +} + + +static const per_sequence_t Supported3GPP2PosProtocolVersion_sequence[] = { + { &hf_ilp_revisionNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BIT_STRING_SIZE_6 }, + { &hf_ilp_pointReleaseNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_255 }, + { &hf_ilp_internalEditLevel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_255 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_Supported3GPP2PosProtocolVersion(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_ilp_Supported3GPP2PosProtocolVersion, Supported3GPP2PosProtocolVersion_sequence); + + return offset; +} + + +static const per_sequence_t PosProtocolVersion3GPP2_sequence_of[1] = { + { &hf_ilp_PosProtocolVersion3GPP2_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_Supported3GPP2PosProtocolVersion }, +}; + +static int +dissect_ilp_PosProtocolVersion3GPP2(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_ilp_PosProtocolVersion3GPP2, PosProtocolVersion3GPP2_sequence_of, + 1, 8, FALSE); + + return offset; +} + + +static const per_sequence_t PosProtocolVersionOMA_sequence[] = { + { &hf_ilp_majorVersionField, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_255 }, + { &hf_ilp_minorVersionField, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_255 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_PosProtocolVersionOMA(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_ilp_PosProtocolVersionOMA, PosProtocolVersionOMA_sequence); + + return offset; +} + + +static const per_sequence_t PosProtocol_sequence[] = { + { &hf_ilp_tia801 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_rrlp , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_rrc , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_lpp , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_posProtocolVersionRRLP, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_PosProtocolVersion3GPP }, + { &hf_ilp_posProtocolVersionRRC, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_PosProtocolVersion3GPP }, + { &hf_ilp_posProtocolVersionTIA801, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_PosProtocolVersion3GPP2 }, + { &hf_ilp_posProtocolVersionLPP, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_PosProtocolVersion3GPP }, + { &hf_ilp_lppe , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_BOOLEAN }, + { &hf_ilp_posProtocolVersionLPPe, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_PosProtocolVersionOMA }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_PosProtocol(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_ilp_PosProtocol, PosProtocol_sequence); + + return offset; +} + + +static const per_sequence_t SupportedBearers_sequence[] = { + { &hf_ilp_gsm , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_wcdma , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_lte , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_cdma , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_hprd , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_umb , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_wlan , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_wiMAX , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_nr , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_SupportedBearers(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_ilp_SupportedBearers, SupportedBearers_sequence); + + return offset; +} + + +static const per_sequence_t SETCapabilities_sequence[] = { + { &hf_ilp_posTechnology , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_PosTechnology }, + { &hf_ilp_prefMethod , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_PrefMethod }, + { &hf_ilp_posProtocol , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_PosProtocol }, + { &hf_ilp_supportedBearers, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_SupportedBearers }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_SETCapabilities(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_ilp_SETCapabilities, SETCapabilities_sequence); + + return offset; +} + + +static const value_string ilp_NotificationMode_vals[] = { + { 0, "normal" }, + { 1, "basedOnLocation" }, + { 0, NULL } +}; + + +static int +dissect_ilp_NotificationMode(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, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t PREQ_sequence[] = { + { &hf_ilp_sLPMode , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_SLPMode }, + { &hf_ilp_approvedPosMethods, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_PosTechnology }, + { &hf_ilp_locationId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_LocationId }, + { &hf_ilp_multipleLocationIds, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_MultipleLocationIds }, + { &hf_ilp_position , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_Position }, + { &hf_ilp_triggerParams , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_TriggerParams }, + { &hf_ilp_sPCSETKey , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_SPCSETKey }, + { &hf_ilp_spctid , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_SPCTID }, + { &hf_ilp_sPCSETKeylifetime, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_SPCSETKeylifetime }, + { &hf_ilp_qoP , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_QoP }, + { &hf_ilp_sETCapabilities , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_SETCapabilities }, + { &hf_ilp_notificationMode, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_NotificationMode }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_PREQ(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_ilp_PREQ, PREQ_sequence); + + return offset; +} + + +static const value_string ilp_PosMethod_vals[] = { + { 0, "agpsSETassisted" }, + { 1, "agpsSETbased" }, + { 2, "agpsSETassistedpref" }, + { 3, "agpsSETbasedpref" }, + { 4, "autonomousGPS" }, + { 5, "aflt" }, + { 6, "ecid" }, + { 7, "eotd" }, + { 8, "otdoa" }, + { 9, "agnssSETassisted" }, + { 10, "agnssSETbased" }, + { 11, "agnssSETassistedpref" }, + { 12, "agnssSETbasedpref" }, + { 13, "autonomousGNSS" }, + { 14, "ver2-mbs" }, + { 0, NULL } +}; + + +static int +dissect_ilp_PosMethod(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, + 14, NULL, TRUE, 1, NULL); + + return offset; +} + + +static const per_sequence_t GNSSPosTechnology_sequence[] = { + { &hf_ilp_gps , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_galileo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_sbas , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_modernized_gps , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_qzss , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_glonass , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_bds , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_GNSSPosTechnology(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_ilp_GNSSPosTechnology, GNSSPosTechnology_sequence); + + return offset; +} + + +static const value_string ilp_SPCStatusCode_vals[] = { + { 0, "operational" }, + { 1, "notOperational" }, + { 2, "reducedAvailability" }, + { 0, NULL } +}; + + +static int +dissect_ilp_SPCStatusCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t PRES_sequence[] = { + { &hf_ilp_preferredPosMethod, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_PosMethod }, + { &hf_ilp_gnssPosTechnology, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_GNSSPosTechnology }, + { &hf_ilp_supportedPosMethods, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_PosTechnology }, + { &hf_ilp_position , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_Position }, + { &hf_ilp_sPCstatusCode , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_SPCStatusCode }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_PRES(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_ilp_PRES, PRES_sequence); + + return offset; +} + + +static const value_string ilp_StatusCode_vals[] = { + { 0, "unspecified" }, + { 1, "systemFailure" }, + { 2, "unexpectedMessage" }, + { 3, "protocolError" }, + { 4, "dataMissing" }, + { 5, "unexpectedDataValue" }, + { 6, "posMethodFailure" }, + { 7, "posMethodMismatch" }, + { 8, "posProtocolMismatch" }, + { 9, "targetSETnotReachable" }, + { 10, "versionNotSupported" }, + { 11, "resourceShortage" }, + { 12, "invalidSessionId" }, + { 13, "nonProxyModeNotSupported" }, + { 14, "proxyModeNotSupported" }, + { 15, "positioningNotPermitted" }, + { 16, "iLPTimeout" }, + { 0, NULL } +}; + + +static int +dissect_ilp_StatusCode(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, + 17, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t PRPT_sequence[] = { + { &hf_ilp_position , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_Position }, + { &hf_ilp_fixNumber , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_1_8639999 }, + { &hf_ilp_statusCode , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_StatusCode }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_PRPT(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_ilp_PRPT, PRPT_sequence); + + return offset; +} + + +static const per_sequence_t PLREQ_sequence[] = { + { &hf_ilp_locationId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_LocationId }, + { &hf_ilp_multipleLocationIds, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_MultipleLocationIds }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_PLREQ(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_ilp_PLREQ, PLREQ_sequence); + + return offset; +} + + +static const value_string ilp_PositionResult_vals[] = { + { 0, "position" }, + { 1, "statusCode" }, + { 0, NULL } +}; + +static const per_choice_t PositionResult_choice[] = { + { 0, &hf_ilp_position , ASN1_EXTENSION_ROOT , dissect_ilp_Position }, + { 1, &hf_ilp_statusCode , ASN1_EXTENSION_ROOT , dissect_ilp_StatusCode }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_ilp_PositionResult(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_ilp_PositionResult, PositionResult_choice, + NULL); + + return offset; +} + + +static const per_sequence_t PositionResults_sequence_of[1] = { + { &hf_ilp_PositionResults_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_PositionResult }, +}; + +static int +dissect_ilp_PositionResults(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_ilp_PositionResults, PositionResults_sequence_of, + 1, maxPosSize, FALSE); + + return offset; +} + + +static const per_sequence_t PLRES_sequence[] = { + { &hf_ilp_positionResults , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_PositionResults }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_PLRES(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_ilp_PLRES, PLRES_sequence); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_167(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, 167U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_31(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 31U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 10U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t SatelliteInfoElement_sequence[] = { + { &hf_ilp_satId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_63 }, + { &hf_ilp_iode , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_255 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_SatelliteInfoElement(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_ilp_SatelliteInfoElement, SatelliteInfoElement_sequence); + + return offset; +} + + +static const per_sequence_t SatelliteInfo_sequence_of[1] = { + { &hf_ilp_SatelliteInfo_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_SatelliteInfoElement }, +}; + +static int +dissect_ilp_SatelliteInfo(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_ilp_SatelliteInfo, SatelliteInfo_sequence_of, + 1, 31, FALSE); + + return offset; +} + + +static const per_sequence_t NavigationModel_sequence[] = { + { &hf_ilp_gpsWeek , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_1023 }, + { &hf_ilp_gpsToe , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_167 }, + { &hf_ilp_nsat , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_31 }, + { &hf_ilp_toeLimit , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_10 }, + { &hf_ilp_satInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_SatelliteInfo }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_NavigationModel(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_ilp_NavigationModel, NavigationModel_sequence); + + return offset; +} + + +static const per_sequence_t GanssRequestedCommonAssistanceDataList_sequence[] = { + { &hf_ilp_ganssReferenceTime, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_ganssIonosphericModel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_ganssAdditionalIonosphericModelForDataID00, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_ganssAdditionalIonosphericModelForDataID11, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_ganssEarthOrientationParameters, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_ganssAdditionalIonosphericModelForDataID01, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_GanssRequestedCommonAssistanceDataList(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_ilp_GanssRequestedCommonAssistanceDataList, GanssRequestedCommonAssistanceDataList_sequence); + + return offset; +} + + + +static int +dissect_ilp_DGANSS_Sig_Id_Req(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, + 8, 8, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + + +static int +dissect_ilp_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 SatellitesListRelatedData_sequence[] = { + { &hf_ilp_satId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_63 }, + { &hf_ilp_iod , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_1023 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_SatellitesListRelatedData(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_ilp_SatellitesListRelatedData, SatellitesListRelatedData_sequence); + + return offset; +} + + +static const per_sequence_t SatellitesListRelatedDataList_sequence_of[1] = { + { &hf_ilp_SatellitesListRelatedDataList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_SatellitesListRelatedData }, +}; + +static int +dissect_ilp_SatellitesListRelatedDataList(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_ilp_SatellitesListRelatedDataList, SatellitesListRelatedDataList_sequence_of, + 0, maxGANSSSat, FALSE); + + return offset; +} + + +static const per_sequence_t GanssNavigationModelData_sequence[] = { + { &hf_ilp_ganssWeek , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_4095 }, + { &hf_ilp_ganssToe , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_167 }, + { &hf_ilp_t_toeLimit , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_10 }, + { &hf_ilp_satellitesListRelatedDataList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_SatellitesListRelatedDataList }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_GanssNavigationModelData(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_ilp_GanssNavigationModelData, GanssNavigationModelData_sequence); + + return offset; +} + + + +static int +dissect_ilp_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 const per_sequence_t T_ganssDataBitSatList_sequence_of[1] = { + { &hf_ilp_ganssDataBitSatList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_63 }, +}; + +static int +dissect_ilp_T_ganssDataBitSatList(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_ilp_T_ganssDataBitSatList, T_ganssDataBitSatList_sequence_of, + 1, maxGANSSSat, FALSE); + + return offset; +} + + +static const per_sequence_t ReqDataBitAssistanceList_sequence[] = { + { &hf_ilp_gnssSignals , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_GANSSSignals }, + { &hf_ilp_ganssDataBitInterval, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_15 }, + { &hf_ilp_ganssDataBitSatList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_T_ganssDataBitSatList }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_ReqDataBitAssistanceList(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_ilp_ReqDataBitAssistanceList, ReqDataBitAssistanceList_sequence); + + return offset; +} + + +static const per_sequence_t GanssDataBits_sequence[] = { + { &hf_ilp_ganssTODmin , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_59 }, + { &hf_ilp_reqDataBitAssistanceList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_ReqDataBitAssistanceList }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_GanssDataBits(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_ilp_GanssDataBits, GanssDataBits_sequence); + + return offset; +} + + +static const per_sequence_t GanssAdditionalDataChoices_sequence[] = { + { &hf_ilp_orbitModelID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_7 }, + { &hf_ilp_clockModelID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_7 }, + { &hf_ilp_utcModelID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_7 }, + { &hf_ilp_almanacModelID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_7 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_GanssAdditionalDataChoices(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_ilp_GanssAdditionalDataChoices, GanssAdditionalDataChoices_sequence); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_1_256(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, 256U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t ExtendedEphemeris_sequence[] = { + { &hf_ilp_validity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_1_256 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_ExtendedEphemeris(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_ilp_ExtendedEphemeris, ExtendedEphemeris_sequence); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_23(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, 23U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t GANSSextEphTime_sequence[] = { + { &hf_ilp_gANSSday , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_8191 }, + { &hf_ilp_gANSSTODhour , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_23 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_GANSSextEphTime(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_ilp_GANSSextEphTime, GANSSextEphTime_sequence); + + return offset; +} + + +static const per_sequence_t GanssExtendedEphCheck_sequence[] = { + { &hf_ilp_beginTime_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_GANSSextEphTime }, + { &hf_ilp_endTime_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_GANSSextEphTime }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_GanssExtendedEphCheck(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_ilp_GanssExtendedEphCheck, GanssExtendedEphCheck_sequence); + + return offset; +} + + + +static int +dissect_ilp_BDS_Sig_Id_Req(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, + 8, 8, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + +static const per_sequence_t GanssReqGenericData_sequence[] = { + { &hf_ilp_ganssId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_15 }, + { &hf_ilp_ganssSBASid , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_BIT_STRING_SIZE_3 }, + { &hf_ilp_ganssRealTimeIntegrity, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_BOOLEAN }, + { &hf_ilp_ganssDifferentialCorrection, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_DGANSS_Sig_Id_Req }, + { &hf_ilp_ganssAlmanac , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_ganssNavigationModelData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_GanssNavigationModelData }, + { &hf_ilp_ganssTimeModels , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_BIT_STRING_SIZE_16 }, + { &hf_ilp_ganssReferenceMeasurementInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_ganssDataBits , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_GanssDataBits }, + { &hf_ilp_ganssUTCModel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_ganssAdditionalDataChoices, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_GanssAdditionalDataChoices }, + { &hf_ilp_ganssAuxiliaryInformation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_ganssExtendedEphemeris, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_ExtendedEphemeris }, + { &hf_ilp_ganssExtendedEphemerisCheck, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_GanssExtendedEphCheck }, + { &hf_ilp_bds_DifferentialCorrection, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_BDS_Sig_Id_Req }, + { &hf_ilp_bds_GridModelReq, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_ilp_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_GanssReqGenericData(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_ilp_GanssReqGenericData, GanssReqGenericData_sequence); + + return offset; +} + + +static const per_sequence_t GanssRequestedGenericAssistanceDataList_sequence_of[1] = { + { &hf_ilp_GanssRequestedGenericAssistanceDataList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_GanssReqGenericData }, +}; + +static int +dissect_ilp_GanssRequestedGenericAssistanceDataList(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_ilp_GanssRequestedGenericAssistanceDataList, GanssRequestedGenericAssistanceDataList_sequence_of, + 1, maxGANSS, FALSE); + + return offset; +} + + +static const per_sequence_t GPSTime_sequence[] = { + { &hf_ilp_gPSWeek , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_1023 }, + { &hf_ilp_gPSTOWhour , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_167 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_GPSTime(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_ilp_GPSTime, GPSTime_sequence); + + return offset; +} + + +static const per_sequence_t ExtendedEphCheck_sequence[] = { + { &hf_ilp_beginTime , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_GPSTime }, + { &hf_ilp_endTime , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_GPSTime }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_ExtendedEphCheck(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_ilp_ExtendedEphCheck, ExtendedEphCheck_sequence); + + return offset; +} + + +static const per_sequence_t RequestedAssistData_sequence[] = { + { &hf_ilp_almanacRequested, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_utcModelRequested, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_ionosphericModelRequested, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_dgpsCorrectionsRequested, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_referenceLocationRequested, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_referenceTimeRequested, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_acquisitionAssistanceRequested, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_realTimeIntegrityRequested, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_navigationModelRequested, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_BOOLEAN }, + { &hf_ilp_navigationModelData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_NavigationModel }, + { &hf_ilp_ganssRequestedCommonAssistanceDataList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_GanssRequestedCommonAssistanceDataList }, + { &hf_ilp_ganssRequestedGenericAssistanceDataList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_GanssRequestedGenericAssistanceDataList }, + { &hf_ilp_extendedEphemeris, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_ExtendedEphemeris }, + { &hf_ilp_extendedEphemerisCheck, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_ExtendedEphCheck }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_RequestedAssistData(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_ilp_RequestedAssistData, RequestedAssistData_sequence); + + return offset; +} + + + +static int +dissect_ilp_OCTET_STRING_SIZE_1_8192(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, 8192, FALSE, NULL); + + return offset; +} + + + +static int +dissect_ilp_T_rrlpPayload(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *rrlp_tvb; + + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 1, 8192, FALSE, &rrlp_tvb); + + + if (rrlp_tvb && rrlp_handle) { + call_dissector(rrlp_handle, rrlp_tvb, actx->pinfo, tree); + } + + + return offset; +} + + + +static int +dissect_ilp_T_lPPPayload_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *lpp_tvb; + + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 1, 60000, FALSE, &lpp_tvb); + + + if (lpp_tvb && lpp_handle) { + call_dissector(lpp_handle, lpp_tvb, actx->pinfo, tree); + } + + + return offset; +} + + +static const per_sequence_t T_lPPPayload_sequence_of[1] = { + { &hf_ilp_lPPPayload_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_T_lPPPayload_item }, +}; + +static int +dissect_ilp_T_lPPPayload(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_ilp_T_lPPPayload, T_lPPPayload_sequence_of, + 1, 3, FALSE); + + return offset; +} + + + +static int +dissect_ilp_OCTET_STRING_SIZE_1_60000(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, 60000, FALSE, NULL); + + return offset; +} + + +static const per_sequence_t T_tia801Payload_sequence_of[1] = { + { &hf_ilp_tia801Payload_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_OCTET_STRING_SIZE_1_60000 }, +}; + +static int +dissect_ilp_T_tia801Payload(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_ilp_T_tia801Payload, T_tia801Payload_sequence_of, + 1, 3, FALSE); + + return offset; +} + + +static const per_sequence_t MultiPosPayLoad_sequence[] = { + { &hf_ilp_lPPPayload , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_T_lPPPayload }, + { &hf_ilp_tia801Payload , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_T_tia801Payload }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_MultiPosPayLoad(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_ilp_MultiPosPayLoad, MultiPosPayLoad_sequence); + + return offset; +} + + +static const value_string ilp_PosPayLoad_vals[] = { + { 0, "rrcPayload" }, + { 1, "rrlpPayload" }, + { 2, "multiPosPayload" }, + { 0, NULL } +}; + +static const per_choice_t PosPayLoad_choice[] = { + { 0, &hf_ilp_rrcPayload , ASN1_EXTENSION_ROOT , dissect_ilp_OCTET_STRING_SIZE_1_8192 }, + { 1, &hf_ilp_rrlpPayload , ASN1_EXTENSION_ROOT , dissect_ilp_T_rrlpPayload }, + { 2, &hf_ilp_multiPosPayload , ASN1_EXTENSION_ROOT , dissect_ilp_MultiPosPayLoad }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_ilp_PosPayLoad(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_ilp_PosPayLoad, PosPayLoad_choice, + NULL); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_16383(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 16383U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_set_GPSTimingOfCell_sequence[] = { + { &hf_ilp_ms_part , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_16383 }, + { &hf_ilp_ls_part , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_4294967295 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_T_set_GPSTimingOfCell(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_ilp_T_set_GPSTimingOfCell, T_set_GPSTimingOfCell_sequence); + + return offset; +} + + +static const per_sequence_t T_fdd_sequence[] = { + { &hf_ilp_referenceIdentity, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_PrimaryCPICH_Info }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_T_fdd(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_ilp_T_fdd, T_fdd_sequence); + + return offset; +} + + +static const per_sequence_t T_tdd_sequence[] = { + { &hf_ilp_referenceIdentity_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_CellParametersID }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_T_tdd(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_ilp_T_tdd, T_tdd_sequence); + + return offset; +} + + +static const value_string ilp_T_modeSpecificInfo_vals[] = { + { 0, "fdd" }, + { 1, "tdd" }, + { 0, NULL } +}; + +static const per_choice_t T_modeSpecificInfo_choice[] = { + { 0, &hf_ilp_fdd , ASN1_NO_EXTENSIONS , dissect_ilp_T_fdd }, + { 1, &hf_ilp_tdd , ASN1_NO_EXTENSIONS , dissect_ilp_T_tdd }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_ilp_T_modeSpecificInfo(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_ilp_T_modeSpecificInfo, T_modeSpecificInfo_choice, + NULL); + + return offset; +} + + +static const per_sequence_t UTRAN_GPSReferenceTimeResult_sequence[] = { + { &hf_ilp_set_GPSTimingOfCell, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_T_set_GPSTimingOfCell }, + { &hf_ilp_modeSpecificInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_T_modeSpecificInfo }, + { &hf_ilp_sfn , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_4095 }, + { &hf_ilp_gpsReferenceTimeUncertainty, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_127 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_UTRAN_GPSReferenceTimeResult(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_ilp_UTRAN_GPSReferenceTimeResult, UTRAN_GPSReferenceTimeResult_sequence); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_80(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, 80U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_set_GANSSTimingOfCell_sequence[] = { + { &hf_ilp_ms_part_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_80 }, + { &hf_ilp_ls_part , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_4294967295 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_T_set_GANSSTimingOfCell(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_ilp_T_set_GANSSTimingOfCell, T_set_GANSSTimingOfCell_sequence); + + return offset; +} + + +static const per_sequence_t T_fdd_01_sequence[] = { + { &hf_ilp_referenceIdentity, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_PrimaryCPICH_Info }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_T_fdd_01(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_ilp_T_fdd_01, T_fdd_01_sequence); + + return offset; +} + + +static const per_sequence_t T_tdd_01_sequence[] = { + { &hf_ilp_referenceIdentity_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_CellParametersID }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_T_tdd_01(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_ilp_T_tdd_01, T_tdd_01_sequence); + + return offset; +} + + +static const value_string ilp_T_modeSpecificInfo_01_vals[] = { + { 0, "fdd" }, + { 1, "tdd" }, + { 0, NULL } +}; + +static const per_choice_t T_modeSpecificInfo_01_choice[] = { + { 0, &hf_ilp_fdd_01 , ASN1_NO_EXTENSIONS , dissect_ilp_T_fdd_01 }, + { 1, &hf_ilp_tdd_01 , ASN1_NO_EXTENSIONS , dissect_ilp_T_tdd_01 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_ilp_T_modeSpecificInfo_01(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_ilp_T_modeSpecificInfo_01, T_modeSpecificInfo_01_choice, + NULL); + + return offset; +} + + +static const per_sequence_t SET_GANSSReferenceTime_sequence[] = { + { &hf_ilp_set_GANSSTimingOfCell, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_T_set_GANSSTimingOfCell }, + { &hf_ilp_modeSpecificInfo_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_T_modeSpecificInfo_01 }, + { &hf_ilp_sfn , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_4095 }, + { &hf_ilp_ganss_TODUncertainty, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_127 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_SET_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_ilp_SET_GANSSReferenceTime, SET_GANSSReferenceTime_sequence); + + return offset; +} + + +static const per_sequence_t UTRAN_GANSSReferenceTimeResult_sequence[] = { + { &hf_ilp_ganssTimeID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_15 }, + { &hf_ilp_set_GANSSReferenceTime, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_SET_GANSSReferenceTime }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_UTRAN_GANSSReferenceTimeResult(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_ilp_UTRAN_GANSSReferenceTimeResult, UTRAN_GANSSReferenceTimeResult_sequence); + + return offset; +} + + +static const per_sequence_t PINIT_sequence[] = { + { &hf_ilp_sETCapabilities , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_SETCapabilities }, + { &hf_ilp_locationId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_LocationId }, + { &hf_ilp_posMethod , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_PosMethod }, + { &hf_ilp_requestedAssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_RequestedAssistData }, + { &hf_ilp_position , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_Position }, + { &hf_ilp_posPayLoad , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_PosPayLoad }, + { &hf_ilp_multipleLocationIds, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_MultipleLocationIds }, + { &hf_ilp_utran_GPSReferenceTimeResult, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_UTRAN_GPSReferenceTimeResult }, + { &hf_ilp_utran_GANSSReferenceTimeResult, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_UTRAN_GANSSReferenceTimeResult }, + { &hf_ilp_gnssPosTechnology, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_GNSSPosTechnology }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_PINIT(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_ilp_PINIT, PINIT_sequence); + + return offset; +} + + +static const per_sequence_t PAUTH_sequence[] = { + { &hf_ilp_sPCSETKey , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_SPCSETKey }, + { &hf_ilp_spctid , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_SPCTID }, + { &hf_ilp_sPCSETKeylifetime, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_SPCSETKeylifetime }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_PAUTH(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_ilp_PAUTH, PAUTH_sequence); + + return offset; +} + + +static const per_sequence_t PALIVE_sequence[] = { + { &hf_ilp_sPCStatusCode , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_SPCStatusCode }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_PALIVE(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_ilp_PALIVE, PALIVE_sequence); + + return offset; +} + + +static const per_sequence_t PEND_sequence[] = { + { &hf_ilp_position , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_Position }, + { &hf_ilp_statusCode , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_StatusCode }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_PEND(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_ilp_PEND, PEND_sequence); + + return offset; +} + + +static const per_sequence_t T_utran_GPSTimingOfCell_sequence[] = { + { &hf_ilp_ms_part_02 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_1023 }, + { &hf_ilp_ls_part , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_4294967295 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_T_utran_GPSTimingOfCell(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_ilp_T_utran_GPSTimingOfCell, T_utran_GPSTimingOfCell_sequence); + + return offset; +} + + +static const per_sequence_t T_fdd_03_sequence[] = { + { &hf_ilp_referenceIdentity, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_PrimaryCPICH_Info }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_T_fdd_03(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_ilp_T_fdd_03, T_fdd_03_sequence); + + return offset; +} + + +static const per_sequence_t T_tdd_03_sequence[] = { + { &hf_ilp_referenceIdentity_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_CellParametersID }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_T_tdd_03(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_ilp_T_tdd_03, T_tdd_03_sequence); + + return offset; +} + + +static const value_string ilp_T_modeSpecificInfo_03_vals[] = { + { 0, "fdd" }, + { 1, "tdd" }, + { 0, NULL } +}; + +static const per_choice_t T_modeSpecificInfo_03_choice[] = { + { 0, &hf_ilp_fdd_03 , ASN1_NO_EXTENSIONS , dissect_ilp_T_fdd_03 }, + { 1, &hf_ilp_tdd_03 , ASN1_NO_EXTENSIONS , dissect_ilp_T_tdd_03 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_ilp_T_modeSpecificInfo_03(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_ilp_T_modeSpecificInfo_03, T_modeSpecificInfo_03_choice, + NULL); + + return offset; +} + + +static const per_sequence_t UTRAN_GPSReferenceTime_sequence[] = { + { &hf_ilp_utran_GPSTimingOfCell, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_T_utran_GPSTimingOfCell }, + { &hf_ilp_modeSpecificInfo_03, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ilp_T_modeSpecificInfo_03 }, + { &hf_ilp_sfn , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_4095 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_UTRAN_GPSReferenceTime(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_ilp_UTRAN_GPSReferenceTime, UTRAN_GPSReferenceTime_sequence); + + return offset; +} + + +static const value_string ilp_UTRANGPSDriftRate_vals[] = { + { 0, "utran-GPSDrift0" }, + { 1, "utran-GPSDrift1" }, + { 2, "utran-GPSDrift2" }, + { 3, "utran-GPSDrift5" }, + { 4, "utran-GPSDrift10" }, + { 5, "utran-GPSDrift15" }, + { 6, "utran-GPSDrift25" }, + { 7, "utran-GPSDrift50" }, + { 8, "utran-GPSDrift-1" }, + { 9, "utran-GPSDrift-2" }, + { 10, "utran-GPSDrift-5" }, + { 11, "utran-GPSDrift-10" }, + { 12, "utran-GPSDrift-15" }, + { 13, "utran-GPSDrift-25" }, + { 14, "utran-GPSDrift-50" }, + { 0, NULL } +}; + + +static int +dissect_ilp_UTRANGPSDriftRate(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, + 15, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t UTRAN_GPSReferenceTimeAssistance_sequence[] = { + { &hf_ilp_utran_GPSReferenceTime, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_UTRAN_GPSReferenceTime }, + { &hf_ilp_gpsReferenceTimeUncertainty, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_127 }, + { &hf_ilp_utranGPSDriftRate, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ilp_UTRANGPSDriftRate }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_UTRAN_GPSReferenceTimeAssistance(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_ilp_UTRAN_GPSReferenceTimeAssistance, UTRAN_GPSReferenceTimeAssistance_sequence); + + return offset; +} + + + +static int +dissect_ilp_INTEGER_0_86399(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_ilp_INTEGER_0_3999999(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, 3999999U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_fdd_04_sequence[] = { + { &hf_ilp_referenceIdentity, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_PrimaryCPICH_Info }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_T_fdd_04(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_ilp_T_fdd_04, T_fdd_04_sequence); + + return offset; +} + + +static const per_sequence_t T_tdd_04_sequence[] = { + { &hf_ilp_referenceIdentity_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_CellParametersID }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_T_tdd_04(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_ilp_T_tdd_04, T_tdd_04_sequence); + + return offset; +} + + +static const value_string ilp_T_modeSpecificInfo_04_vals[] = { + { 0, "fdd" }, + { 1, "tdd" }, + { 0, NULL } +}; + +static const per_choice_t T_modeSpecificInfo_04_choice[] = { + { 0, &hf_ilp_fdd_04 , ASN1_NO_EXTENSIONS , dissect_ilp_T_fdd_04 }, + { 1, &hf_ilp_tdd_04 , ASN1_NO_EXTENSIONS , dissect_ilp_T_tdd_04 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_ilp_T_modeSpecificInfo_04(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_ilp_T_modeSpecificInfo_04, T_modeSpecificInfo_04_choice, + NULL); + + return offset; +} + + +static const per_sequence_t UTRAN_GANSSReferenceTime_sequence[] = { + { &hf_ilp_ganssTOD , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_86399 }, + { &hf_ilp_utran_GANSSTimingOfCell, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_3999999 }, + { &hf_ilp_modeSpecificInfo_04, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_T_modeSpecificInfo_04 }, + { &hf_ilp_sfn , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_4095 }, + { &hf_ilp_ganss_TODUncertainty, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_127 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_UTRAN_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_ilp_UTRAN_GANSSReferenceTime, UTRAN_GANSSReferenceTime_sequence); + + return offset; +} + + +static const value_string ilp_UTRANGANSSDriftRate_vals[] = { + { 0, "utran-GANSSDrift0" }, + { 1, "utran-GANSSDrift1" }, + { 2, "utran-GANSSDrift2" }, + { 3, "utran-GANSSDrift5" }, + { 4, "utran-GANSSDrift10" }, + { 5, "utran-GANSSDrift15" }, + { 6, "utran-GANSSDrift25" }, + { 7, "utran-GANSSDrift50" }, + { 8, "utran-GANSSDrift-1" }, + { 9, "utran-GANSSDrift-2" }, + { 10, "utran-GANSSDrift-5" }, + { 11, "utran-GANSSDrift-10" }, + { 12, "utran-GANSSDrift-15" }, + { 13, "utran-GANSSDrift-25" }, + { 14, "utran-GANSSDrift-50" }, + { 0, NULL } +}; + + +static int +dissect_ilp_UTRANGANSSDriftRate(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, + 15, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t UTRAN_GANSSReferenceTimeAssistance_sequence[] = { + { &hf_ilp_ganssTimeID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_15 }, + { &hf_ilp_utran_GANSSReferenceTime, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_UTRAN_GANSSReferenceTime }, + { &hf_ilp_ganssDay , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ilp_INTEGER_0_8191 }, + { &hf_ilp_utranGANSSDriftRate, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ilp_UTRANGANSSDriftRate }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_UTRAN_GANSSReferenceTimeAssistance(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_ilp_UTRAN_GANSSReferenceTimeAssistance, UTRAN_GANSSReferenceTimeAssistance_sequence); + + return offset; +} + + +static const per_sequence_t PMESS_sequence[] = { + { &hf_ilp_posPayLoad , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ilp_PosPayLoad }, + { &hf_ilp_velocity , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_Velocity }, + { &hf_ilp_utran_GPSReferenceTimeAssistance, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_UTRAN_GPSReferenceTimeAssistance }, + { &hf_ilp_utran_GPSReferenceTimeResult, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_UTRAN_GPSReferenceTimeResult }, + { &hf_ilp_utran_GANSSReferenceTimeAssistance, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_UTRAN_GANSSReferenceTimeAssistance }, + { &hf_ilp_utran_GANSSReferenceTimeResult, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ilp_UTRAN_GANSSReferenceTimeResult }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_PMESS(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_ilp_PMESS, PMESS_sequence); + + return offset; +} + + +static const value_string ilp_IlpMessage_vals[] = { + { 0, "msPREQ" }, + { 1, "msPRES" }, + { 2, "msPRPT" }, + { 3, "msPLREQ" }, + { 4, "msPLRES" }, + { 5, "msPINIT" }, + { 6, "msPAUTH" }, + { 7, "msPALIVE" }, + { 8, "msPEND" }, + { 9, "msPMESS" }, + { 0, NULL } +}; + +static const per_choice_t IlpMessage_choice[] = { + { 0, &hf_ilp_msPREQ , ASN1_EXTENSION_ROOT , dissect_ilp_PREQ }, + { 1, &hf_ilp_msPRES , ASN1_EXTENSION_ROOT , dissect_ilp_PRES }, + { 2, &hf_ilp_msPRPT , ASN1_EXTENSION_ROOT , dissect_ilp_PRPT }, + { 3, &hf_ilp_msPLREQ , ASN1_EXTENSION_ROOT , dissect_ilp_PLREQ }, + { 4, &hf_ilp_msPLRES , ASN1_EXTENSION_ROOT , dissect_ilp_PLRES }, + { 5, &hf_ilp_msPINIT , ASN1_EXTENSION_ROOT , dissect_ilp_PINIT }, + { 6, &hf_ilp_msPAUTH , ASN1_EXTENSION_ROOT , dissect_ilp_PAUTH }, + { 7, &hf_ilp_msPALIVE , ASN1_EXTENSION_ROOT , dissect_ilp_PALIVE }, + { 8, &hf_ilp_msPEND , ASN1_EXTENSION_ROOT , dissect_ilp_PEND }, + { 9, &hf_ilp_msPMESS , ASN1_EXTENSION_ROOT , dissect_ilp_PMESS }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_ilp_IlpMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + +guint32 IlpMessage; + + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_ilp_IlpMessage, IlpMessage_choice, + &IlpMessage); + + + col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%s ", val_to_str_const(IlpMessage,ilp_IlpMessage_vals,"Unknown")); + + + return offset; +} + + +static const per_sequence_t ILP_PDU_sequence[] = { + { &hf_ilp_length , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_INTEGER_0_65535 }, + { &hf_ilp_version , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_Version }, + { &hf_ilp_sessionID2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_SessionID2 }, + { &hf_ilp_message , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ilp_IlpMessage }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ilp_ILP_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + proto_item *it; + proto_tree *ilp_tree; + + it = proto_tree_add_item(tree, proto_ilp, tvb, 0, -1, ENC_NA); + ilp_tree = proto_item_add_subtree(it, ett_ilp); + + col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, PSNAME); + col_clear(actx->pinfo->cinfo, COL_INFO); + offset = dissect_per_sequence(tvb, offset, actx, ilp_tree, hf_index, + ett_ilp_ILP_PDU, ILP_PDU_sequence); + + + return offset; +} + +/*--- PDUs ---*/ + +static int dissect_ILP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo); + offset = dissect_ilp_ILP_PDU(tvb, offset, &asn1_ctx, tree, hf_ilp_ILP_PDU_PDU); + offset += 7; offset >>= 3; + return offset; +} + + + +static guint +get_ilp_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset, void *data _U_) +{ + /* PDU length = Message length */ + return tvb_get_ntohs(tvb,offset); +} + +static int +dissect_ilp_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data) +{ + tcp_dissect_pdus(tvb, pinfo, tree, ilp_desegment, ILP_HEADER_SIZE, + get_ilp_pdu_len, dissect_ILP_PDU_PDU, data); + return tvb_captured_length(tvb); +} + +void proto_reg_handoff_ilp(void); + +/*--- proto_register_ilp -------------------------------------------*/ +void proto_register_ilp(void) { + + /* List of fields */ + static hf_register_info hf[] = { + + { &hf_ilp_ILP_PDU_PDU, + { "ILP-PDU", "ilp.ILP_PDU_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_length, + { "length", "ilp.length", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_65535", HFILL }}, + { &hf_ilp_version, + { "version", "ilp.version_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_sessionID2, + { "sessionID2", "ilp.sessionID2_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_message, + { "message", "ilp.message", + FT_UINT32, BASE_DEC, VALS(ilp_IlpMessage_vals), 0, + "IlpMessage", HFILL }}, + { &hf_ilp_msPREQ, + { "msPREQ", "ilp.msPREQ_element", + FT_NONE, BASE_NONE, NULL, 0, + "PREQ", HFILL }}, + { &hf_ilp_msPRES, + { "msPRES", "ilp.msPRES_element", + FT_NONE, BASE_NONE, NULL, 0, + "PRES", HFILL }}, + { &hf_ilp_msPRPT, + { "msPRPT", "ilp.msPRPT_element", + FT_NONE, BASE_NONE, NULL, 0, + "PRPT", HFILL }}, + { &hf_ilp_msPLREQ, + { "msPLREQ", "ilp.msPLREQ_element", + FT_NONE, BASE_NONE, NULL, 0, + "PLREQ", HFILL }}, + { &hf_ilp_msPLRES, + { "msPLRES", "ilp.msPLRES_element", + FT_NONE, BASE_NONE, NULL, 0, + "PLRES", HFILL }}, + { &hf_ilp_msPINIT, + { "msPINIT", "ilp.msPINIT_element", + FT_NONE, BASE_NONE, NULL, 0, + "PINIT", HFILL }}, + { &hf_ilp_msPAUTH, + { "msPAUTH", "ilp.msPAUTH_element", + FT_NONE, BASE_NONE, NULL, 0, + "PAUTH", HFILL }}, + { &hf_ilp_msPALIVE, + { "msPALIVE", "ilp.msPALIVE_element", + FT_NONE, BASE_NONE, NULL, 0, + "PALIVE", HFILL }}, + { &hf_ilp_msPEND, + { "msPEND", "ilp.msPEND_element", + FT_NONE, BASE_NONE, NULL, 0, + "PEND", HFILL }}, + { &hf_ilp_msPMESS, + { "msPMESS", "ilp.msPMESS_element", + FT_NONE, BASE_NONE, NULL, 0, + "PMESS", HFILL }}, + { &hf_ilp_sLPMode, + { "sLPMode", "ilp.sLPMode", + FT_UINT32, BASE_DEC, VALS(ilp_SLPMode_vals), 0, + NULL, HFILL }}, + { &hf_ilp_approvedPosMethods, + { "approvedPosMethods", "ilp.approvedPosMethods_element", + FT_NONE, BASE_NONE, NULL, 0, + "PosTechnology", HFILL }}, + { &hf_ilp_locationId, + { "locationId", "ilp.locationId_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_multipleLocationIds, + { "multipleLocationIds", "ilp.multipleLocationIds", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_position, + { "position", "ilp.position_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_triggerParams, + { "triggerParams", "ilp.triggerParams_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_sPCSETKey, + { "sPCSETKey", "ilp.sPCSETKey", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_spctid, + { "spctid", "ilp.spctid_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_sPCSETKeylifetime, + { "sPCSETKeylifetime", "ilp.sPCSETKeylifetime", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_qoP, + { "qoP", "ilp.qoP_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_sETCapabilities, + { "sETCapabilities", "ilp.sETCapabilities_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_notificationMode, + { "notificationMode", "ilp.notificationMode", + FT_UINT32, BASE_DEC, VALS(ilp_NotificationMode_vals), 0, + NULL, HFILL }}, + { &hf_ilp_triggerType, + { "triggerType", "ilp.triggerType", + FT_UINT32, BASE_DEC, VALS(ilp_TriggerType_vals), 0, + NULL, HFILL }}, + { &hf_ilp_periodicTriggerParams, + { "periodicTriggerParams", "ilp.periodicTriggerParams_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_numberOfFixes, + { "numberOfFixes", "ilp.numberOfFixes", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_8639999", HFILL }}, + { &hf_ilp_intervalBetweenFixes, + { "intervalBetweenFixes", "ilp.intervalBetweenFixes", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_8639999", HFILL }}, + { &hf_ilp_startTime, + { "startTime", "ilp.startTime", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_2678400", HFILL }}, + { &hf_ilp_preferredPosMethod, + { "preferredPosMethod", "ilp.preferredPosMethod", + FT_UINT32, BASE_DEC, VALS(ilp_PosMethod_vals), 0, + "PosMethod", HFILL }}, + { &hf_ilp_gnssPosTechnology, + { "gnssPosTechnology", "ilp.gnssPosTechnology_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_supportedPosMethods, + { "supportedPosMethods", "ilp.supportedPosMethods_element", + FT_NONE, BASE_NONE, NULL, 0, + "PosTechnology", HFILL }}, + { &hf_ilp_sPCstatusCode, + { "sPCstatusCode", "ilp.sPCstatusCode", + FT_UINT32, BASE_DEC, VALS(ilp_SPCStatusCode_vals), 0, + NULL, HFILL }}, + { &hf_ilp_fixNumber, + { "fixNumber", "ilp.fixNumber", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_8639999", HFILL }}, + { &hf_ilp_statusCode, + { "statusCode", "ilp.statusCode", + FT_UINT32, BASE_DEC, VALS(ilp_StatusCode_vals), 0, + NULL, HFILL }}, + { &hf_ilp_positionResults, + { "positionResults", "ilp.positionResults", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_PositionResults_item, + { "PositionResult", "ilp.PositionResult", + FT_UINT32, BASE_DEC, VALS(ilp_PositionResult_vals), 0, + NULL, HFILL }}, + { &hf_ilp_posMethod, + { "posMethod", "ilp.posMethod", + FT_UINT32, BASE_DEC, VALS(ilp_PosMethod_vals), 0, + NULL, HFILL }}, + { &hf_ilp_requestedAssistData, + { "requestedAssistData", "ilp.requestedAssistData_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_posPayLoad, + { "posPayLoad", "ilp.posPayLoad", + FT_UINT32, BASE_DEC, VALS(ilp_PosPayLoad_vals), 0, + NULL, HFILL }}, + { &hf_ilp_utran_GPSReferenceTimeResult, + { "utran-GPSReferenceTimeResult", "ilp.utran_GPSReferenceTimeResult_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_utran_GANSSReferenceTimeResult, + { "utran-GANSSReferenceTimeResult", "ilp.utran_GANSSReferenceTimeResult_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_almanacRequested, + { "almanacRequested", "ilp.almanacRequested", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_utcModelRequested, + { "utcModelRequested", "ilp.utcModelRequested", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_ionosphericModelRequested, + { "ionosphericModelRequested", "ilp.ionosphericModelRequested", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_dgpsCorrectionsRequested, + { "dgpsCorrectionsRequested", "ilp.dgpsCorrectionsRequested", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_referenceLocationRequested, + { "referenceLocationRequested", "ilp.referenceLocationRequested", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_referenceTimeRequested, + { "referenceTimeRequested", "ilp.referenceTimeRequested", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_acquisitionAssistanceRequested, + { "acquisitionAssistanceRequested", "ilp.acquisitionAssistanceRequested", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_realTimeIntegrityRequested, + { "realTimeIntegrityRequested", "ilp.realTimeIntegrityRequested", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_navigationModelRequested, + { "navigationModelRequested", "ilp.navigationModelRequested", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_navigationModelData, + { "navigationModelData", "ilp.navigationModelData_element", + FT_NONE, BASE_NONE, NULL, 0, + "NavigationModel", HFILL }}, + { &hf_ilp_ganssRequestedCommonAssistanceDataList, + { "ganssRequestedCommonAssistanceDataList", "ilp.ganssRequestedCommonAssistanceDataList_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_ganssRequestedGenericAssistanceDataList, + { "ganssRequestedGenericAssistanceDataList", "ilp.ganssRequestedGenericAssistanceDataList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_extendedEphemeris, + { "extendedEphemeris", "ilp.extendedEphemeris_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_extendedEphemerisCheck, + { "extendedEphemerisCheck", "ilp.extendedEphemerisCheck_element", + FT_NONE, BASE_NONE, NULL, 0, + "ExtendedEphCheck", HFILL }}, + { &hf_ilp_validity, + { "validity", "ilp.validity", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_256", HFILL }}, + { &hf_ilp_beginTime, + { "beginTime", "ilp.beginTime_element", + FT_NONE, BASE_NONE, NULL, 0, + "GPSTime", HFILL }}, + { &hf_ilp_endTime, + { "endTime", "ilp.endTime_element", + FT_NONE, BASE_NONE, NULL, 0, + "GPSTime", HFILL }}, + { &hf_ilp_gPSWeek, + { "gPSWeek", "ilp.gPSWeek", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1023", HFILL }}, + { &hf_ilp_gPSTOWhour, + { "gPSTOWhour", "ilp.gPSTOWhour", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_167", HFILL }}, + { &hf_ilp_ganssReferenceTime, + { "ganssReferenceTime", "ilp.ganssReferenceTime", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_ganssIonosphericModel, + { "ganssIonosphericModel", "ilp.ganssIonosphericModel", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_ganssAdditionalIonosphericModelForDataID00, + { "ganssAdditionalIonosphericModelForDataID00", "ilp.ganssAdditionalIonosphericModelForDataID00", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_ganssAdditionalIonosphericModelForDataID11, + { "ganssAdditionalIonosphericModelForDataID11", "ilp.ganssAdditionalIonosphericModelForDataID11", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_ganssEarthOrientationParameters, + { "ganssEarthOrientationParameters", "ilp.ganssEarthOrientationParameters", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_ganssAdditionalIonosphericModelForDataID01, + { "ganssAdditionalIonosphericModelForDataID01", "ilp.ganssAdditionalIonosphericModelForDataID01", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_GanssRequestedGenericAssistanceDataList_item, + { "GanssReqGenericData", "ilp.GanssReqGenericData_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_ganssId, + { "ganssId", "ilp.ganssId", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_15", HFILL }}, + { &hf_ilp_ganssSBASid, + { "ganssSBASid", "ilp.ganssSBASid", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_3", HFILL }}, + { &hf_ilp_ganssRealTimeIntegrity, + { "ganssRealTimeIntegrity", "ilp.ganssRealTimeIntegrity", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_ganssDifferentialCorrection, + { "ganssDifferentialCorrection", "ilp.ganssDifferentialCorrection", + FT_BYTES, BASE_NONE, NULL, 0, + "DGANSS_Sig_Id_Req", HFILL }}, + { &hf_ilp_ganssAlmanac, + { "ganssAlmanac", "ilp.ganssAlmanac", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_ganssNavigationModelData, + { "ganssNavigationModelData", "ilp.ganssNavigationModelData_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_ganssTimeModels, + { "ganssTimeModels", "ilp.ganssTimeModels", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_16", HFILL }}, + { &hf_ilp_ganssReferenceMeasurementInfo, + { "ganssReferenceMeasurementInfo", "ilp.ganssReferenceMeasurementInfo", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_ganssDataBits, + { "ganssDataBits", "ilp.ganssDataBits_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_ganssUTCModel, + { "ganssUTCModel", "ilp.ganssUTCModel", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_ganssAdditionalDataChoices, + { "ganssAdditionalDataChoices", "ilp.ganssAdditionalDataChoices_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_ganssAuxiliaryInformation, + { "ganssAuxiliaryInformation", "ilp.ganssAuxiliaryInformation", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_ganssExtendedEphemeris, + { "ganssExtendedEphemeris", "ilp.ganssExtendedEphemeris_element", + FT_NONE, BASE_NONE, NULL, 0, + "ExtendedEphemeris", HFILL }}, + { &hf_ilp_ganssExtendedEphemerisCheck, + { "ganssExtendedEphemerisCheck", "ilp.ganssExtendedEphemerisCheck_element", + FT_NONE, BASE_NONE, NULL, 0, + "GanssExtendedEphCheck", HFILL }}, + { &hf_ilp_bds_DifferentialCorrection, + { "bds-DifferentialCorrection", "ilp.bds_DifferentialCorrection", + FT_BYTES, BASE_NONE, NULL, 0, + "BDS_Sig_Id_Req", HFILL }}, + { &hf_ilp_bds_GridModelReq, + { "bds-GridModelReq", "ilp.bds_GridModelReq", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_ganssWeek, + { "ganssWeek", "ilp.ganssWeek", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_4095", HFILL }}, + { &hf_ilp_ganssToe, + { "ganssToe", "ilp.ganssToe", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_167", HFILL }}, + { &hf_ilp_t_toeLimit, + { "t-toeLimit", "ilp.t_toeLimit", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_10", HFILL }}, + { &hf_ilp_satellitesListRelatedDataList, + { "satellitesListRelatedDataList", "ilp.satellitesListRelatedDataList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_SatellitesListRelatedDataList_item, + { "SatellitesListRelatedData", "ilp.SatellitesListRelatedData_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_satId, + { "satId", "ilp.satId", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_63", HFILL }}, + { &hf_ilp_iod, + { "iod", "ilp.iod", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1023", HFILL }}, + { &hf_ilp_ganssTODmin, + { "ganssTODmin", "ilp.ganssTODmin", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_59", HFILL }}, + { &hf_ilp_reqDataBitAssistanceList, + { "reqDataBitAssistanceList", "ilp.reqDataBitAssistanceList_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_gnssSignals, + { "gnssSignals", "ilp.gnssSignals", + FT_BYTES, BASE_NONE, NULL, 0, + "GANSSSignals", HFILL }}, + { &hf_ilp_ganssDataBitInterval, + { "ganssDataBitInterval", "ilp.ganssDataBitInterval", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_15", HFILL }}, + { &hf_ilp_ganssDataBitSatList, + { "ganssDataBitSatList", "ilp.ganssDataBitSatList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_ganssDataBitSatList_item, + { "ganssDataBitSatList item", "ilp.ganssDataBitSatList_item", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_63", HFILL }}, + { &hf_ilp_orbitModelID, + { "orbitModelID", "ilp.orbitModelID", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_7", HFILL }}, + { &hf_ilp_clockModelID, + { "clockModelID", "ilp.clockModelID", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_7", HFILL }}, + { &hf_ilp_utcModelID, + { "utcModelID", "ilp.utcModelID", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_7", HFILL }}, + { &hf_ilp_almanacModelID, + { "almanacModelID", "ilp.almanacModelID", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_7", HFILL }}, + { &hf_ilp_beginTime_01, + { "beginTime", "ilp.beginTime_element", + FT_NONE, BASE_NONE, NULL, 0, + "GANSSextEphTime", HFILL }}, + { &hf_ilp_endTime_01, + { "endTime", "ilp.endTime_element", + FT_NONE, BASE_NONE, NULL, 0, + "GANSSextEphTime", HFILL }}, + { &hf_ilp_gANSSday, + { "gANSSday", "ilp.gANSSday", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_8191", HFILL }}, + { &hf_ilp_gANSSTODhour, + { "gANSSTODhour", "ilp.gANSSTODhour", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_23", HFILL }}, + { &hf_ilp_gpsWeek, + { "gpsWeek", "ilp.gpsWeek", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1023", HFILL }}, + { &hf_ilp_gpsToe, + { "gpsToe", "ilp.gpsToe", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_167", HFILL }}, + { &hf_ilp_nsat, + { "nsat", "ilp.nsat", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_31", HFILL }}, + { &hf_ilp_toeLimit, + { "toeLimit", "ilp.toeLimit", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_10", HFILL }}, + { &hf_ilp_satInfo, + { "satInfo", "ilp.satInfo", + FT_UINT32, BASE_DEC, NULL, 0, + "SatelliteInfo", HFILL }}, + { &hf_ilp_SatelliteInfo_item, + { "SatelliteInfoElement", "ilp.SatelliteInfoElement_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_iode, + { "iode", "ilp.iode", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_255", HFILL }}, + { &hf_ilp_sPCStatusCode, + { "sPCStatusCode", "ilp.sPCStatusCode", + FT_UINT32, BASE_DEC, VALS(ilp_SPCStatusCode_vals), 0, + NULL, HFILL }}, + { &hf_ilp_velocity, + { "velocity", "ilp.velocity", + FT_UINT32, BASE_DEC, VALS(ilp_Velocity_vals), 0, + NULL, HFILL }}, + { &hf_ilp_utran_GPSReferenceTimeAssistance, + { "utran-GPSReferenceTimeAssistance", "ilp.utran_GPSReferenceTimeAssistance_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_utran_GANSSReferenceTimeAssistance, + { "utran-GANSSReferenceTimeAssistance", "ilp.utran_GANSSReferenceTimeAssistance_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_maj, + { "maj", "ilp.maj", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_255", HFILL }}, + { &hf_ilp_min, + { "min", "ilp.min", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_255", HFILL }}, + { &hf_ilp_servind, + { "servind", "ilp.servind", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_255", HFILL }}, + { &hf_ilp_slcSessionID, + { "slcSessionID", "ilp.slcSessionID_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_setSessionID, + { "setSessionID", "ilp.setSessionID_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_spcSessionID, + { "spcSessionID", "ilp.spcSessionID_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_sessionId, + { "sessionId", "ilp.sessionId", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_65535", HFILL }}, + { &hf_ilp_setId, + { "setId", "ilp.setId", + FT_UINT32, BASE_DEC, VALS(ilp_SETId_vals), 0, + NULL, HFILL }}, + { &hf_ilp_msisdn, + { "msisdn", "ilp.msisdn", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_mdn, + { "mdn", "ilp.mdn", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_minsi, + { "min", "ilp.minsi", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_34", HFILL }}, + { &hf_ilp_imsi, + { "imsi", "ilp.imsi", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_nai, + { "nai", "ilp.nai", + FT_STRING, BASE_NONE, NULL, 0, + "IA5String_SIZE_1_1000", HFILL }}, + { &hf_ilp_iPAddress, + { "iPAddress", "ilp.iPAddress", + FT_UINT32, BASE_DEC, VALS(ilp_IPAddress_vals), 0, + NULL, HFILL }}, + { &hf_ilp_imei, + { "imei", "ilp.imei", + FT_BYTES, BASE_NONE, NULL, 0, + "OCTET_STRING_SIZE_8", HFILL }}, + { &hf_ilp_sessionID, + { "sessionID", "ilp.sessionID", + FT_BYTES, BASE_NONE, NULL, 0, + "OCTET_STRING_SIZE_4", HFILL }}, + { &hf_ilp_slcId, + { "slcId", "ilp.slcId", + FT_UINT32, BASE_DEC, VALS(ilp_NodeAddress_vals), 0, + "NodeAddress", HFILL }}, + { &hf_ilp_spcId, + { "spcId", "ilp.spcId", + FT_UINT32, BASE_DEC, VALS(ilp_NodeAddress_vals), 0, + "NodeAddress", HFILL }}, + { &hf_ilp_ipv4Address, + { "ipv4Address", "ilp.ipv4Address", + FT_IPv4, BASE_NONE, NULL, 0, + "OCTET_STRING_SIZE_4", HFILL }}, + { &hf_ilp_ipv6Address, + { "ipv6Address", "ilp.ipv6Address", + FT_IPv6, BASE_NONE, NULL, 0, + "OCTET_STRING_SIZE_16", HFILL }}, + { &hf_ilp_fqdn, + { "fqdn", "ilp.fqdn", + FT_STRING, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_cellInfo, + { "cellInfo", "ilp.cellInfo", + FT_UINT32, BASE_DEC, VALS(ilp_CellInfo_vals), 0, + NULL, HFILL }}, + { &hf_ilp_status, + { "status", "ilp.status", + FT_UINT32, BASE_DEC, VALS(ilp_Status_vals), 0, + NULL, HFILL }}, + { &hf_ilp_MultipleLocationIds_item, + { "LocationIdData", "ilp.LocationIdData_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_relativetimestamp, + { "relativetimestamp", "ilp.relativetimestamp", + FT_UINT32, BASE_DEC, NULL, 0, + "RelativeTime", HFILL }}, + { &hf_ilp_servingFlag, + { "servingFlag", "ilp.servingFlag", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_posTechnology, + { "posTechnology", "ilp.posTechnology_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_prefMethod, + { "prefMethod", "ilp.prefMethod", + FT_UINT32, BASE_DEC, VALS(ilp_PrefMethod_vals), 0, + NULL, HFILL }}, + { &hf_ilp_posProtocol, + { "posProtocol", "ilp.posProtocol_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_supportedBearers, + { "supportedBearers", "ilp.supportedBearers_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_agpsSETassisted, + { "agpsSETassisted", "ilp.agpsSETassisted", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_agpsSETBased, + { "agpsSETBased", "ilp.agpsSETBased", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_autonomousGPS, + { "autonomousGPS", "ilp.autonomousGPS", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_aflt, + { "aflt", "ilp.aflt", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_ecid, + { "ecid", "ilp.ecid", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_eotd, + { "eotd", "ilp.eotd", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_otdoa, + { "otdoa", "ilp.otdoa", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_gANSSPositionMethods, + { "gANSSPositionMethods", "ilp.gANSSPositionMethods", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_additionalPositioningMethods, + { "additionalPositioningMethods", "ilp.additionalPositioningMethods", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_GANSSPositionMethods_item, + { "GANSSPositionMethod", "ilp.GANSSPositionMethod_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_gANSSPositioningMethodTypes, + { "gANSSPositioningMethodTypes", "ilp.gANSSPositioningMethodTypes_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_gANSSSignals, + { "gANSSSignals", "ilp.gANSSSignals", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_setAssisted, + { "setAssisted", "ilp.setAssisted", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_setBased, + { "setBased", "ilp.setBased", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_autonomous, + { "autonomous", "ilp.autonomous", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_AdditionalPositioningMethods_item, + { "AddPosSupport-Element", "ilp.AddPosSupport_Element_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_addPosID, + { "addPosID", "ilp.addPosID", + FT_UINT32, BASE_DEC, VALS(ilp_T_addPosID_vals), 0, + NULL, HFILL }}, + { &hf_ilp_addPosMode, + { "addPosMode", "ilp.addPosMode", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_tia801, + { "tia801", "ilp.tia801", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_rrlp, + { "rrlp", "ilp.rrlp", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_rrc, + { "rrc", "ilp.rrc", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_lpp, + { "lpp", "ilp.lpp", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_posProtocolVersionRRLP, + { "posProtocolVersionRRLP", "ilp.posProtocolVersionRRLP_element", + FT_NONE, BASE_NONE, NULL, 0, + "PosProtocolVersion3GPP", HFILL }}, + { &hf_ilp_posProtocolVersionRRC, + { "posProtocolVersionRRC", "ilp.posProtocolVersionRRC_element", + FT_NONE, BASE_NONE, NULL, 0, + "PosProtocolVersion3GPP", HFILL }}, + { &hf_ilp_posProtocolVersionTIA801, + { "posProtocolVersionTIA801", "ilp.posProtocolVersionTIA801", + FT_UINT32, BASE_DEC, NULL, 0, + "PosProtocolVersion3GPP2", HFILL }}, + { &hf_ilp_posProtocolVersionLPP, + { "posProtocolVersionLPP", "ilp.posProtocolVersionLPP_element", + FT_NONE, BASE_NONE, NULL, 0, + "PosProtocolVersion3GPP", HFILL }}, + { &hf_ilp_lppe, + { "lppe", "ilp.lppe", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_posProtocolVersionLPPe, + { "posProtocolVersionLPPe", "ilp.posProtocolVersionLPPe_element", + FT_NONE, BASE_NONE, NULL, 0, + "PosProtocolVersionOMA", HFILL }}, + { &hf_ilp_majorVersionField, + { "majorVersionField", "ilp.majorVersionField", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_255", HFILL }}, + { &hf_ilp_technicalVersionField, + { "technicalVersionField", "ilp.technicalVersionField", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_255", HFILL }}, + { &hf_ilp_editorialVersionField, + { "editorialVersionField", "ilp.editorialVersionField", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_255", HFILL }}, + { &hf_ilp_PosProtocolVersion3GPP2_item, + { "Supported3GPP2PosProtocolVersion", "ilp.Supported3GPP2PosProtocolVersion_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_revisionNumber, + { "revisionNumber", "ilp.revisionNumber", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_6", HFILL }}, + { &hf_ilp_pointReleaseNumber, + { "pointReleaseNumber", "ilp.pointReleaseNumber", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_255", HFILL }}, + { &hf_ilp_internalEditLevel, + { "internalEditLevel", "ilp.internalEditLevel", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_255", HFILL }}, + { &hf_ilp_minorVersionField, + { "minorVersionField", "ilp.minorVersionField", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_255", HFILL }}, + { &hf_ilp_gsm, + { "gsm", "ilp.gsm", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_wcdma, + { "wcdma", "ilp.wcdma", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_lte, + { "lte", "ilp.lte", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_cdma, + { "cdma", "ilp.cdma", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_hprd, + { "hprd", "ilp.hprd", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_umb, + { "umb", "ilp.umb", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_wlan, + { "wlan", "ilp.wlan", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_wiMAX, + { "wiMAX", "ilp.wiMAX", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_nr, + { "nr", "ilp.nr", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_gsmCell, + { "gsmCell", "ilp.gsmCell_element", + FT_NONE, BASE_NONE, NULL, 0, + "GsmCellInformation", HFILL }}, + { &hf_ilp_wcdmaCell, + { "wcdmaCell", "ilp.wcdmaCell_element", + FT_NONE, BASE_NONE, NULL, 0, + "WcdmaCellInformation", HFILL }}, + { &hf_ilp_cdmaCell, + { "cdmaCell", "ilp.cdmaCell_element", + FT_NONE, BASE_NONE, NULL, 0, + "CdmaCellInformation", HFILL }}, + { &hf_ilp_hrpdCell, + { "hrpdCell", "ilp.hrpdCell_element", + FT_NONE, BASE_NONE, NULL, 0, + "HrpdCellInformation", HFILL }}, + { &hf_ilp_umbCell, + { "umbCell", "ilp.umbCell_element", + FT_NONE, BASE_NONE, NULL, 0, + "UmbCellInformation", HFILL }}, + { &hf_ilp_lteCell, + { "lteCell", "ilp.lteCell_element", + FT_NONE, BASE_NONE, NULL, 0, + "LteCellInformation", HFILL }}, + { &hf_ilp_wlanAP, + { "wlanAP", "ilp.wlanAP_element", + FT_NONE, BASE_NONE, NULL, 0, + "WlanAPInformation", HFILL }}, + { &hf_ilp_wimaxBS, + { "wimaxBS", "ilp.wimaxBS_element", + FT_NONE, BASE_NONE, NULL, 0, + "WimaxBSInformation", HFILL }}, + { &hf_ilp_nrCell, + { "nrCell", "ilp.nrCell_element", + FT_NONE, BASE_NONE, NULL, 0, + "NRCellInformation", HFILL }}, + { &hf_ilp_set_GPSTimingOfCell, + { "set-GPSTimingOfCell", "ilp.set_GPSTimingOfCell_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_set_GPSTimingOfCell", HFILL }}, + { &hf_ilp_ms_part, + { "ms-part", "ilp.ms_part", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_16383", HFILL }}, + { &hf_ilp_ls_part, + { "ls-part", "ilp.ls_part", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_4294967295", HFILL }}, + { &hf_ilp_modeSpecificInfo, + { "modeSpecificInfo", "ilp.modeSpecificInfo", + FT_UINT32, BASE_DEC, VALS(ilp_T_modeSpecificInfo_vals), 0, + NULL, HFILL }}, + { &hf_ilp_fdd, + { "fdd", "ilp.fdd_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_referenceIdentity, + { "referenceIdentity", "ilp.referenceIdentity_element", + FT_NONE, BASE_NONE, NULL, 0, + "PrimaryCPICH_Info", HFILL }}, + { &hf_ilp_tdd, + { "tdd", "ilp.tdd_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_referenceIdentity_01, + { "referenceIdentity", "ilp.referenceIdentity", + FT_UINT32, BASE_DEC, NULL, 0, + "CellParametersID", HFILL }}, + { &hf_ilp_sfn, + { "sfn", "ilp.sfn", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_4095", HFILL }}, + { &hf_ilp_gpsReferenceTimeUncertainty, + { "gpsReferenceTimeUncertainty", "ilp.gpsReferenceTimeUncertainty", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_127", HFILL }}, + { &hf_ilp_ganssTimeID, + { "ganssTimeID", "ilp.ganssTimeID", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_15", HFILL }}, + { &hf_ilp_set_GANSSReferenceTime, + { "set-GANSSReferenceTime", "ilp.set_GANSSReferenceTime_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_set_GANSSTimingOfCell, + { "set-GANSSTimingOfCell", "ilp.set_GANSSTimingOfCell_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_set_GANSSTimingOfCell", HFILL }}, + { &hf_ilp_ms_part_01, + { "ms-part", "ilp.ms_part", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_80", HFILL }}, + { &hf_ilp_modeSpecificInfo_01, + { "modeSpecificInfo", "ilp.modeSpecificInfo", + FT_UINT32, BASE_DEC, VALS(ilp_T_modeSpecificInfo_01_vals), 0, + "T_modeSpecificInfo_01", HFILL }}, + { &hf_ilp_fdd_01, + { "fdd", "ilp.fdd_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_fdd_01", HFILL }}, + { &hf_ilp_tdd_01, + { "tdd", "ilp.tdd_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_tdd_01", HFILL }}, + { &hf_ilp_ganss_TODUncertainty, + { "ganss-TODUncertainty", "ilp.ganss_TODUncertainty", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_127", HFILL }}, + { &hf_ilp_gps, + { "gps", "ilp.gps", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_galileo, + { "galileo", "ilp.galileo", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_sbas, + { "sbas", "ilp.sbas", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_modernized_gps, + { "modernized-gps", "ilp.modernized_gps", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_qzss, + { "qzss", "ilp.qzss", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_glonass, + { "glonass", "ilp.glonass", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_bds, + { "bds", "ilp.bds", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_ilp_timestamp, + { "timestamp", "ilp.timestamp", + FT_STRING, BASE_NONE, NULL, 0, + "UTCTime", HFILL }}, + { &hf_ilp_positionEstimate, + { "positionEstimate", "ilp.positionEstimate_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_latitudeSign, + { "latitudeSign", "ilp.latitudeSign", + FT_UINT32, BASE_DEC, VALS(ilp_T_latitudeSign_vals), 0, + NULL, HFILL }}, + { &hf_ilp_latitude, + { "latitude", "ilp.latitude", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_8388607", HFILL }}, + { &hf_ilp_longitude, + { "longitude", "ilp.longitude", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M8388608_8388607", HFILL }}, + { &hf_ilp_uncertainty, + { "uncertainty", "ilp.uncertainty_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_uncertaintySemiMajor, + { "uncertaintySemiMajor", "ilp.uncertaintySemiMajor", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_127", HFILL }}, + { &hf_ilp_uncertaintySemiMinor, + { "uncertaintySemiMinor", "ilp.uncertaintySemiMinor", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_127", HFILL }}, + { &hf_ilp_orientationMajorAxis, + { "orientationMajorAxis", "ilp.orientationMajorAxis", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_180", HFILL }}, + { &hf_ilp_confidence, + { "confidence", "ilp.confidence", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_100", HFILL }}, + { &hf_ilp_altitudeInfo, + { "altitudeInfo", "ilp.altitudeInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_altitudeDirection, + { "altitudeDirection", "ilp.altitudeDirection", + FT_UINT32, BASE_DEC, VALS(ilp_T_altitudeDirection_vals), 0, + NULL, HFILL }}, + { &hf_ilp_altitude, + { "altitude", "ilp.altitude", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_32767", HFILL }}, + { &hf_ilp_altUncertainty, + { "altUncertainty", "ilp.altUncertainty", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_127", HFILL }}, + { &hf_ilp_refNID, + { "refNID", "ilp.refNID", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_65535", HFILL }}, + { &hf_ilp_refSID, + { "refSID", "ilp.refSID", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_32767", HFILL }}, + { &hf_ilp_refBASEID, + { "refBASEID", "ilp.refBASEID", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_65535", HFILL }}, + { &hf_ilp_refBASELAT, + { "refBASELAT", "ilp.refBASELAT", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_4194303", HFILL }}, + { &hf_ilp_reBASELONG, + { "reBASELONG", "ilp.reBASELONG", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_8388607", HFILL }}, + { &hf_ilp_refREFPN, + { "refREFPN", "ilp.refREFPN", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_511", HFILL }}, + { &hf_ilp_refWeekNumber, + { "refWeekNumber", "ilp.refWeekNumber", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_65535", HFILL }}, + { &hf_ilp_refSeconds, + { "refSeconds", "ilp.refSeconds", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_4194303", HFILL }}, + { &hf_ilp_refMCC, + { "refMCC", "ilp.refMCC", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_999", HFILL }}, + { &hf_ilp_refMNC, + { "refMNC", "ilp.refMNC", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_999", HFILL }}, + { &hf_ilp_refLAC, + { "refLAC", "ilp.refLAC", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_65535", HFILL }}, + { &hf_ilp_refCI, + { "refCI", "ilp.refCI", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_65535", HFILL }}, + { &hf_ilp_nmr, + { "nmr", "ilp.nmr", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_ta, + { "ta", "ilp.ta", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_255", HFILL }}, + { &hf_ilp_refUC, + { "refUC", "ilp.refUC", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_268435455", HFILL }}, + { &hf_ilp_frequencyInfo, + { "frequencyInfo", "ilp.frequencyInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_primaryScramblingCode, + { "primaryScramblingCode", "ilp.primaryScramblingCode", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_511", HFILL }}, + { &hf_ilp_measuredResultsList, + { "measuredResultsList", "ilp.measuredResultsList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_cellParametersId, + { "cellParametersId", "ilp.cellParametersId", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_127", HFILL }}, + { &hf_ilp_timingAdvance, + { "timingAdvance", "ilp.timingAdvance_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_ta_01, + { "ta", "ilp.ta", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_8191", HFILL }}, + { &hf_ilp_tAResolution, + { "tAResolution", "ilp.tAResolution", + FT_UINT32, BASE_DEC, VALS(ilp_TAResolution_vals), 0, + NULL, HFILL }}, + { &hf_ilp_chipRate, + { "chipRate", "ilp.chipRate", + FT_UINT32, BASE_DEC, VALS(ilp_ChipRate_vals), 0, + NULL, HFILL }}, + { &hf_ilp_refSECTORID, + { "refSECTORID", "ilp.refSECTORID", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_128", HFILL }}, + { &hf_ilp_cellGlobalIdEUTRA, + { "cellGlobalIdEUTRA", "ilp.cellGlobalIdEUTRA_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_physCellId, + { "physCellId", "ilp.physCellId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_trackingAreaCode, + { "trackingAreaCode", "ilp.trackingAreaCode", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_rsrpResult, + { "rsrpResult", "ilp.rsrpResult", + FT_UINT32, BASE_DEC, NULL, 0, + "RSRP_Range", HFILL }}, + { &hf_ilp_rsrqResult, + { "rsrqResult", "ilp.rsrqResult", + FT_UINT32, BASE_DEC, NULL, 0, + "RSRQ_Range", HFILL }}, + { &hf_ilp_ta_02, + { "ta", "ilp.ta", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1282", HFILL }}, + { &hf_ilp_measResultListEUTRA, + { "measResultListEUTRA", "ilp.measResultListEUTRA", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_earfcn, + { "earfcn", "ilp.earfcn", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_65535", HFILL }}, + { &hf_ilp_earfcn_ext, + { "earfcn-ext", "ilp.earfcn_ext", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_65536_262143", HFILL }}, + { &hf_ilp_rsrpResult_ext, + { "rsrpResult-ext", "ilp.rsrpResult_ext", + FT_INT32, BASE_DEC, NULL, 0, + "RSRP_Range_Ext", HFILL }}, + { &hf_ilp_rsrqResult_ext, + { "rsrqResult-ext", "ilp.rsrqResult_ext", + FT_INT32, BASE_DEC, NULL, 0, + "RSRQ_Range_Ext", HFILL }}, + { &hf_ilp_rs_sinrResult, + { "rs-sinrResult", "ilp.rs_sinrResult", + FT_UINT32, BASE_DEC, NULL, 0, + "RS_SINR_Range", HFILL }}, + { &hf_ilp_servingInformation5G, + { "servingInformation5G", "ilp.servingInformation5G_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_MeasResultListEUTRA_item, + { "MeasResultEUTRA", "ilp.MeasResultEUTRA_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_cgi_Info, + { "cgi-Info", "ilp.cgi_Info_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_cellGlobalId, + { "cellGlobalId", "ilp.cellGlobalId_element", + FT_NONE, BASE_NONE, NULL, 0, + "CellGlobalIdEUTRA", HFILL }}, + { &hf_ilp_measResult, + { "measResult", "ilp.measResult_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_neighbourInformation5G, + { "neighbourInformation5G", "ilp.neighbourInformation5G_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_plmn_Identity, + { "plmn-Identity", "ilp.plmn_Identity_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_eutra_cellIdentity, + { "cellIdentity", "ilp.cellglobalideutra.cellIdentity", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_mcc, + { "mcc", "ilp.mcc", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_mnc, + { "mnc", "ilp.mnc", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_MCC_item, + { "MCC-MNC-Digit", "ilp.MCC_MNC_Digit", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_MNC_item, + { "MCC-MNC-Digit", "ilp.MCC_MNC_Digit", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_trackingAreaCode_01, + { "trackingAreaCode", "ilp.trackingAreaCode", + FT_BYTES, BASE_NONE, NULL, 0, + "TrackingAreaCodeNR", HFILL }}, + { &hf_ilp_apMACAddress, + { "apMACAddress", "ilp.apMACAddress", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_48", HFILL }}, + { &hf_ilp_apTransmitPower, + { "apTransmitPower", "ilp.apTransmitPower", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M127_128", HFILL }}, + { &hf_ilp_apAntennaGain, + { "apAntennaGain", "ilp.apAntennaGain", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M127_128", HFILL }}, + { &hf_ilp_apSignaltoNoise, + { "apSignaltoNoise", "ilp.apSignaltoNoise", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M127_128", HFILL }}, + { &hf_ilp_apDeviceType, + { "apDeviceType", "ilp.apDeviceType", + FT_UINT32, BASE_DEC, VALS(ilp_T_apDeviceType_vals), 0, + NULL, HFILL }}, + { &hf_ilp_apSignalStrength, + { "apSignalStrength", "ilp.apSignalStrength", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M127_128", HFILL }}, + { &hf_ilp_apChannelFrequency, + { "apChannelFrequency", "ilp.apChannelFrequency", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_256", HFILL }}, + { &hf_ilp_apRoundTripDelay, + { "apRoundTripDelay", "ilp.apRoundTripDelay_element", + FT_NONE, BASE_NONE, NULL, 0, + "RTD", HFILL }}, + { &hf_ilp_setTransmitPower, + { "setTransmitPower", "ilp.setTransmitPower", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M127_128", HFILL }}, + { &hf_ilp_setAntennaGain, + { "setAntennaGain", "ilp.setAntennaGain", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M127_128", HFILL }}, + { &hf_ilp_setSignaltoNoise, + { "setSignaltoNoise", "ilp.setSignaltoNoise", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M127_128", HFILL }}, + { &hf_ilp_setSignalStrength, + { "setSignalStrength", "ilp.setSignalStrength", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M127_128", HFILL }}, + { &hf_ilp_apReportedLocation, + { "apReportedLocation", "ilp.apReportedLocation_element", + FT_NONE, BASE_NONE, NULL, 0, + "ReportedLocation", HFILL }}, + { &hf_ilp_apRepLocation, + { "apRepLocation", "ilp.apRepLocation", + FT_UINT32, BASE_DEC, VALS(ilp_RepLocation_vals), 0, + "RepLocation", HFILL }}, + { &hf_ilp_apSignalStrengthDelta, + { "apSignalStrengthDelta", "ilp.apSignalStrengthDelta", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1", HFILL }}, + { &hf_ilp_apSignaltoNoiseDelta, + { "apSignaltoNoiseDelta", "ilp.apSignaltoNoiseDelta", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1", HFILL }}, + { &hf_ilp_setSignalStrengthDelta, + { "setSignalStrengthDelta", "ilp.setSignalStrengthDelta", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1", HFILL }}, + { &hf_ilp_setSignaltoNoiseDelta, + { "setSignaltoNoiseDelta", "ilp.setSignaltoNoiseDelta", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1", HFILL }}, + { &hf_ilp_operatingClass, + { "operatingClass", "ilp.operatingClass", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_255", HFILL }}, + { &hf_ilp_apSSID, + { "apSSID", "ilp.apSSID", + FT_BYTES, BASE_NONE, NULL, 0, + "OCTET_STRING_SIZE_1_32", HFILL }}, + { &hf_ilp_apPHYType, + { "apPHYType", "ilp.apPHYType", + FT_UINT32, BASE_DEC, VALS(ilp_T_apPHYType_vals), 0, + NULL, HFILL }}, + { &hf_ilp_setMACAddress, + { "setMACAddress", "ilp.setMACAddress", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_48", HFILL }}, + { &hf_ilp_rTDValue, + { "rTDValue", "ilp.rTDValue", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_16777216", HFILL }}, + { &hf_ilp_rTDUnits, + { "rTDUnits", "ilp.rTDUnits", + FT_UINT32, BASE_DEC, VALS(ilp_RTDUnits_vals), 0, + NULL, HFILL }}, + { &hf_ilp_rTDAccuracy, + { "rTDAccuracy", "ilp.rTDAccuracy", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_255", HFILL }}, + { &hf_ilp_locationEncodingDescriptor, + { "locationEncodingDescriptor", "ilp.locationEncodingDescriptor", + FT_UINT32, BASE_DEC, VALS(ilp_LocationEncodingDescriptor_vals), 0, + NULL, HFILL }}, + { &hf_ilp_locationData, + { "locationData", "ilp.locationData_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_locationAccuracy, + { "locationAccuracy", "ilp.locationAccuracy", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_4294967295", HFILL }}, + { &hf_ilp_locationValue, + { "locationValue", "ilp.locationValue", + FT_BYTES, BASE_NONE, NULL, 0, + "OCTET_STRING_SIZE_1_128", HFILL }}, + { &hf_ilp_lciLocData, + { "lciLocData", "ilp.lciLocData_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_locationDataLCI, + { "locationDataLCI", "ilp.locationDataLCI_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_latitudeResolution, + { "latitudeResolution", "ilp.latitudeResolution", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_6", HFILL }}, + { &hf_ilp_LocationDataLCI_latitude, + { "latitude", "ilp.locationdatalci.latitude", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_34", HFILL }}, + { &hf_ilp_longitudeResolution, + { "longitudeResolution", "ilp.longitudeResolution", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_6", HFILL }}, + { &hf_ilp_LocationDataLCI_longitude, + { "longitude", "ilp.longitude", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_34", HFILL }}, + { &hf_ilp_altitudeType, + { "altitudeType", "ilp.altitudeType", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_4", HFILL }}, + { &hf_ilp_altitudeResolution, + { "altitudeResolution", "ilp.altitudeResolution", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_6", HFILL }}, + { &hf_ilp_LocationDataLCI_altitude, + { "altitude", "ilp.locationdatalci.altitude", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_30", HFILL }}, + { &hf_ilp_datum, + { "datum", "ilp.datum", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_8", HFILL }}, + { &hf_ilp_wimaxBsID, + { "wimaxBsID", "ilp.wimaxBsID_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_wimaxRTD, + { "wimaxRTD", "ilp.wimaxRTD_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_wimaxNMRList, + { "wimaxNMRList", "ilp.wimaxNMRList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_bsID_MSB, + { "bsID-MSB", "ilp.bsID_MSB", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_24", HFILL }}, + { &hf_ilp_bsID_LSB, + { "bsID-LSB", "ilp.bsID_LSB", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_24", HFILL }}, + { &hf_ilp_rtd, + { "rtd", "ilp.rtd", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_65535", HFILL }}, + { &hf_ilp_rTDstd, + { "rTDstd", "ilp.rTDstd", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1023", HFILL }}, + { &hf_ilp_WimaxNMRList_item, + { "WimaxNMR", "ilp.WimaxNMR_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_relDelay, + { "relDelay", "ilp.relDelay", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M32768_32767", HFILL }}, + { &hf_ilp_relDelaystd, + { "relDelaystd", "ilp.relDelaystd", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1023", HFILL }}, + { &hf_ilp_rssi, + { "rssi", "ilp.rssi", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_255", HFILL }}, + { &hf_ilp_rSSIstd, + { "rSSIstd", "ilp.rSSIstd", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_63", HFILL }}, + { &hf_ilp_bSTxPower, + { "bSTxPower", "ilp.bSTxPower", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_255", HFILL }}, + { &hf_ilp_cinr, + { "cinr", "ilp.cinr", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_255", HFILL }}, + { &hf_ilp_cINRstd, + { "cINRstd", "ilp.cINRstd", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_63", HFILL }}, + { &hf_ilp_bSLocation, + { "bSLocation", "ilp.bSLocation_element", + FT_NONE, BASE_NONE, NULL, 0, + "ReportedLocation", HFILL }}, + { &hf_ilp_servingCellInformation, + { "servingCellInformation", "ilp.servingCellInformation", + FT_UINT32, BASE_DEC, NULL, 0, + "ServingCellInformationNR", HFILL }}, + { &hf_ilp_measuredResultsListNR, + { "measuredResultsListNR", "ilp.measuredResultsListNR", + FT_UINT32, BASE_DEC, NULL, 0, + "MeasResultListNR", HFILL }}, + { &hf_ilp_ServingCellInformationNR_item, + { "ServCellNR", "ilp.ServCellNR_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_physCellId_01, + { "physCellId", "ilp.physCellId", + FT_UINT32, BASE_DEC, NULL, 0, + "PhysCellIdNR", HFILL }}, + { &hf_ilp_arfcn_NR, + { "arfcn-NR", "ilp.arfcn_NR", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_cellGlobalId_01, + { "cellGlobalId", "ilp.cellGlobalId_element", + FT_NONE, BASE_NONE, NULL, 0, + "CellGlobalIdNR", HFILL }}, + { &hf_ilp_ssb_Measurements, + { "ssb-Measurements", "ilp.ssb_Measurements_element", + FT_NONE, BASE_NONE, NULL, 0, + "NR_Measurements", HFILL }}, + { &hf_ilp_csi_rs_Measurements, + { "csi-rs-Measurements", "ilp.csi_rs_Measurements_element", + FT_NONE, BASE_NONE, NULL, 0, + "NR_Measurements", HFILL }}, + { &hf_ilp_ta_03, + { "ta", "ilp.ta", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_3846", HFILL }}, + { &hf_ilp_MeasResultListNR_item, + { "MeasResultNR", "ilp.MeasResultNR_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_cellIdentityNR, + { "cellIdentityNR", "ilp.cellIdentityNR", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_rsrp_Range, + { "rsrp-Range", "ilp.rsrp_Range", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_127", HFILL }}, + { &hf_ilp_rsrq_Range, + { "rsrq-Range", "ilp.rsrq_Range", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_127", HFILL }}, + { &hf_ilp_sinr_Range, + { "sinr-Range", "ilp.sinr_Range", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_127", HFILL }}, + { &hf_ilp_modeSpecificFrequencyInfo, + { "modeSpecificInfo", "ilp.modeSpecificInfo", + FT_UINT32, BASE_DEC, VALS(ilp_FrequencySpecificInfo_vals), 0, + "FrequencySpecificInfo", HFILL }}, + { &hf_ilp_fdd_fr, + { "fdd", "ilp.fdd_element", + FT_NONE, BASE_NONE, NULL, 0, + "FrequencyInfoFDD", HFILL }}, + { &hf_ilp_tdd_fr, + { "tdd", "ilp.tdd_element", + FT_NONE, BASE_NONE, NULL, 0, + "FrequencyInfoTDD", HFILL }}, + { &hf_ilp_uarfcn_UL, + { "uarfcn-UL", "ilp.uarfcn_UL", + FT_UINT32, BASE_DEC, NULL, 0, + "UARFCN", HFILL }}, + { &hf_ilp_uarfcn_DL, + { "uarfcn-DL", "ilp.uarfcn_DL", + FT_UINT32, BASE_DEC, NULL, 0, + "UARFCN", HFILL }}, + { &hf_ilp_uarfcn_Nt, + { "uarfcn-Nt", "ilp.uarfcn_Nt", + FT_UINT32, BASE_DEC, NULL, 0, + "UARFCN", HFILL }}, + { &hf_ilp_NMR_item, + { "NMRelement", "ilp.NMRelement_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_arfcn, + { "arfcn", "ilp.arfcn", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1023", HFILL }}, + { &hf_ilp_bsic, + { "bsic", "ilp.bsic", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_63", HFILL }}, + { &hf_ilp_rxLev, + { "rxLev", "ilp.rxLev", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_63", HFILL }}, + { &hf_ilp_MeasuredResultsList_item, + { "MeasuredResults", "ilp.MeasuredResults_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_utra_CarrierRSSI, + { "utra-CarrierRSSI", "ilp.utra_CarrierRSSI", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_cellMeasuredResultsList, + { "cellMeasuredResultsList", "ilp.cellMeasuredResultsList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_CellMeasuredResultsList_item, + { "CellMeasuredResults", "ilp.CellMeasuredResults_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_cellIdentity, + { "cellIdentity", "ilp.cellIdentity", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_268435455", HFILL }}, + { &hf_ilp_modeSpecificInfo_02, + { "modeSpecificInfo", "ilp.modeSpecificInfo", + FT_UINT32, BASE_DEC, VALS(ilp_T_modeSpecificInfo_02_vals), 0, + "T_modeSpecificInfo_02", HFILL }}, + { &hf_ilp_fdd_02, + { "fdd", "ilp.fdd_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_fdd_02", HFILL }}, + { &hf_ilp_primaryCPICH_Info, + { "primaryCPICH-Info", "ilp.primaryCPICH_Info_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_cpich_Ec_N0, + { "cpich-Ec-N0", "ilp.cpich_Ec_N0", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_cpich_RSCP, + { "cpich-RSCP", "ilp.cpich_RSCP", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_pathloss, + { "pathloss", "ilp.pathloss", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_tdd_02, + { "tdd", "ilp.tdd_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_tdd_02", HFILL }}, + { &hf_ilp_cellParametersID, + { "cellParametersID", "ilp.cellParametersID", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_proposedTGSN, + { "proposedTGSN", "ilp.proposedTGSN", + FT_UINT32, BASE_DEC, NULL, 0, + "TGSN", HFILL }}, + { &hf_ilp_primaryCCPCH_RSCP, + { "primaryCCPCH-RSCP", "ilp.primaryCCPCH_RSCP", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_timeslotISCP_List, + { "timeslotISCP-List", "ilp.timeslotISCP_List", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_TimeslotISCP_List_item, + { "TimeslotISCP", "ilp.TimeslotISCP", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_utran_GPSReferenceTime, + { "utran-GPSReferenceTime", "ilp.utran_GPSReferenceTime_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_utranGPSDriftRate, + { "utranGPSDriftRate", "ilp.utranGPSDriftRate", + FT_UINT32, BASE_DEC, VALS(ilp_UTRANGPSDriftRate_vals), 0, + NULL, HFILL }}, + { &hf_ilp_utran_GPSTimingOfCell, + { "utran-GPSTimingOfCell", "ilp.utran_GPSTimingOfCell_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_ms_part_02, + { "ms-part", "ilp.ms_part", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1023", HFILL }}, + { &hf_ilp_modeSpecificInfo_03, + { "modeSpecificInfo", "ilp.modeSpecificInfo", + FT_UINT32, BASE_DEC, VALS(ilp_T_modeSpecificInfo_03_vals), 0, + "T_modeSpecificInfo_03", HFILL }}, + { &hf_ilp_fdd_03, + { "fdd", "ilp.fdd_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_fdd_03", HFILL }}, + { &hf_ilp_tdd_03, + { "tdd", "ilp.tdd_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_tdd_03", HFILL }}, + { &hf_ilp_utran_GANSSReferenceTime, + { "utran-GANSSReferenceTime", "ilp.utran_GANSSReferenceTime_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_ganssDay, + { "ganssDay", "ilp.ganssDay", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_8191", HFILL }}, + { &hf_ilp_utranGANSSDriftRate, + { "utranGANSSDriftRate", "ilp.utranGANSSDriftRate", + FT_UINT32, BASE_DEC, VALS(ilp_UTRANGANSSDriftRate_vals), 0, + NULL, HFILL }}, + { &hf_ilp_ganssTOD, + { "ganssTOD", "ilp.ganssTOD", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_86399", HFILL }}, + { &hf_ilp_utran_GANSSTimingOfCell, + { "utran-GANSSTimingOfCell", "ilp.utran_GANSSTimingOfCell", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_3999999", HFILL }}, + { &hf_ilp_modeSpecificInfo_04, + { "modeSpecificInfo", "ilp.modeSpecificInfo", + FT_UINT32, BASE_DEC, VALS(ilp_T_modeSpecificInfo_04_vals), 0, + "T_modeSpecificInfo_04", HFILL }}, + { &hf_ilp_fdd_04, + { "fdd", "ilp.fdd_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_fdd_04", HFILL }}, + { &hf_ilp_tdd_04, + { "tdd", "ilp.tdd_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_tdd_04", HFILL }}, + { &hf_ilp_horacc, + { "horacc", "ilp.horacc", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_127", HFILL }}, + { &hf_ilp_veracc, + { "veracc", "ilp.veracc", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_127", HFILL }}, + { &hf_ilp_maxLocAge, + { "maxLocAge", "ilp.maxLocAge", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_65535", HFILL }}, + { &hf_ilp_delay, + { "delay", "ilp.delay", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_7", HFILL }}, + { &hf_ilp_ver2_responseTime, + { "ver2-responseTime", "ilp.ver2_responseTime", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_128", HFILL }}, + { &hf_ilp_horvel, + { "horvel", "ilp.horvel_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_horandvervel, + { "horandvervel", "ilp.horandvervel_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_horveluncert, + { "horveluncert", "ilp.horveluncert_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_horandveruncert, + { "horandveruncert", "ilp.horandveruncert_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_bearing, + { "bearing", "ilp.bearing", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_9", HFILL }}, + { &hf_ilp_horspeed, + { "horspeed", "ilp.horspeed", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_16", HFILL }}, + { &hf_ilp_verdirect, + { "verdirect", "ilp.verdirect", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_1", HFILL }}, + { &hf_ilp_verspeed, + { "verspeed", "ilp.verspeed", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_8", HFILL }}, + { &hf_ilp_uncertspeed, + { "uncertspeed", "ilp.uncertspeed", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_8", HFILL }}, + { &hf_ilp_horuncertspeed, + { "horuncertspeed", "ilp.horuncertspeed", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_8", HFILL }}, + { &hf_ilp_veruncertspeed, + { "veruncertspeed", "ilp.veruncertspeed", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_8", HFILL }}, + { &hf_ilp_rand, + { "rand", "ilp.rand", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_128", HFILL }}, + { &hf_ilp_slpFQDN, + { "slpFQDN", "ilp.slpFQDN", + FT_STRING, BASE_NONE, NULL, 0, + "FQDN", HFILL }}, + { &hf_ilp_rrcPayload, + { "rrcPayload", "ilp.rrcPayload", + FT_BYTES, BASE_NONE, NULL, 0, + "OCTET_STRING_SIZE_1_8192", HFILL }}, + { &hf_ilp_rrlpPayload, + { "rrlpPayload", "ilp.rrlpPayload", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_multiPosPayload, + { "multiPosPayload", "ilp.multiPosPayload_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_lPPPayload, + { "lPPPayload", "ilp.lPPPayload", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_lPPPayload_item, + { "lPPPayload item", "ilp.lPPPayload_item", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_tia801Payload, + { "tia801Payload", "ilp.tia801Payload", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ilp_tia801Payload_item, + { "tia801Payload item", "ilp.tia801Payload_item", + FT_BYTES, BASE_NONE, NULL, 0, + "OCTET_STRING_SIZE_1_60000", HFILL }}, + { &hf_ilp_GANSSSignals_signal1, + { "signal1", "ilp.GANSSSignals.signal1", + FT_BOOLEAN, 8, NULL, 0x80, + NULL, HFILL }}, + { &hf_ilp_GANSSSignals_signal2, + { "signal2", "ilp.GANSSSignals.signal2", + FT_BOOLEAN, 8, NULL, 0x40, + NULL, HFILL }}, + { &hf_ilp_GANSSSignals_signal3, + { "signal3", "ilp.GANSSSignals.signal3", + FT_BOOLEAN, 8, NULL, 0x20, + NULL, HFILL }}, + { &hf_ilp_GANSSSignals_signal4, + { "signal4", "ilp.GANSSSignals.signal4", + FT_BOOLEAN, 8, NULL, 0x10, + NULL, HFILL }}, + { &hf_ilp_GANSSSignals_signal5, + { "signal5", "ilp.GANSSSignals.signal5", + FT_BOOLEAN, 8, NULL, 0x08, + NULL, HFILL }}, + { &hf_ilp_GANSSSignals_signal6, + { "signal6", "ilp.GANSSSignals.signal6", + FT_BOOLEAN, 8, NULL, 0x04, + NULL, HFILL }}, + { &hf_ilp_GANSSSignals_signal7, + { "signal7", "ilp.GANSSSignals.signal7", + FT_BOOLEAN, 8, NULL, 0x02, + NULL, HFILL }}, + { &hf_ilp_GANSSSignals_signal8, + { "signal8", "ilp.GANSSSignals.signal8", + FT_BOOLEAN, 8, NULL, 0x01, + NULL, HFILL }}, + { &hf_ilp_T_addPosMode_standalone, + { "standalone", "ilp.T.addPosMode.standalone", + FT_BOOLEAN, 8, NULL, 0x80, + NULL, HFILL }}, + { &hf_ilp_T_addPosMode_setBased, + { "setBased", "ilp.T.addPosMode.setBased", + FT_BOOLEAN, 8, NULL, 0x40, + NULL, HFILL }}, + { &hf_ilp_T_addPosMode_setAssisted, + { "setAssisted", "ilp.T.addPosMode.setAssisted", + FT_BOOLEAN, 8, NULL, 0x20, + NULL, HFILL }}, + { &hf_ilp_mobile_directory_number, + { "Mobile Directory Number", "ilp.mobile_directory_number", + FT_STRING, BASE_NONE, NULL, 0, + NULL, HFILL }}, + }; + + /* List of subtrees */ + static gint *ett[] = { + &ett_ilp, + &ett_ilp_setid, + &ett_ilp_ILP_PDU, + &ett_ilp_IlpMessage, + &ett_ilp_PREQ, + &ett_ilp_TriggerParams, + &ett_ilp_PeriodicTriggerParams, + &ett_ilp_PRES, + &ett_ilp_PRPT, + &ett_ilp_PLREQ, + &ett_ilp_PLRES, + &ett_ilp_PositionResults, + &ett_ilp_PositionResult, + &ett_ilp_PINIT, + &ett_ilp_RequestedAssistData, + &ett_ilp_ExtendedEphemeris, + &ett_ilp_ExtendedEphCheck, + &ett_ilp_GPSTime, + &ett_ilp_GanssRequestedCommonAssistanceDataList, + &ett_ilp_GanssRequestedGenericAssistanceDataList, + &ett_ilp_GanssReqGenericData, + &ett_ilp_GanssNavigationModelData, + &ett_ilp_SatellitesListRelatedDataList, + &ett_ilp_SatellitesListRelatedData, + &ett_ilp_GanssDataBits, + &ett_ilp_ReqDataBitAssistanceList, + &ett_ilp_T_ganssDataBitSatList, + &ett_ilp_GanssAdditionalDataChoices, + &ett_ilp_GanssExtendedEphCheck, + &ett_ilp_GANSSextEphTime, + &ett_ilp_NavigationModel, + &ett_ilp_SatelliteInfo, + &ett_ilp_SatelliteInfoElement, + &ett_ilp_PAUTH, + &ett_ilp_PALIVE, + &ett_ilp_PEND, + &ett_ilp_PMESS, + &ett_ilp_Version, + &ett_ilp_SessionID2, + &ett_ilp_SetSessionID, + &ett_ilp_SETId, + &ett_ilp_SlcSessionID, + &ett_ilp_SpcSessionID, + &ett_ilp_IPAddress, + &ett_ilp_NodeAddress, + &ett_ilp_LocationId, + &ett_ilp_MultipleLocationIds, + &ett_ilp_LocationIdData, + &ett_ilp_SETCapabilities, + &ett_ilp_PosTechnology, + &ett_ilp_GANSSPositionMethods, + &ett_ilp_GANSSPositionMethod, + &ett_ilp_GANSSPositioningMethodTypes, + &ett_ilp_GANSSSignals, + &ett_ilp_AdditionalPositioningMethods, + &ett_ilp_AddPosSupport_Element, + &ett_ilp_T_addPosMode, + &ett_ilp_PosProtocol, + &ett_ilp_PosProtocolVersion3GPP, + &ett_ilp_PosProtocolVersion3GPP2, + &ett_ilp_Supported3GPP2PosProtocolVersion, + &ett_ilp_PosProtocolVersionOMA, + &ett_ilp_SupportedBearers, + &ett_ilp_CellInfo, + &ett_ilp_UTRAN_GPSReferenceTimeResult, + &ett_ilp_T_set_GPSTimingOfCell, + &ett_ilp_T_modeSpecificInfo, + &ett_ilp_T_fdd, + &ett_ilp_T_tdd, + &ett_ilp_UTRAN_GANSSReferenceTimeResult, + &ett_ilp_SET_GANSSReferenceTime, + &ett_ilp_T_set_GANSSTimingOfCell, + &ett_ilp_T_modeSpecificInfo_01, + &ett_ilp_T_fdd_01, + &ett_ilp_T_tdd_01, + &ett_ilp_GNSSPosTechnology, + &ett_ilp_Position, + &ett_ilp_PositionEstimate, + &ett_ilp_T_uncertainty, + &ett_ilp_AltitudeInfo, + &ett_ilp_CdmaCellInformation, + &ett_ilp_GsmCellInformation, + &ett_ilp_WcdmaCellInformation, + &ett_ilp_TimingAdvance, + &ett_ilp_HrpdCellInformation, + &ett_ilp_UmbCellInformation, + &ett_ilp_LteCellInformation, + &ett_ilp_MeasResultListEUTRA, + &ett_ilp_MeasResultEUTRA, + &ett_ilp_T_cgi_Info, + &ett_ilp_T_measResult, + &ett_ilp_CellGlobalIdEUTRA, + &ett_ilp_PLMN_Identity, + &ett_ilp_MCC, + &ett_ilp_MNC, + &ett_ilp_ServingInformation5G, + &ett_ilp_NeighbourInformation5G, + &ett_ilp_WlanAPInformation, + &ett_ilp_RTD, + &ett_ilp_ReportedLocation, + &ett_ilp_LocationData, + &ett_ilp_RepLocation, + &ett_ilp_LciLocData, + &ett_ilp_LocationDataLCI, + &ett_ilp_WimaxBSInformation, + &ett_ilp_WimaxBsID, + &ett_ilp_WimaxRTD, + &ett_ilp_WimaxNMRList, + &ett_ilp_WimaxNMR, + &ett_ilp_NRCellInformation, + &ett_ilp_ServingCellInformationNR, + &ett_ilp_ServCellNR, + &ett_ilp_MeasResultListNR, + &ett_ilp_MeasResultNR, + &ett_ilp_CellGlobalIdNR, + &ett_ilp_NR_Measurements, + &ett_ilp_FrequencyInfo, + &ett_ilp_FrequencySpecificInfo, + &ett_ilp_FrequencyInfoFDD, + &ett_ilp_FrequencyInfoTDD, + &ett_ilp_NMR, + &ett_ilp_NMRelement, + &ett_ilp_MeasuredResultsList, + &ett_ilp_MeasuredResults, + &ett_ilp_CellMeasuredResultsList, + &ett_ilp_CellMeasuredResults, + &ett_ilp_T_modeSpecificInfo_02, + &ett_ilp_T_fdd_02, + &ett_ilp_T_tdd_02, + &ett_ilp_TimeslotISCP_List, + &ett_ilp_PrimaryCPICH_Info, + &ett_ilp_UTRAN_GPSReferenceTimeAssistance, + &ett_ilp_UTRAN_GPSReferenceTime, + &ett_ilp_T_utran_GPSTimingOfCell, + &ett_ilp_T_modeSpecificInfo_03, + &ett_ilp_T_fdd_03, + &ett_ilp_T_tdd_03, + &ett_ilp_UTRAN_GANSSReferenceTimeAssistance, + &ett_ilp_UTRAN_GANSSReferenceTime, + &ett_ilp_T_modeSpecificInfo_04, + &ett_ilp_T_fdd_04, + &ett_ilp_T_tdd_04, + &ett_ilp_QoP, + &ett_ilp_Velocity, + &ett_ilp_Horvel, + &ett_ilp_Horandvervel, + &ett_ilp_Horveluncert, + &ett_ilp_Horandveruncert, + &ett_ilp_SPCTID, + &ett_ilp_PosPayLoad, + &ett_ilp_MultiPosPayLoad, + &ett_ilp_T_lPPPayload, + &ett_ilp_T_tia801Payload, + }; + + module_t *ilp_module; + + + /* Register protocol */ + proto_ilp = proto_register_protocol(PNAME, PSNAME, PFNAME); + ilp_tcp_handle = register_dissector("ilp", dissect_ilp_tcp, proto_ilp); + + /* Register fields and subtrees */ + proto_register_field_array(proto_ilp, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); + + ilp_module = prefs_register_protocol(proto_ilp, NULL); + + prefs_register_bool_preference(ilp_module, "desegment_ilp_messages", + "Reassemble ILP messages spanning multiple TCP segments", + "Whether the ILP dissector should reassemble messages spanning multiple TCP segments." + " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.", + &ilp_desegment); +} + + +/*--- proto_reg_handoff_ilp ---------------------------------------*/ +void +proto_reg_handoff_ilp(void) +{ + dissector_handle_t ilp_pdu_handle; + + ilp_pdu_handle = create_dissector_handle(dissect_ILP_PDU_PDU, proto_ilp); + rrlp_handle = find_dissector_add_dependency("rrlp", proto_ilp); + lpp_handle = find_dissector_add_dependency("lpp", proto_ilp); + + dissector_add_string("media_type","application/oma-supl-ilp", ilp_pdu_handle); + dissector_add_uint_with_preference("tcp.port", ILP_TCP_PORT, ilp_tcp_handle); +} |