aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/rrlp
diff options
context:
space:
mode:
authorJoão Valverde <joao.valverde@tecnico.ulisboa.pt>2016-03-09 03:17:51 +0000
committerJoão Valverde <j@v6e.pt>2016-03-13 21:30:24 +0000
commit54a520d4a1151c68d0b4e5f09a8d82466fa499f3 (patch)
tree7aacae160382098ce651ac862a5dfd5de4beff94 /epan/dissectors/asn1/rrlp
parentc1f3c935bdd33090c87f0d2f84842ce9729b747a (diff)
Move /asn1 to /epan/dissectors
Change-Id: I1208fe3c2ba428995526f561e8f792b8d871e9a9 Reviewed-on: https://code.wireshark.org/review/14388 Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com> Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Reviewed-by: João Valverde <j@v6e.pt>
Diffstat (limited to 'epan/dissectors/asn1/rrlp')
-rw-r--r--epan/dissectors/asn1/rrlp/CMakeLists.txt50
-rw-r--r--epan/dissectors/asn1/rrlp/Makefile.am23
-rw-r--r--epan/dissectors/asn1/rrlp/Makefile.common43
-rw-r--r--epan/dissectors/asn1/rrlp/Makefile.nmake26
-rw-r--r--epan/dissectors/asn1/rrlp/RRLP-Components.asn2413
-rw-r--r--epan/dissectors/asn1/rrlp/RRLP-Messages.asn39
-rw-r--r--epan/dissectors/asn1/rrlp/packet-rrlp-template.c102
-rw-r--r--epan/dissectors/asn1/rrlp/rrlp.cnf40
8 files changed, 2736 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/rrlp/CMakeLists.txt b/epan/dissectors/asn1/rrlp/CMakeLists.txt
new file mode 100644
index 0000000000..f7f27a69a8
--- /dev/null
+++ b/epan/dissectors/asn1/rrlp/CMakeLists.txt
@@ -0,0 +1,50 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+set( PROTOCOL_NAME rrlp )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+ ../gsm_map/MAP-ExtensionDataTypes.asn
+ ../gsm_map/MAP-LCS-DataTypes.asn
+)
+
+set( ASN_FILE_LIST
+ RRLP-Messages.asn
+ RRLP-Components.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
+
diff --git a/epan/dissectors/asn1/rrlp/Makefile.am b/epan/dissectors/asn1/rrlp/Makefile.am
new file mode 100644
index 0000000000..72d28e600b
--- /dev/null
+++ b/epan/dissectors/asn1/rrlp/Makefile.am
@@ -0,0 +1,23 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/epan/dissectors/asn1/rrlp/Makefile.common b/epan/dissectors/asn1/rrlp/Makefile.common
new file mode 100644
index 0000000000..a54282c285
--- /dev/null
+++ b/epan/dissectors/asn1/rrlp/Makefile.common
@@ -0,0 +1,43 @@
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+PROTOCOL_NAME = rrlp
+
+EXT_ASN_FILE_LIST = \
+ ../gsm_map/MAP-ExtensionDataTypes.asn \
+ ../gsm_map/MAP-LCS-DataTypes.asn
+
+ASN_FILE_LIST = \
+ RRLP-Messages.asn \
+ RRLP-Components.asn
+
+EXTRA_DIST = \
+ $(EXTRA_DIST_COMMON) \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXTRA_DIST) \
+ $(EXT_ASN_FILE_LIST)
+
+A2W_FLAGS =
+
+EXTRA_CNF =
+
diff --git a/epan/dissectors/asn1/rrlp/Makefile.nmake b/epan/dissectors/asn1/rrlp/Makefile.nmake
new file mode 100644
index 0000000000..d296638ddd
--- /dev/null
+++ b/epan/dissectors/asn1/rrlp/Makefile.nmake
@@ -0,0 +1,26 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+include ../../../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/epan/dissectors/asn1/rrlp/RRLP-Components.asn b/epan/dissectors/asn1/rrlp/RRLP-Components.asn
new file mode 100644
index 0000000000..11b13eeea6
--- /dev/null
+++ b/epan/dissectors/asn1/rrlp/RRLP-Components.asn
@@ -0,0 +1,2413 @@
+-- RRLP-Components.asn
+-- Taken from 3GPP TS 44.031 V11.0.0 (2012-09)
+-- http://www.3gpp.org/ftp/Specs/archive/44_series/44.031/44031-b00.zip/44031-b00.doc
+--
+-- 4 Components
+-- 5 Elements of Components
+--
+
+RRLP-Components
+-- { RRLP-Components }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ Ext-GeographicalInformation, VelocityEstimate
+FROM
+ MAP-LCS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-LCS-DataTypes (25) version10 (10)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version10 (10)}
+;
+
+-- Measurement Position request component
+MsrPosition-Req ::= SEQUENCE {
+ positionInstruct PositionInstruct,
+ referenceAssistData ReferenceAssistData OPTIONAL,
+ msrAssistData MsrAssistData OPTIONAL,
+ systemInfoAssistData SystemInfoAssistData OPTIONAL,
+ gps-AssistData GPS-AssistData OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ -- Release 98 extension element
+rel98-MsrPosition-Req-extension Rel98-MsrPosition-Req-Extension OPTIONAL,
+ -- Release 5 extension element
+rel5-MsrPosition-Req-extension Rel5-MsrPosition-Req-Extension OPTIONAL,
+ -- Release 7 extension element
+rel7-MsrPosition-Req-extension Rel7-MsrPosition-Req-Extension OPTIONAL
+}
+
+-- Measurement Position response component
+MsrPosition-Rsp ::= SEQUENCE {
+ multipleSets MultipleSets OPTIONAL,
+ referenceIdentity ReferenceIdentity OPTIONAL,
+ otd-MeasureInfo OTD-MeasureInfo OPTIONAL,
+ locationInfo LocationInfo OPTIONAL,
+ gps-MeasureInfo GPS-MeasureInfo OPTIONAL,
+ locationError LocationError OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ -- Release extension here
+ rel-98-MsrPosition-Rsp-Extension
+ Rel-98-MsrPosition-Rsp-Extension OPTIONAL,
+ rel-5-MsrPosition-Rsp-Extension
+ Rel-5-MsrPosition-Rsp-Extension OPTIONAL,
+ -- When RRLP pseudo-segmentation is used, rel-5-MsrPosition-Rsp-Extension
+ -- and other possible future extensions should be the ones included in
+ -- the 2nd MsrPosition-Rsp component.
+ rel-7-MsrPosition-Rsp-Extension
+ Rel-7-MsrPosition-Rsp-Extension OPTIONAL
+}
+
+-- Assistance Data component
+AssistanceData ::= SEQUENCE {
+ referenceAssistData ReferenceAssistData OPTIONAL,
+ msrAssistData MsrAssistData OPTIONAL,
+ systemInfoAssistData SystemInfoAssistData OPTIONAL,
+ gps-AssistData GPS-AssistData OPTIONAL,
+ moreAssDataToBeSent MoreAssDataToBeSent OPTIONAL, -- If not present, interpret as only
+ -- Assistance Data component used to
+ -- deliver entire set of assistance
+ -- data.
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ -- Release extension here
+ rel98-AssistanceData-Extension Rel98-AssistanceData-Extension OPTIONAL,
+ rel5-AssistanceData-Extension Rel5-AssistanceData-Extension OPTIONAL,
+ rel7-AssistanceData-Extension Rel7-AssistanceData-Extension OPTIONAL
+}
+
+-- Protocol Error component
+ProtocolError ::= SEQUENCE {
+ errorCause ErrorCodes,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ -- Release extensions here
+ rel-5-ProtocolError-Extension Rel-5-ProtocolError-Extension OPTIONAL
+}
+
+-- Positioning Capability request component
+PosCapability-Req ::= SEQUENCE {
+ extended-reference Extended-reference,
+ gANSSPositionMethods GANSSPositionMethods OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...
+}
+
+-- Positioning Capability response component
+PosCapability-Rsp ::= SEQUENCE {
+ extended-reference Extended-reference,
+ posCapabilities PosCapabilities,
+
+-- assistanceSupported shall be included if and only if any of the assistance data is supported
+ assistanceSupported AssistanceSupported OPTIONAL,
+ assistanceNeeded AssistanceNeeded OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...
+}
+
+-- Position instructions
+PositionInstruct ::= SEQUENCE {
+ -- Method type
+ methodType MethodType,
+ positionMethod PositionMethod,
+ measureResponseTime MeasureResponseTime,
+ useMultipleSets UseMultipleSets,
+ environmentCharacter EnvironmentCharacter OPTIONAL
+}
+
+--
+MethodType ::= CHOICE {
+ msAssisted AccuracyOpt, -- accuracy is optional
+ msBased Accuracy, -- accuracy is mandatory
+ msBasedPref Accuracy, -- accuracy is mandatory
+ msAssistedPref Accuracy -- accuracy is mandatory
+}
+
+-- Accuracy of the location estimation
+AccuracyOpt ::= SEQUENCE {
+ accuracy Accuracy OPTIONAL
+}
+
+-- The values of this field are defined in 3GPP TS 23.032 (Uncertainty code)
+Accuracy ::= INTEGER (0..127)
+
+-- Position Method
+PositionMethod ::= ENUMERATED {
+ eotd (0),
+ gps (1),
+ gpsOrEOTD (2)
+}
+
+-- Measurement request response time
+MeasureResponseTime ::= INTEGER (0..7)
+
+-- useMultiple Sets, FFS!
+UseMultipleSets ::= ENUMERATED {
+ multipleSets (0), -- multiple sets are allowed
+ oneSet (1) -- sending of multiple is not allowed
+}
+
+-- Environment characterization
+EnvironmentCharacter ::= ENUMERATED {
+ badArea (0), -- bad urban or suburban, heavy multipath and NLOS
+ notBadArea (1), -- light multipath and NLOS
+ mixedArea (2), -- not defined or mixed environment
+ ...
+}
+
+-- E-OTD reference BTS for Assitance data IE
+ReferenceAssistData ::= SEQUENCE {
+ bcchCarrier BCCHCarrier, -- BCCH carrier
+ bsic BSIC, -- BSIC
+ timeSlotScheme TimeSlotScheme, -- Timeslot scheme
+ btsPosition BTSPosition OPTIONAL
+}
+
+-- ellipsoid point and
+-- ellipsoid point with altitude and uncertainty ellipsoid shapes are supported
+BTSPosition ::= Ext-GeographicalInformation
+
+-- RF channel number of BCCH
+BCCHCarrier ::= INTEGER (0..1023)
+
+-- Base station Identity Code
+BSIC ::= INTEGER (0..63)
+
+-- Timeslot scheme
+TimeSlotScheme ::= ENUMERATED {
+ equalLength (0),
+ variousLength (1)
+}
+
+-- Time slot (modulo)
+ModuloTimeSlot ::= INTEGER (0..3)
+
+-- E-OTD measurement assistance data IE
+-- The total number of neighbors in this element (MsrAssistData)
+-- and in SystemInfoAssistData element (presented neighbors
+-- can be at a maximum 15!)
+MsrAssistData ::= SEQUENCE {
+ msrAssistList SeqOfMsrAssistBTS
+}
+SeqOfMsrAssistBTS ::= SEQUENCE (SIZE(1..15)) OF MsrAssistBTS
+
+MsrAssistBTS ::= SEQUENCE {
+ bcchCarrier BCCHCarrier, -- BCCH carrier
+ bsic BSIC, -- BSIC
+ multiFrameOffset MultiFrameOffset, -- multiframe offset
+ timeSlotScheme TimeSlotScheme, -- Timeslot scheme
+ roughRTD RoughRTD, -- rough RTD value
+
+ -- Location Calculation Assistance data is moved here
+ calcAssistanceBTS CalcAssistanceBTS OPTIONAL
+}
+
+-- Multiframe offset
+MultiFrameOffset ::= INTEGER (0..51)
+-- The Multiframe Offset value 51 shall not be encoded by the transmitting entity and
+-- shall be treated by the receiving entity as 0.
+
+-- Rough RTD value between one base station and reference BTS
+RoughRTD ::= INTEGER (0..1250)
+-- The RoughRTD value 1250 shall not be encoded by the transmitting entity and shall
+-- be treated by the receiving entity as 0.
+
+-- E-OTD Measurement assistance data for system information List IE
+-- The total number of base stations in this element (SystemInfoAssistData
+-- presented neighbors) and in MsrAssistData element can be at a maximum 15.
+SystemInfoAssistData ::= SEQUENCE {
+ systemInfoAssistList SeqOfSystemInfoAssistBTS
+}
+SeqOfSystemInfoAssistBTS::= SEQUENCE (SIZE(1..32)) OF SystemInfoAssistBTS
+
+-- whether n.th is present or not ?
+SystemInfoAssistBTS ::= CHOICE {
+ notPresent NULL,
+ present AssistBTSData
+}
+
+-- Actual assistance data for system information base station
+AssistBTSData ::= SEQUENCE {
+ bsic BSIC, -- BSIC
+ multiFrameOffset MultiFrameOffset, -- multiframe offset
+ timeSlotScheme TimeSlotScheme, -- Timeslot scheme
+ roughRTD RoughRTD, -- rough RTD value
+
+ -- Location Calculation Assistance data
+ calcAssistanceBTS CalcAssistanceBTS OPTIONAL
+}
+
+-- E-OTD Location calculation assistance data,
+-- CalcAssistanceBTS element is optional not subfields
+CalcAssistanceBTS ::= SEQUENCE {
+ fineRTD FineRTD, -- fine RTD value between base stations
+ referenceWGS84 ReferenceWGS84 -- reference coordinates
+}
+
+-- Coordinates of neighbour BTS, WGS-84 ellipsoid
+ReferenceWGS84 ::= SEQUENCE {
+ relativeNorth RelDistance, -- relative distance (south negative)
+ relativeEast RelDistance, -- relative distance (west negative)
+ -- Relative Altitude is not always known
+ relativeAlt RelativeAlt OPTIONAL -- relative altitude
+}
+
+-- Fine RTD value between this BTS and the reference BTS
+FineRTD ::= INTEGER (0..255)
+
+-- Relative north/east distance
+RelDistance ::= INTEGER (-200000..200000)
+
+-- Relative altitude
+RelativeAlt ::= INTEGER (-4000..4000)
+
+-- Measure position response IEs
+-- Reference Identity
+-- Multiple sets
+MultipleSets ::= SEQUENCE {
+ -- number of reference sets
+ nbrOfSets INTEGER (2..3),
+
+ -- This field actually tells the number of reference BTSs
+ nbrOfReferenceBTSs INTEGER (1..3),
+
+ -- This field is conditional and included optionally only if
+ -- nbrOfSets is 3 and number of reference BTSs is 2.
+ referenceRelation ReferenceRelation OPTIONAL
+}
+
+-- Relation between refence BTSs and sets
+ReferenceRelation ::= ENUMERATED {
+ secondBTSThirdSet (0), -- 1st BTS related to 1st and 2nd sets
+ secondBTSSecondSet (1), -- 1st BTS related to 1st and 3rd sets
+ firstBTSFirstSet (2) -- 1st BTS related to 1st set
+}
+
+-- Reference BTS Identity, this element contains number of
+-- BTSs told nbrOfReferenceBTSs field in Multiple sets element)
+ReferenceIdentity ::= SEQUENCE {
+ -- Reference BTS list
+ refBTSList SeqOfReferenceIdentityType
+}
+SeqOfReferenceIdentityType ::= SEQUENCE (SIZE(1..3)) OF ReferenceIdentityType
+
+-- Cell identity
+ReferenceIdentityType ::= CHOICE {
+ bsicAndCarrier BSICAndCarrier, -- BSIC and Carrier
+ ci CellID, -- Cell ID, LAC not needed
+ requestIndex RequestIndex, -- Index to Requested Neighbor List
+ systemInfoIndex SystemInfoIndex, -- Index to System info list, this type of ref. identity
+ -- shall not be used by the MS unless it has received
+ -- the SystemInfoAssistData from the SMLC for this cell.
+ ciAndLAC CellIDAndLAC -- CI and LAC
+}
+
+BSICAndCarrier ::= SEQUENCE {
+ carrier BCCHCarrier,
+ bsic BSIC
+}
+
+RequestIndex ::= INTEGER (1..16)
+
+SystemInfoIndex ::= INTEGER (1..32)
+
+CellIDAndLAC ::= SEQUENCE {
+ referenceLAC LAC, -- Location area code
+ referenceCI CellID -- Cell identity
+}
+CellID ::= INTEGER (0..65535)
+LAC ::= INTEGER (0..65535)
+
+-- OTD-MeasureInfo
+OTD-MeasureInfo ::= SEQUENCE {
+ -- Measurement info elements, OTD-MsrElement is repeated number of times
+ -- told in nbrOfReferenceBTSs in MultipleSets, default value is 1
+ otdMsrFirstSets OTD-MsrElementFirst,
+
+ -- if more than one sets are present this element is repeated
+ -- NumberOfSets - 1 (-1 = first set)
+ otdMsrRestSets SeqOfOTD-MsrElementRest OPTIONAL
+}
+
+SeqOfOTD-MsrElementRest ::= SEQUENCE (SIZE(1..2)) OF OTD-MsrElementRest
+
+-- OTD measurent information for 1 set
+OTD-MsrElementFirst ::= SEQUENCE {
+ refFrameNumber INTEGER (0..42431), -- Frame number modulo 42432
+ referenceTimeSlot ModuloTimeSlot,
+ toaMeasurementsOfRef TOA-MeasurementsOfRef OPTIONAL,
+ stdResolution StdResolution,
+ taCorrection INTEGER (0..960) OPTIONAL, -- TA correction
+
+ -- measured neighbors in OTD measurements
+ otd-FirstSetMsrs SeqOfOTD-FirstSetMsrs OPTIONAL
+}
+SeqOfOTD-FirstSetMsrs ::= SEQUENCE (SIZE(1..10)) OF OTD-FirstSetMsrs
+
+-- OTD measurent information 2 and 3 sets if exist
+OTD-MsrElementRest ::= SEQUENCE {
+ refFrameNumber INTEGER (0..42431), -- Frame number modulo 42432
+ referenceTimeSlot ModuloTimeSlot,
+ toaMeasurementsOfRef TOA-MeasurementsOfRef OPTIONAL,
+ stdResolution StdResolution,
+ taCorrection INTEGER (0..960) OPTIONAL, -- TA correction
+
+ -- measured neighbors in OTD measurements
+ otd-MsrsOfOtherSets SeqOfOTD-MsrsOfOtherSets OPTIONAL
+}
+SeqOfOTD-MsrsOfOtherSets ::= SEQUENCE (SIZE(1..10)) OF OTD-MsrsOfOtherSets
+
+-- Standard deviation of the TOA measurements from the reference BTS
+TOA-MeasurementsOfRef ::= SEQUENCE {
+ refQuality RefQuality,
+ numOfMeasurements NumOfMeasurements
+}
+
+RefQuality ::= INTEGER (0..31) -- St Dev of TOA of reference as defined in annex
+NumOfMeasurements ::= INTEGER (0..7) -- No. of measurements for RefQuality as defined in annex
+StdResolution ::= INTEGER (0..3) -- Values of resolution are defined in annex
+
+OTD-FirstSetMsrs ::= OTD-MeasurementWithID
+
+-- Neighbour info in OTD measurements 0-10 times in TD measurement info
+OTD-MsrsOfOtherSets ::= CHOICE {
+ identityNotPresent OTD-Measurement,
+ identityPresent OTD-MeasurementWithID
+}
+
+-- For this OTD measurement identity is same as the identity of BTS
+-- in the first set with same sequence number
+OTD-Measurement ::= SEQUENCE {
+ nborTimeSlot ModuloTimeSlot,
+ eotdQuality EOTDQuality,
+ otdValue OTDValue
+}
+
+-- This measurement contains the BTS identity and measurement
+OTD-MeasurementWithID ::=SEQUENCE {
+ neighborIdentity NeighborIdentity,
+ nborTimeSlot ModuloTimeSlot,
+ eotdQuality EOTDQuality,
+ otdValue OTDValue
+}
+
+EOTDQuality ::= SEQUENCE {
+ nbrOfMeasurements INTEGER (0..7),
+ stdOfEOTD INTEGER (0..31)
+}
+
+NeighborIdentity ::= CHOICE {
+ bsicAndCarrier BSICAndCarrier, -- BSIC and Carrier
+ ci CellID, -- Cell ID, LAC not needed
+ multiFrameCarrier MultiFrameCarrier, -- MultiFrameOffest and BSIC
+ requestIndex RequestIndex, -- Index to Requested Neighbor List
+ systemInfoIndex SystemInfoIndex, -- Index to System info list, this type of neighbour
+ -- identity shall not be used by the MS unless it has
+ -- received the SystemInfoAssistData from the SMLC for
+ -- this cell.
+ ciAndLAC CellIDAndLAC -- CI and LAC
+}
+
+-- Multiframe and carrier
+MultiFrameCarrier ::= SEQUENCE {
+ bcchCarrier BCCHCarrier,
+ multiFrameOffset MultiFrameOffset
+}
+
+-- OTD measurement value for neighbour
+OTDValue ::= INTEGER (0..39999)
+
+-- Location information IE
+LocationInfo ::= SEQUENCE {
+ refFrame INTEGER (0..65535), -- Reference Frame number
+ -- If refFrame is within (42432..65535), it shall be ignored by the receiver
+ -- in that case the MS should provide GPS TOW if available
+ gpsTOW INTEGER (0..14399999) OPTIONAL, -- GPS TOW
+ fixType FixType,
+ -- Note that applicable range for refFrame is 0 - 42431
+ -- Possible shapes carried in posEstimate are
+ -- ellipsoid point,
+ -- ellipsoid point with uncertainty circle
+ -- ellipsoid point with uncertainty ellipse
+ -- ellipsoid point with altitude and uncertainty ellipsoid
+ posEstimate Ext-GeographicalInformation
+}
+
+FixType ::= INTEGER {
+ twoDFix (0),
+ threeDFix (1)
+} (0..1)
+
+-- GPS-Measurement information
+GPS-MeasureInfo ::= SEQUENCE {
+ -- Measurement info elements
+ -- user has to make sure that in this element is number of elements
+ -- defined in reference BTS identity
+ gpsMsrSetList SeqOfGPS-MsrSetElement
+}
+SeqOfGPS-MsrSetElement ::= SEQUENCE (SIZE(1..3)) OF GPS-MsrSetElement
+
+-- OTD measurent information 1-3 times in message
+GPS-MsrSetElement ::= SEQUENCE {
+ refFrame INTEGER (0..65535) OPTIONAL, -- Reference Frame number
+ gpsTOW GPSTOW24b, -- GPS TOW
+ -- Note that applicable range for refFrame is 0 - 42431
+
+--N_SAT can be read from number of elements of gps-msrList
+
+ gps-msrList SeqOfGPS-MsrElement
+}
+
+-- 24 bit presentation for GPSTOW
+GPSTOW24b ::= INTEGER (0..14399999)
+
+-- measured elements in measurement parameters field
+SeqOfGPS-MsrElement ::= SEQUENCE (SIZE(1..16)) OF GPS-MsrElement
+
+GPS-MsrElement ::= SEQUENCE {
+ satelliteID SatelliteID, -- Satellite identifier
+ cNo INTEGER (0..63), -- carrier noise ratio
+ doppler INTEGER (-32768..32767), -- doppler, mulltiply by 0.2
+ wholeChips INTEGER (0..1022), -- whole value of the code phase measurement
+ fracChips INTEGER (0..1024), -- fractional value of the code phase measurement
+ -- a value of 1024 shall not be encoded by the sender
+ -- the receiver shall consider a value of 1024 to be
+ -- invalid data
+ mpathIndic MpathIndic, -- multipath indicator
+ pseuRangeRMSErr INTEGER (0..63) -- index
+}
+
+-- Multipath indicator
+MpathIndic ::= ENUMERATED {
+ notMeasured (0),
+ low (1),
+ medium (2),
+ high (3)
+}
+
+-- Location error IE
+LocationError ::= SEQUENCE {
+ locErrorReason LocErrorReason,
+ additionalAssistanceData AdditionalAssistanceData OPTIONAL,
+ ...
+}
+
+LocErrorReason ::= ENUMERATED {
+ unDefined (0),
+ notEnoughBTSs (1),
+ notEnoughSats (2),
+ eotdLocCalAssDataMissing (3),
+ eotdAssDataMissing (4),
+ gpsLocCalAssDataMissing (5),
+ gpsAssDataMissing (6),
+ methodNotSupported (7),
+ notProcessed (8),
+ refBTSForGPSNotServingBTS (9),
+ refBTSForEOTDNotServingBTS (10),
+ ...,
+ notEnoughGANSSSats (11),
+ ganssAssDataMissing (12),
+ refBTSForGANSSNotServingBTS (13)
+}
+
+-- exception handling:
+-- an unrecognized value shall be treated the same as value 0
+
+
+-- defines additional assistance data needed for any new location attempt
+-- MS shall retain any assistance data already received
+AdditionalAssistanceData ::= SEQUENCE {
+ gpsAssistanceData GPSAssistanceData OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ ganssAssistanceData GANSSAssistanceData OPTIONAL
+}
+
+
+GPSAssistanceData ::= OCTET STRING (SIZE (1..maxGPSAssistanceData))
+-- GPSAssistanceData has identical structure and encoding to octets 3 to n of the
+-- GPS Assistance Data IE in 3GPP TS 49.031
+
+maxGPSAssistanceData INTEGER ::= 40
+
+GANSSAssistanceData ::= OCTET STRING (SIZE (1..maxGANSSAssistanceData))
+-- GANSSAssistanceData has identical structure and encoding to octets 3 to n of the
+-- GANSS Assistance Data IE in 3GPP TS 49.031
+
+maxGANSSAssistanceData INTEGER ::= 40
+
+-- Protocol Error Causes
+ErrorCodes ::= ENUMERATED {
+ unDefined (0),
+missingComponet (1),
+incorrectData (2),
+missingIEorComponentElement (3),
+messageTooShort (4),
+unknowReferenceNumber (5),
+...
+}
+
+-- exception handling:
+-- an unrecognized value shall be treated the same as value 0
+
+-- GPS assistance data IE
+GPS-AssistData ::= SEQUENCE {
+ controlHeader ControlHeader
+}
+
+-- More Assistance Data To Be Sent IE
+-- More Assistance Data Components On the Way indication for delivery of an entire set of assistance
+-- data in multiple Assistance Data components.
+
+MoreAssDataToBeSent ::= ENUMERATED {
+ noMoreMessages (0), -- This is the only or last Assistance Data message used to deliver
+ -- the entire set of assistance data.
+ moreMessagesOnTheWay (1) -- The SMLC will send more Assistance Data messages or a final RRLP
+ -- Measure Position Request message to deliver the
+ -- the entire set of assistance data.
+}
+
+-- Control header of the GPS assistance data
+ControlHeader ::= SEQUENCE {
+
+ -- Field type Present information
+ referenceTime ReferenceTime OPTIONAL,
+ refLocation RefLocation OPTIONAL,
+ dgpsCorrections DGPSCorrections OPTIONAL,
+ navigationModel NavigationModel OPTIONAL,
+ ionosphericModel IonosphericModel OPTIONAL,
+ utcModel UTCModel OPTIONAL,
+ almanac Almanac OPTIONAL,
+ acquisAssist AcquisAssist OPTIONAL,
+ realTimeIntegrity SeqOf-BadSatelliteSet OPTIONAL
+}
+
+ReferenceTime ::= SEQUENCE {
+ gpsTime GPSTime,
+ gsmTime GSMTime OPTIONAL,
+ gpsTowAssist GPSTOWAssist OPTIONAL
+}
+
+-- GPS Time includes week number and time-of-week (TOW)
+GPSTime ::= SEQUENCE {
+ gpsTOW23b GPSTOW23b,
+ gpsWeek GPSWeek
+}
+
+-- GPSTOW, range 0-604799.92, resolution 0.08 sec, 23-bit presentation
+GPSTOW23b ::= INTEGER (0..7559999)
+
+-- GPS week number
+GPSWeek ::= INTEGER (0..1023)
+
+-- GPSTOWAssist consists of TLM message, Anti-spoof flag, Alert flag, and 2 reserved bits in TLM Word
+-- for each visible satellite.
+-- N_SAT can be read from number of elements in GPSTOWAssist
+GPSTOWAssist ::= SEQUENCE (SIZE(1..12)) OF GPSTOWAssistElement
+
+GPSTOWAssistElement ::= SEQUENCE {
+ satelliteID SatelliteID,
+ tlmWord TLMWord,
+ antiSpoof AntiSpoofFlag,
+ alert AlertFlag,
+ tlmRsvdBits TLMReservedBits
+}
+
+-- TLM Word, 14 bits
+TLMWord ::= INTEGER (0..16383)
+
+-- Anti-Spoof flag
+AntiSpoofFlag ::= INTEGER (0..1)
+
+-- Alert flag
+AlertFlag ::= INTEGER (0..1)
+
+-- Reserved bits in TLM word, MSB occurs earlier in TLM Word transmitted by satellite
+TLMReservedBits ::= INTEGER (0..3)
+
+GSMTime ::= SEQUENCE {
+ bcchCarrier BCCHCarrier, -- BCCH carrier
+ bsic BSIC, -- BSIC
+ frameNumber FrameNumber,
+ timeSlot TimeSlot,
+ bitNumber BitNumber
+}
+
+-- Frame number
+FrameNumber ::= INTEGER (0..2097151)
+
+-- Time slot number
+TimeSlot ::= INTEGER (0..7)
+
+-- Bit number
+BitNumber ::= INTEGER (0..156)
+
+
+-- Reference Location IE
+RefLocation ::= SEQUENCE {
+ threeDLocation Ext-GeographicalInformation
+}
+
+-- DGPS Corrections IE
+DGPSCorrections ::= SEQUENCE {
+
+ gpsTOW INTEGER (0..604799), -- DGPS reference time
+ status INTEGER (0..7),
+ -- N_SAT can be read from number of elements of satList
+ satList SeqOfSatElement
+}
+SeqOfSatElement ::= SEQUENCE (SIZE (1..16)) OF SatElement
+
+-- number of correction for satellites
+SatElement ::= SEQUENCE {
+ satelliteID SatelliteID,
+
+--- Sequence number for ephemeris
+ iode INTEGER (0..239),
+ -- User Differential Range Error
+ udre INTEGER (0..3),
+
+ -- Pseudo Range Correction, range is
+ -- -655.04 - +655.04,
+ pseudoRangeCor INTEGER (-2047..2047),
+
+ -- Pseudo Range Rate Correction, range is
+ -- -4.064 - +4.064,
+ rangeRateCor INTEGER (-127..127),
+
+-- Delta Pseudo Range Correction 2
+ deltaPseudoRangeCor2 INTEGER (-127..127), -- This IE shall be ignored by the receiver and
+ -- set to zero by the sender
+ -- Delta Pseudo Range Correction 2
+ deltaRangeRateCor2 INTEGER (-7..7), -- This IE shall be ignored by the receiver and
+ -- set to zero by the sender
+ -- Delta Pseudo Range Correction 3
+ deltaPseudoRangeCor3 INTEGER (-127..127), -- This IE shall be ignored by the receiver and
+ -- set to zero by the sender
+ -- Delta Pseudo Range Correction 3
+ deltaRangeRateCor3 INTEGER (-7..7) -- This IE shall be ignored by the receiver and
+ -- set to zero by the sender
+}
+
+SatelliteID ::= INTEGER (0..63) -- identifies satellite
+
+-- Navigation Model IE
+NavigationModel ::= SEQUENCE {
+ navModelList SeqOfNavModelElement
+}
+
+-- navigation model satellite list
+SeqOfNavModelElement ::= SEQUENCE (SIZE(1..16)) OF NavModelElement
+
+NavModelElement ::= SEQUENCE {
+ satelliteID SatelliteID,
+ satStatus SatStatus -- satellite status
+}
+
+-- the Status of the navigation model
+SatStatus ::= CHOICE {
+ -- New satellite, new Navigation Model
+ newSatelliteAndModelUC UncompressedEphemeris,
+
+ -- Existing satellite, Existing Navigation Model
+ oldSatelliteAndModel NULL,
+
+ -- Existing satellite, new Navigation Model
+ newNaviModelUC UncompressedEphemeris,
+ ...
+}
+
+-- Uncompressed satellite emhemeris and clock corrections
+UncompressedEphemeris ::= SEQUENCE {
+ ephemCodeOnL2 INTEGER (0..3),
+ ephemURA INTEGER (0..15),
+ ephemSVhealth INTEGER (0..63),
+ ephemIODC INTEGER (0..1023),
+ ephemL2Pflag INTEGER (0..1),
+ ephemSF1Rsvd EphemerisSubframe1Reserved,
+ ephemTgd INTEGER (-128..127),
+ ephemToc INTEGER (0..37799),
+ ephemAF2 INTEGER (-128..127),
+ ephemAF1 INTEGER (-32768..32767),
+ ephemAF0 INTEGER (-2097152..2097151),
+ ephemCrs INTEGER (-32768..32767),
+ ephemDeltaN INTEGER (-32768..32767),
+ ephemM0 INTEGER (-2147483648..2147483647),
+ ephemCuc INTEGER (-32768..32767),
+ ephemE INTEGER (0..4294967295),
+ ephemCus INTEGER (-32768..32767),
+ ephemAPowerHalf INTEGER (0..4294967295),
+ ephemToe INTEGER (0..37799),
+ ephemFitFlag INTEGER (0..1),
+ ephemAODA INTEGER (0..31),
+ ephemCic INTEGER (-32768..32767),
+ ephemOmegaA0 INTEGER (-2147483648..2147483647),
+ ephemCis INTEGER (-32768..32767),
+ ephemI0 INTEGER (-2147483648..2147483647),
+ ephemCrc INTEGER (-32768..32767),
+ ephemW INTEGER (-2147483648..2147483647),
+ ephemOmegaADot INTEGER (-8388608..8388607),
+ ephemIDot INTEGER (-8192..8191)
+}
+
+-- Reserved bits in subframe 1 of navigation message
+EphemerisSubframe1Reserved ::= SEQUENCE {
+ reserved1 INTEGER (0..8388607), -- 23-bit field
+ reserved2 INTEGER (0..16777215), -- 24-bit field
+ reserved3 INTEGER (0..16777215), -- 24-bit field
+ reserved4 INTEGER (0..65535) -- 16-bit field
+}
+
+-- Ionospheric Model IE
+IonosphericModel ::= SEQUENCE {
+ alfa0 INTEGER (-128..127),
+ alfa1 INTEGER (-128..127),
+ alfa2 INTEGER (-128..127),
+ alfa3 INTEGER (-128..127),
+ beta0 INTEGER (-128..127),
+ beta1 INTEGER (-128..127),
+ beta2 INTEGER (-128..127),
+ beta3 INTEGER (-128..127)
+}
+
+-- Universal Time Coordinate Model
+UTCModel ::= SEQUENCE {
+ utcA1 INTEGER (-8388608..8388607),
+ utcA0 INTEGER (-2147483648..2147483647),
+ utcTot INTEGER (0..255),
+ utcWNt INTEGER (0..255),
+ utcDeltaTls INTEGER (-128..127),
+ utcWNlsf INTEGER (0..255),
+ utcDN INTEGER (-128..127),
+ utcDeltaTlsf INTEGER (-128..127)
+}
+
+-- Almanac, Long term model
+-- NOTE: These are parameters are subset of the ephemeris
+-- NOTE: But with reduced resolution and accuracy
+Almanac ::= SEQUENCE {
+ alamanacWNa INTEGER (0..255), -- Once per message
+
+ -- navigation model satellite list.
+ -- The size of almanacList is actually Nums_Sats_Total field
+ almanacList SeqOfAlmanacElement
+}
+SeqOfAlmanacElement ::= SEQUENCE (SIZE(1..64)) OF AlmanacElement
+
+-- Almanac info once per satellite
+AlmanacElement ::= SEQUENCE {
+ satelliteID SatelliteID,
+ almanacE INTEGER (0..65535),
+ alamanacToa INTEGER (0..255),
+ almanacKsii INTEGER (-32768..32767),
+ almanacOmegaDot INTEGER (-32768..32767),
+ almanacSVhealth INTEGER (0..255),
+ almanacAPowerHalf INTEGER (0..16777215),
+ almanacOmega0 INTEGER (-8388608..8388607),
+ almanacW INTEGER (-8388608..8388607),
+ almanacM0 INTEGER (-8388608..8388607),
+ almanacAF0 INTEGER (-1024..1023),
+ almanacAF1 INTEGER (-1024..1023)
+}
+
+-- Acquisition Assistance
+AcquisAssist ::= SEQUENCE {
+
+ -- Number of Satellites can be read from acquistList
+ timeRelation TimeRelation,
+
+ -- Acquisition assistance list
+ -- The size of Number of Satellites is actually Number of Satellites field
+ acquisList SeqOfAcquisElement
+}
+SeqOfAcquisElement ::= SEQUENCE (SIZE(1..16)) OF AcquisElement
+
+-- the relationship between GPS time and air-interface timing
+TimeRelation ::= SEQUENCE {
+ --
+ gpsTOW GPSTOW23b, -- 23b presentation
+ gsmTime GSMTime OPTIONAL
+}
+
+-- data occuring per number of satellites
+AcquisElement ::= SEQUENCE {
+ svid SatelliteID,
+
+ -- Doppler 0th order term,
+ -- -5120.0 - 5117.5 Hz (= -2048 - 2047 with 2.5 Hz resolution)
+ doppler0 INTEGER (-2048..2047),
+ addionalDoppler AddionalDopplerFields OPTIONAL,
+ codePhase INTEGER (0..1022), -- Code Phase
+ intCodePhase INTEGER (0..19), -- Integer Code Phase
+ gpsBitNumber INTEGER (0..3), -- GPS bit number
+ codePhaseSearchWindow INTEGER (0..15), -- Code Phase Search Window
+ addionalAngle AddionalAngleFields OPTIONAL
+}
+
+AddionalDopplerFields ::= SEQUENCE {
+ -- Doppler 1st order term, -1.0 - +0.5 Hz/sec
+ -- (= -42 + (0 to 63) with 1/42 Hz/sec. resolution)
+ doppler1 INTEGER (0..63),
+ dopplerUncertainty INTEGER (0..7)
+ -- a sender shall not encode any DopplerUncertainty value in the range 5 to 7
+ -- a receiver shall ignore any value between 5 and 7.
+}
+
+AddionalAngleFields ::= SEQUENCE {
+ -- azimuth angle, 0 - 348.75 deg (= 0 - 31 with 11.25 deg resolution)
+ azimuth INTEGER (0..31),
+ -- elevation angle, 0 - 78.75 deg (= 0 - 7 with 11.25 deg resolution)
+ elevation INTEGER (0..7)
+}
+
+-- Real-Time Integrity
+-- number of bad satellites can be read from this element
+SeqOf-BadSatelliteSet ::= SEQUENCE (SIZE(1..16)) OF SatelliteID
+
+-- Extension Elements
+
+-- Release 98 Extensions here
+Rel98-MsrPosition-Req-Extension ::= SEQUENCE {
+ rel98-Ext-ExpOTD Rel98-Ext-ExpOTD OPTIONAL, -- ExpectedOTD extension
+ ...,
+ gpsTimeAssistanceMeasurementRequest NULL OPTIONAL,
+ gpsReferenceTimeUncertainty GPSReferenceTimeUncertainty OPTIONAL
+
+-- Further R98 extensions here
+}
+Rel98-AssistanceData-Extension ::= SEQUENCE {
+ rel98-Ext-ExpOTD Rel98-Ext-ExpOTD OPTIONAL, -- ExpectedOTD extension
+ ...,
+ gpsTimeAssistanceMeasurementRequest NULL OPTIONAL,
+ gpsReferenceTimeUncertainty GPSReferenceTimeUncertainty OPTIONAL
+
+-- Further R98 extensions here
+}
+
+-- Release 98 ExpOTD extension
+Rel98-Ext-ExpOTD ::= SEQUENCE {
+-- If MsrAssistBTS is included in message, msrAssistData-R98-ExpOTD shall be included.
+ msrAssistData-R98-ExpOTD MsrAssistData-R98-ExpOTD OPTIONAL,
+
+-- If SystemInfoAssistaData is included in message, systemInfoAssistData-R98-ExpOTD shall be
+-- included.
+ systemInfoAssistData-R98-ExpOTD SystemInfoAssistData-R98-ExpOTD OPTIONAL
+}
+
+-- MsrAssistData R98 extension
+MsrAssistData-R98-ExpOTD ::= SEQUENCE {
+ msrAssistList-R98-ExpOTD SeqOfMsrAssistBTS-R98-ExpOTD
+}
+
+-- Indexes in SeqOfMsrAssistBTS-R98-ExpOTD refer to SeqOfMsrAssistBTS
+-- If the index exceeds the SegOfMsrAssistBTS range or if there is other
+-- inconsistencies between the BTS indices, the MS shall apply protocol
+-- error cause incorrectData
+SeqOfMsrAssistBTS-R98-ExpOTD ::= SEQUENCE (SIZE(1..15)) OF MsrAssistBTS-R98-ExpOTD
+
+-- This element completes MsrAssistBTS IE
+MsrAssistBTS-R98-ExpOTD ::= SEQUENCE {
+ expectedOTD ExpectedOTD,
+ expOTDUncertainty ExpOTDUncertainty
+}
+
+-- SystemInfoAssistData R98 extension
+SystemInfoAssistData-R98-ExpOTD ::= SEQUENCE {
+ systemInfoAssistListR98-ExpOTD SeqOfSystemInfoAssistBTS-R98-ExpOTD
+}
+
+-- SeqOfSystemInfoAssistBTS-R98-ExpOTD index refer to SeqOfSystemInfoAssistBTS
+-- If the index exceeds the SegOfSystemInfoAssistBTS range or if there is other
+-- inconsistencies between the BTS indices, the MS shall apply protocol
+-- error cause incorrectData
+SeqOfSystemInfoAssistBTS-R98-ExpOTD ::= SEQUENCE (SIZE(1..32)) OF SystemInfoAssistBTS-R98-ExpOTD
+
+-- whether n.th is present or not ?
+SystemInfoAssistBTS-R98-ExpOTD ::= CHOICE {
+ notPresent NULL,
+ present AssistBTSData-R98-ExpOTD
+}
+
+-- This element completes AssistBTSData IE
+AssistBTSData-R98-ExpOTD ::= SEQUENCE {
+ expectedOTD ExpectedOTD,
+ expOTDuncertainty ExpOTDUncertainty -- Uncertainty of expected OTD
+}
+
+-- Expected OTD value between nbor base station and reference BTS
+-- at MS's current estimated location.
+ExpectedOTD ::= INTEGER (0..1250)
+-- The ExpectedOTD value 1250 shall not be encoded by the transmitting entity and
+-- shall be treated by the receiving entity as 0.
+-- Uncertainty of Exptected OTD in bits
+ExpOTDUncertainty ::= INTEGER(0..7)
+
+-- Release 98 extensions
+
+GPSReferenceTimeUncertainty ::= INTEGER (0 .. 127) -- Coding according to Annex
+
+GPSTimeAssistanceMeasurements ::= SEQUENCE {
+ referenceFrameMSB INTEGER (0 .. 63) OPTIONAL, -- MSB of frame number
+ gpsTowSubms INTEGER (0 .. 9999) OPTIONAL, -- in units of 100ns, for MS based AGPS
+ deltaTow INTEGER (0 .. 127) OPTIONAL, -- for MS assisted AGPS
+ gpsReferenceTimeUncertainty GPSReferenceTimeUncertainty OPTIONAL
+}
+
+Rel-98-MsrPosition-Rsp-Extension ::= SEQUENCE {
+
+ -- First extension to Release 98
+ rel-98-Ext-MeasureInfo SEQUENCE {
+ otd-MeasureInfo-R98-Ext OTD-MeasureInfo-R98-Ext OPTIONAL
+ },
+ ...,
+ timeAssistanceMeasurements GPSTimeAssistanceMeasurements OPTIONAL
+ -- Further R98 extensions here
+}
+
+-- This is an addition to OTD-MeasureInfo element defined in original message,
+-- If OTD-MeasureInfo is absent, or if one or more OTD-MsrElementRest are present
+-- OTD-MeasureInfo-R98-Ext shall be absent.
+-- OTD-MeasureInfo-R98-Ext
+OTD-MeasureInfo-R98-Ext ::= SEQUENCE {
+ -- Measurement info elements
+ otdMsrFirstSets-R98-Ext OTD-MsrElementFirst-R98-Ext
+}
+
+-- OTD measurement information Ext for the first set only
+OTD-MsrElementFirst-R98-Ext ::= SEQUENCE {
+ -- additional measured neighbors in OTD measurements
+ otd-FirstSetMsrs-R98-Ext SeqOfOTD-FirstSetMsrs-R98-Ext OPTIONAL
+}
+SeqOfOTD-FirstSetMsrs-R98-Ext ::= SEQUENCE (SIZE(1..5)) OF OTD-FirstSetMsrs
+
+Rel-5-MsrPosition-Rsp-Extension ::= SEQUENCE {
+
+ extended-reference Extended-reference OPTIONAL,
+ -- The extended-reference shall be included by the MS if and only if previously
+ -- received from the SMLC in a Measure Position Request. When included, the value sent
+ -- by the MS shall equal the value received from the SMLC.
+
+ -- extension to Release 5, for RRLP pseudo-segmentation here
+ otd-MeasureInfo-5-Ext OTD-MeasureInfo-5-Ext OPTIONAL,
+ ulPseudoSegInd UlPseudoSegInd OPTIONAL, -- Included when uplink RRLP
+ -- Pseudo-segmentation is used, not included when no uplink pseudo-segmentation is used
+ ...
+ -- Possibly more extensions for Release 5 here later
+}
+
+Extended-reference ::= SEQUENCE {
+ smlc-code INTEGER (0..63),
+ transaction-ID INTEGER (0..262143)
+}
+
+OTD-MeasureInfo-5-Ext ::= SeqOfOTD-MsrElementRest
+ -- if more than one measurement sets are present this element is repeated
+ -- NumberOfSets - 1 (-1 = first set) combined in OTD-MeasureInfo-5-Ext and
+ -- OTD-MeasureInfo (e.g. if NumberOfSets is 3, then one otdMsrRestSets may
+ -- be sent in OTD-MeasureInfo-5-Ext and one in OTD-MeasureInfo)
+
+-- First part of Uplink RRLP Pseudo-segmentation indication, possibly more may be defined
+-- in the future for segmentation with more than two segments.
+UlPseudoSegInd ::= ENUMERATED {
+ firstOfMany (0),
+ secondOfMany(1)
+}
+
+Rel5-MsrPosition-Req-Extension ::= SEQUENCE {
+ extended-reference Extended-reference,
+ ...
+ -- Possibly more extensions for Release 5 here later
+}
+
+Rel5-AssistanceData-Extension ::= SEQUENCE {
+ extended-reference Extended-reference,
+ ...
+
+-- Possibly more extensions for Release 5 here later
+}
+
+Rel-5-ProtocolError-Extension::= SEQUENCE {
+ extended-reference Extended-reference OPTIONAL,
+ -- The extended-reference shall be included by the MS if and only if previously
+ -- received from the SMLC.
+ -- When included, the value sent by the MS shall equal the value received from the SMLC.
+ ...
+
+ -- Possibly more extensions for Release 5 here later
+}
+
+-- Release 7 Extensions here
+
+Rel7-MsrPosition-Req-Extension ::= SEQUENCE {
+ velocityRequested NULL OPTIONAL,
+ ganssPositionMethod GANSSPositioningMethod OPTIONAL,
+ ganss-AssistData GANSS-AssistData OPTIONAL,
+ ganssCarrierPhaseMeasurementRequest NULL OPTIONAL,
+ ganssTODGSMTimeAssociationMeasurementRequest NULL OPTIONAL,
+ requiredResponseTime RequiredResponseTime OPTIONAL,
+ add-GPS-AssistData Add-GPS-AssistData OPTIONAL,
+ ganssMultiFreqMeasurementRequest NULL OPTIONAL,
+ ...
+ -- Further Release 7 extensions here
+}
+
+-- additional satellite systems may be added in future versions of the protocol
+-- Bit 0 of GANSSPositioningMethod bit map shall not be the only one set to TRUE ('1')
+GANSSPositioningMethod ::= BIT STRING {
+ gps (0),
+ galileo (1),
+ sbas (2),
+ modernizedGPS (3),
+ qzss (4),
+ glonass (5) } (SIZE (2..16))
+
+GANSS-AssistData ::= SEQUENCE {
+ ganss-controlHeader GANSS-ControlHeader
+}
+GANSS-ControlHeader ::= SEQUENCE {
+ ganssCommonAssistData GANSSCommonAssistData OPTIONAL,
+ ganssGenericAssistDataList SeqOfGANSSGenericAssistDataElement OPTIONAL
+}
+
+-- GANSS Common Assistance Data Elements
+GANSSCommonAssistData ::= SEQUENCE {
+ ganssReferenceTime GANSSReferenceTime OPTIONAL,
+ ganssRefLocation GANSSRefLocation OPTIONAL,
+ ganssIonosphericModel GANSSIonosphericModel OPTIONAL,
+ ... ,
+ ganssAddIonosphericModel GANSSAddIonosphericModel OPTIONAL,
+ ganssEarthOrientParam GANSSEarthOrientParam OPTIONAL,
+ -- If GANSSReferenceTime is included, GANSSReferenceTime-R10-Ext shall also be included.
+ ganssReferenceTime-R10-Ext GANSSReferenceTime-R10-Ext OPTIONAL
+}
+
+-- List of GANSS Generic Assistance Data Elements, up to 8 GANSS
+SeqOfGANSSGenericAssistDataElement ::= SEQUENCE (SIZE (1..8)) OF GANSSGenericAssistDataElement
+-- GANSS Generic Assistance Data Elements
+GANSSGenericAssistDataElement ::= SEQUENCE {
+ ganssID INTEGER (0..7) OPTIONAL, -- Coding according to Annex
+ ganssTimeModel SeqOfGANSSTimeModel OPTIONAL,
+ ganssDiffCorrections GANSSDiffCorrections OPTIONAL,
+ ganssNavigationModel GANSSNavModel OPTIONAL,
+ ganssRealTimeIntegrity GANSSRealTimeIntegrity OPTIONAL,
+ ganssDataBitAssist GANSSDataBitAssist OPTIONAL,
+ ganssRefMeasurementAssist GANSSRefMeasurementAssist OPTIONAL,
+ ganssAlmanacModel GANSSAlmanacModel OPTIONAL,
+ ganssUTCModel GANSSUTCModel OPTIONAL,
+ ganssEphemerisExtension GANSSEphemerisExtension OPTIONAL,
+ ganssEphemerisExtCheck GANSSEphemerisExtensionCheck OPTIONAL,
+ ... ,
+ sbasID INTEGER (0..7) OPTIONAL, -- Coding according to Annex
+ ganssAddUTCModel GANSSAddUTCModel OPTIONAL,
+ ganssAuxiliaryInfo GANSSAuxiliaryInformation OPTIONAL,
+ ganssDiffCorrectionsValidityPeriod GANSSDiffCorrectionsValidityPeriod OPTIONAL,
+ -- If SeqOfGANSSTimeModel is included, SeqOfGANSSTimeModel-R10-Ext shall also be included.
+ ganssTimeModel-R10-Ext SeqOfGANSSTimeModel-R10-Ext OPTIONAL,
+ -- If GANSSRefMeasurementAssist is included, GANSSRefMeasurementAssist-R10-Ext shall also be
+ -- included.
+ ganssRefMeasurementAssist-R10-Ext GANSSRefMeasurementAssist-R10-Ext OPTIONAL,
+ -- If GANSSAlmanacModel is included, GANSSAlmanacModel-R10-Ext shall also be included.
+ ganssAlmanacModel-R10-Ext GANSSAlmanacModel-R10-Ext OPTIONAL
+}
+
+-- GANSS COMMON ASSISTANCE DATA ELEMENTS
+
+-- GANSS Reference Time IE
+GANSSReferenceTime ::= SEQUENCE {
+ ganssRefTimeInfo GANSSRefTimeInfo,
+ ganssTOD-GSMTimeAssociation GANSSTOD-GSMTimeAssociation OPTIONAL
+}
+
+-- GANSS Reference Time includes GANSS TOD, GANSS Day, uncertainty
+GANSSRefTimeInfo ::= SEQUENCE {
+ -- ganssDay shall be present in this version of the protocol
+ ganssDay INTEGER(0 .. 8191) OPTIONAL,
+ ganssTOD GANSSTOD,
+ ganssTODUncertainty GANSSTODUncertainty OPTIONAL,
+ ganssTimeID INTEGER (0 .. 7) OPTIONAL
+}
+
+-- GANSS TOD integer seconds
+GANSSTOD ::= INTEGER (0 .. 86399)
+
+-- GANSS TOD uncertainty
+GANSSTODUncertainty ::= INTEGER (0 .. 127) -- Coding according to Annex
+
+-- GANSS Reference Time Rel-10 Extension:
+GANSSReferenceTime-R10-Ext ::= SEQUENCE {
+ ganssDayCycleNumber INTEGER(0..7) -- coding according to annex
+}
+-- GANSS TOD-GSM Time association
+GANSSTOD-GSMTimeAssociation ::= SEQUENCE {
+ bcchCarrier BCCHCarrier, -- BCCH carrier
+ bsic BSIC, -- BSIC
+ frameNumber FrameNumber,
+ timeSlot TimeSlot,
+ bitNumber BitNumber,
+ frameDrift FrameDrift OPTIONAL
+}
+
+-- Frame drift
+FrameDrift ::= INTEGER(-64 .. 63)
+
+-- GANSS Reference Location IE
+GANSSRefLocation ::= SEQUENCE {
+ threeDLocation Ext-GeographicalInformation
+}
+
+-- GANSS Ionospheric Model IE
+-- GANSS Ionospheric Model consists of NeQuick model parameters and storm flags
+GANSSIonosphericModel ::= SEQUENCE {
+ ganssIonoModel GANSSIonosphereModel,
+ ganssIonoStormFlags GANSSIonoStormFlags OPTIONAL,
+ ...
+}
+
+-- GANSS ionosphere model. Coding according to Annex
+GANSSIonosphereModel ::= SEQUENCE {
+ ai0 INTEGER (0 .. 4095),
+ ai1 INTEGER (0 .. 4095),
+ ai2 INTEGER (0 .. 4095)
+}
+
+-- GANSS ionosphere storm flags
+GANSSIonoStormFlags ::= SEQUENCE {
+ ionoStormFlag1 INTEGER (0 .. 1),
+ ionoStormFlag2 INTEGER (0 .. 1),
+ ionoStormFlag3 INTEGER (0 .. 1),
+ ionoStormFlag4 INTEGER (0 .. 1),
+ ionoStormFlag5 INTEGER (0 .. 1)
+}
+
+-- GANSS Additional Ionospheric Model IE
+-- GANSS Additional Ionospheric Model consists of Klobuchar model parameters
+GANSSAddIonosphericModel ::= SEQUENCE {
+ dataID BIT STRING (SIZE (2)), -- Coding according to Annex
+ ionoModel IonosphericModel
+}
+
+-- GANSS Earth Orientation Paramaters IE
+GANSSEarthOrientParam ::= SEQUENCE {
+ teop INTEGER (0..65535),
+ pmX INTEGER (-1048576..1048575),
+ pmXdot INTEGER (-16384..16383),
+ pmY INTEGER (-1048576..1048575),
+ pmYdot INTEGER (-16384..16383),
+ deltaUT1 INTEGER (-1073741824..1073741823),
+ deltaUT1dot INTEGER (-262144..262143)
+}
+
+-- GANSS GENERIC ASSISTANCE DATA ELEMENTS
+
+-- GANSS Time Model IE consists of time offset and first and second order parameters to relate GNSS
+-- specific system time to selected time reference
+SeqOfGANSSTimeModel ::= SEQUENCE (SIZE(1..7)) OF GANSSTimeModelElement
+
+GANSSTimeModelElement ::= SEQUENCE {
+ ganssTimeModelRefTime INTEGER(0 .. 65535),
+ tA0 TA0,
+ tA1 TA1 OPTIONAL,
+ tA2 TA2 OPTIONAL,
+ gnssTOID INTEGER (0 .. 7), -- coding according to annex
+ weekNumber INTEGER (0 .. 8191) OPTIONAL
+}
+
+-- GANSS time model parameter A0
+TA0 ::= INTEGER (-2147483648 .. 2147483647)
+
+-- GANSS time model parameter A1
+TA1 ::= INTEGER (-8388608 .. 8388607)
+
+-- GANSS time model parameter A2
+TA2 ::= INTEGER (-64 .. 63)
+
+-- GANSS Time Model Rel-10 Extension:
+SeqOfGANSSTimeModel-R10-Ext ::= SEQUENCE (SIZE(1..7)) OF GANSSTimeModelElement-R10-Ext
+
+GANSSTimeModelElement-R10-Ext ::= SEQUENCE {
+ gnssTOID INTEGER (0 .. 7), -- coding according to annex
+ deltaT INTEGER (-128..127)
+}
+
+-- DGANSS Corrections IE
+GANSSDiffCorrections ::= SEQUENCE {
+ dganssRefTime INTEGER (0 .. 119), -- DGANSS reference time
+
+ -- N_SGN_TYPE can be read from number of elements of sgnTypeList
+ sgnTypeList SeqOfSgnTypeElement
+}
+
+SeqOfSgnTypeElement ::= SEQUENCE (SIZE (1..3)) OF SgnTypeElement -- max three signals per GNSS
+
+-- DGANSS signal type element, once per GNSS signal type included in DGANSS
+SgnTypeElement ::= SEQUENCE {
+ ganssSignalID GANSSSignalID, -- signal type identity
+ ganssStatusHealth INTEGER (0 .. 7),
+ -- N_SAT can be read from number of elements of dganssSgnList
+ dganssSgnList SeqOfDGANSSSgnElement
+}
+
+GANSSSignalID ::= INTEGER (0 .. 7) -- Coding according to Annex
+SeqOfDGANSSSgnElement ::= SEQUENCE (SIZE (1..16)) OF DGANSSSgnElement
+
+-- number of correction for signals
+DGANSSSgnElement ::= SEQUENCE {
+ svID SVID, -- Satellite identity
+
+--- Sequence number for GANSS Navigation Model that matches the DGANSS correction set
+ iod INTEGER (0 .. 1023),
+
+ -- User Differential Range Error
+ udre INTEGER (0..3),
+
+ -- Pseudo Range Correction, range is
+ -- -655.04 - +655.04,
+ pseudoRangeCor INTEGER (-2047..2047),
+
+ -- Pseudo Range Rate Correction, range is
+ -- -4.064 - +4.064,
+ rangeRateCor INTEGER (-127..127)
+}
+
+SVID ::= INTEGER (0 .. 63) -- Coding according to Annex
+
+-- GANSS Navigation Model IE
+GANSSNavModel ::= SEQUENCE {
+ nonBroadcastIndFlag INTEGER (0 .. 1),
+ ganssSatelliteList SeqOfGANSSSatelliteElement
+}
+
+SeqOfGANSSSatelliteElement ::= SEQUENCE (SIZE(1..32)) OF GANSSSatelliteElement
+
+GANSSSatelliteElement ::= SEQUENCE {
+ svID SVID,
+ svHealth BIT STRING (SIZE(5)), -- Coding according to Annex
+ iod INTEGER (0 .. 1023), -- Coding according to Annex
+ ganssClockModel GANSSClockModel,
+ ganssOrbitModel GANSSOrbitModel,
+ ...,
+ svHealthMSB BIT STRING (SIZE(1)) OPTIONAL, -- Coding according to Annex
+ iodMSB INTEGER (0 .. 1) OPTIONAL -- Coding according to Annex
+}
+
+-- GANSS orbit model for the GNSS satellite according to the choice
+GANSSOrbitModel ::= CHOICE {
+ keplerianSet NavModel-KeplerianSet, -- Model-1
+ ... ,
+ navKeplerianSet NavModel-NAVKeplerianSet, -- Model-2
+ cnavKeplerianSet NavModel-CNAVKeplerianSet, -- Model-3
+ glonassECEF NavModel-GLONASSecef, -- Model-4
+ sbasECEF NavModel-SBASecef -- Model-5
+}
+
+-- Navigation model in Keplerian parameters
+NavModel-KeplerianSet ::= SEQUENCE {
+ keplerToe INTEGER (0 .. 16383),
+ keplerW INTEGER (-2147483648..2147483647),
+ keplerDeltaN INTEGER (-32768..32767),
+ keplerM0 INTEGER (-2147483648..2147483647),
+ keplerOmegaDot INTEGER (-8388608..8388607),
+ keplerE INTEGER (0..4294967295),
+ keplerIDot INTEGER (-8192..8191),
+ keplerAPowerHalf INTEGER (0.. 4294967295),
+ keplerI0 INTEGER (-2147483648..2147483647),
+ keplerOmega0 INTEGER (-2147483648..2147483647),
+ keplerCrs INTEGER (-32768..32767),
+ keplerCis INTEGER (-32768..32767),
+ keplerCus INTEGER (-32768..32767),
+ keplerCrc INTEGER (-32768..32767),
+ keplerCic INTEGER (-32768..32767),
+ keplerCuc INTEGER (-32768..32767)
+}
+
+NavModel-NAVKeplerianSet ::= SEQUENCE {
+ navURA INTEGER (0..15),
+ navFitFlag INTEGER (0..1),
+ navToe INTEGER (0..37799),
+ navOmega INTEGER (-2147483648..2147483647),
+ navDeltaN INTEGER (-32768..32767),
+ navM0 INTEGER (-2147483648..2147483647),
+ navOmegaADot INTEGER (-8388608..8388607),
+ navE INTEGER (0..4294967295),
+ navIDot INTEGER (-8192..8191),
+ navAPowerHalf INTEGER (0..4294967295),
+ navI0 INTEGER (-2147483648..2147483647),
+ navOmegaA0 INTEGER (-2147483648..2147483647),
+ navCrs INTEGER (-32768..32767),
+ navCis INTEGER (-32768..32767),
+ navCus INTEGER (-32768..32767),
+ navCrc INTEGER (-32768..32767),
+ navCic INTEGER (-32768..32767),
+ navCuc INTEGER (-32768..32767)
+}
+
+NavModel-CNAVKeplerianSet ::= SEQUENCE {
+ cnavTop INTEGER (0..2015),
+ cnavURAindex INTEGER (-16..15),
+ cnavDeltaA INTEGER (-33554432..33554431),
+ cnavAdot INTEGER (-16777216..16777215),
+ cnavDeltaNo INTEGER (-65536..65535),
+ cnavDeltaNoDot INTEGER (-4194304..4194303),
+ cnavMo INTEGER (-4294967296..4294967295),
+ cnavE INTEGER (0..8589934591),
+ cnavOmega INTEGER (-4294967296..4294967295),
+ cnavOMEGA0 INTEGER (-4294967296..4294967295),
+ cnavDeltaOmegaDot INTEGER (-65536..65535),
+ cnavIo INTEGER (-4294967296..4294967295),
+ cnavIoDot INTEGER (-16384..16383),
+ cnavCis INTEGER (-32768..32767),
+ cnavCic INTEGER (-32768..32767),
+ cnavCrs INTEGER (-8388608..8388607),
+ cnavCrc INTEGER (-8388608..8388607),
+ cnavCus INTEGER (-1048576..1048575),
+ cnavCuc INTEGER (-1048576..1048575)
+}
+
+NavModel-GLONASSecef ::= SEQUENCE {
+ gloEn INTEGER (0..31),
+ gloP1 BIT STRING (SIZE(2)),
+ gloP2 BOOLEAN,
+ gloM INTEGER (0..3),
+ gloX INTEGER (-67108864..67108863),
+ gloXdot INTEGER (-8388608..8388607),
+ gloXdotdot INTEGER (-16..15),
+ gloY INTEGER (-67108864..67108863),
+ gloYdot INTEGER (-8388608..8388607),
+ gloYdotdot INTEGER (-16..15),
+ gloZ INTEGER (-67108864..67108863),
+ gloZdot INTEGER (-8388608..8388607),
+ gloZdotdot INTEGER (-16..15)
+}
+
+
+NavModel-SBASecef ::= SEQUENCE {
+ sbasTo INTEGER (0..5399) OPTIONAL,
+ sbasAccuracy BIT STRING (SIZE(4)),
+ sbasXg INTEGER (-536870912..536870911),
+ sbasYg INTEGER (-536870912..536870911),
+ sbasZg INTEGER (-16777216..16777215),
+ sbasXgDot INTEGER (-65536..65535),
+ sbasYgDot INTEGER (-65536..65535),
+ sbasZgDot INTEGER (-131072..131071),
+ sbasXgDotDot INTEGER (-512..511),
+ sbagYgDotDot INTEGER (-512..511),
+ sbasZgDotDot INTEGER (-512..511)
+}
+
+-- GANSS clock model for the GNSS satellite according to the choice
+GANSSClockModel ::= CHOICE {
+ standardClockModelList SeqOfStandardClockModelElement, -- Model-1
+ ... ,
+ navClockModel NAVclockModel, -- Model-2
+ cnavClockModel CNAVclockModel, -- Model-3
+ glonassClockModel GLONASSclockModel, -- Model-4
+ sbasClockModel SBASclockModel -- Model-5
+}
+
+SeqOfStandardClockModelElement ::= SEQUENCE (SIZE(1..2)) OF StandardClockModelElement
+
+StandardClockModelElement ::= SEQUENCE {
+ stanClockToc INTEGER (0 .. 16383),
+ stanClockAF2 INTEGER (-2048 .. 2047),
+ stanClockAF1 INTEGER (-131072 .. 131071),
+ stanClockAF0 INTEGER (-134217728 .. 134217727),
+ stanClockTgd INTEGER (-512 .. 511) OPTIONAL,
+ stanModelID INTEGER (0 .. 1) OPTIONAL,
+ ...
+}
+
+NAVclockModel ::= SEQUENCE {
+ navToc INTEGER (0.. 37799),
+ navaf2 INTEGER (-128..127),
+ navaf1 INTEGER (-32768..32767),
+ navaf0 INTEGER (-2097152..2097151),
+ navTgd INTEGER (-128..127)
+}
+
+CNAVclockModel ::= SEQUENCE {
+ cnavToc INTEGER (0..2015),
+ cnavTop INTEGER (0..2015),
+ cnavURA0 INTEGER (-16..15),
+ cnavURA1 INTEGER (0..7),
+ cnavURA2 INTEGER (0..7),
+ cnavAf2 INTEGER (-512..511),
+ cnavAf1 INTEGER (-524288..524287),
+ cnavAf0 INTEGER (-33554432..33554431),
+ cnavTgd INTEGER (-4096..4095),
+ cnavISCl1cp INTEGER (-4096..4095) OPTIONAL,
+ cnavISCl1cd INTEGER (-4096..4095) OPTIONAL,
+ cnavISCl1ca INTEGER (-4096..4095) OPTIONAL,
+ cnavISCl2c INTEGER (-4096..4095) OPTIONAL,
+ cnavISCl5i5 INTEGER (-4096..4095) OPTIONAL,
+ cnavISCl5q5 INTEGER (-4096..4095) OPTIONAL
+}
+
+GLONASSclockModel ::= SEQUENCE {
+ gloTau INTEGER (-2097152..2097151),
+ gloGamma INTEGER (-1024..1023),
+ gloDeltaTau INTEGER (-16..15) OPTIONAL
+}
+
+SBASclockModel ::= SEQUENCE {
+ sbasTo INTEGER (0..5399),
+ sbasAgfo INTEGER (-2048..2047),
+ sbasAgf1 INTEGER (-128..127)
+}
+
+-- GANSS Real-Time Integrity IE
+GANSSRealTimeIntegrity ::= SEQUENCE {
+ -- list of satellites with bad signals
+ -- NBS can be read from number of elements in SeqOf-BadSignalSet
+ ganssBadSignalList SeqOfBadSignalElement
+}
+
+SeqOfBadSignalElement ::= SEQUENCE (SIZE(1..16)) OF BadSignalElement
+
+BadSignalElement ::= SEQUENCE {
+ badSVID SVID, -- Coding according to Annex
+ badSignalID GANSSSignals OPTIONAL -- Coding according to Annex
+}
+
+-- GANSS Data Bit Assistance IE
+GANSSDataBitAssist ::= SEQUENCE {
+ ganssTOD INTEGER (0 .. 59),
+ -- N_SAT can be read from number of elements in SeqOfGanssDataBitsElement
+ ganssDataBitsSatList SeqOfGanssDataBitsElement,
+ ...
+}
+
+SeqOfGanssDataBitsElement ::= SEQUENCE (SIZE(1 .. 32))OF GanssDataBitsElement
+
+GanssDataBitsElement ::= SEQUENCE {
+ svID SVID,
+ -- N_SGN can be read from number of elements in Seq-OfGANSSDataBitsSgn
+ ganssDataBitsSgnList Seq-OfGANSSDataBitsSgn,
+ ...
+}
+
+Seq-OfGANSSDataBitsSgn ::= SEQUENCE (SIZE(1..8)) OF GANSSDataBitsSgnElement
+
+GANSSDataBitsSgnElement ::= SEQUENCE {
+ ganssSignalType GANSSSignalID,
+ -- N_BIT can be read from number of elements in SeqOf-DataBits
+ ganssDataBits SeqOf-GANSSDataBits,
+ ...
+}
+
+SeqOf-GANSSDataBits ::= SEQUENCE (SIZE(1 .. 1024)) OF GANSSDataBit
+GANSSDataBit ::= INTEGER(0 .. 1)
+
+-- GANSS Reference Measurement Assistance IE
+-- Code and Doppler assistance from the network.
+GANSSRefMeasurementAssist ::= SEQUENCE {
+ ganssSignalID GANSSSignalID, -- Coding according to Annex
+ ganssRefMeasAssistList SeqOfGANSSRefMeasurementElement
+}
+
+SeqOfGANSSRefMeasurementElement ::= SEQUENCE (SIZE(1 .. 16)) OF GANSSRefMeasurementElement
+
+GANSSRefMeasurementElement ::= SEQUENCE {
+ svID SVID,
+ -- Doppler 0th order term,
+ -- -1024 m/s to 1023.5 m/s with 0.5 m/s resolution)
+ doppler0 INTEGER (-2048 .. 2047), -- Coding according to Annex
+ additionalDoppler AdditionalDopplerFields OPTIONAL,
+ codePhase INTEGER (0 .. 1022), -- Code Phase in ms
+ intCodePhase INTEGER (0 .. 127), -- Integer Code Phase in ms
+ codePhaseSearchWindow INTEGER (0 .. 31), -- Code Phase Search Window, see Annex
+ additionalAngle AddionalAngleFields OPTIONAL,
+ ...
+}
+
+AdditionalDopplerFields ::= SEQUENCE {
+ -- Doppler 1st order term, -0.2 - +0.1 m/s2
+ -- ( = -42 + (0 to 63) with 1/210 m/s2 resolution)
+ doppler1 INTEGER (0..63),
+ dopplerUncertainty INTEGER (0..4)
+}
+-- GANSS Reference Measurement Rel-10 Extension:
+-- GANSSRefMeasurementAssist-R10-Ext shall contain the same number of elements as the
+-- SeqOfGANSSRefMeasurementElement included in GANSSRefMeasurementAssist IE
+GANSSRefMeasurementAssist-R10-Ext ::= SEQUENCE (SIZE(1 .. 16)) OF
+ GANSSRefMeasurement-R10-Ext-Element
+
+GANSSRefMeasurement-R10-Ext-Element ::= SEQUENCE {
+ svID SVID,
+ azimuthLSB INTEGER(0..15),
+ elevationLSB INTEGER(0..15)
+}
+
+-- GANSS Almanac Model IE
+GANSSAlmanacModel ::= SEQUENCE {
+ weekNumber INTEGER (0 .. 255),
+ toa INTEGER (0 .. 255) OPTIONAL,
+ ioda INTEGER (0 .. 3) OPTIONAL,
+ ganssAlmanacList SeqOfGANSSAlmanacElement
+}
+
+
+SeqOfGANSSAlmanacElement ::= SEQUENCE (SIZE(1 .. 36)) OF GANSSAlmanacElement
+
+-- GANSS Almanac Model
+GANSSAlmanacElement ::= CHOICE {
+ keplerianAlmanacSet Almanac-KeplerianSet, -- Model-1
+ ...,
+ keplerianNAVAlmanac Almanac-NAVKeplerianSet, -- Model-2
+ keplerianReducedAlmanac Almanac-ReducedKeplerianSet, -- Model-3
+ keplerianMidiAlmanac Almanac-MidiAlmanacSet, -- Model-4
+ keplerianGLONASS Almanac-GlonassAlmanacSet, -- Model-5
+ ecefSBASAlmanac Almanac-ECEFsbasAlmanacSet -- Model-6
+}
+
+-- Almanac parameters according to Keplerian parameters
+Almanac-KeplerianSet ::= SEQUENCE {
+ svID SVID,
+ kepAlmanacE INTEGER (0 .. 2047),
+ kepAlmanacDeltaI INTEGER (-1024 .. 1023),
+ kepAlmanacOmegaDot INTEGER (-1024 .. 1023),
+ kepSVHealth INTEGER (0 .. 15), -- Coding according to Annex
+ kepAlmanacAPowerHalf INTEGER (-65536 .. 65535),
+ kepAlmanacOmega0 INTEGER (-32768 .. 32767),
+ kepAlmanacW INTEGER (-32768 .. 32767),
+ kepAlmanacM0 INTEGER (-32768 .. 32767),
+ kepAlmanacAF0 INTEGER (-8192 .. 8191),
+ kepAlmanacAF1 INTEGER (-1024..1023)
+}
+
+Almanac-NAVKeplerianSet ::= SEQUENCE {
+ svID SVID,
+ navAlmE INTEGER (0..65535),
+ navAlmDeltaI INTEGER (-32768..32767),
+ navAlmOMEGADOT INTEGER (-32768..32767),
+ navAlmSVHealth INTEGER (0..255),
+ navAlmSqrtA INTEGER (0..16777215),
+ navAlmOMEGAo INTEGER (-8388608..8388607),
+ navAlmOmega INTEGER (-8388608..8388607),
+ navAlmMo INTEGER (-8388608..8388607),
+ navAlmaf0 INTEGER (-1024..1023),
+ navAlmaf1 INTEGER (-1024..1023)
+}
+
+Almanac-ReducedKeplerianSet ::= SEQUENCE {
+ svID SVID,
+ redAlmDeltaA INTEGER (-128..127),
+ redAlmOmega0 INTEGER (-64..63),
+ redAlmPhi0 INTEGER (-64..63),
+ redAlmL1Health BOOLEAN,
+ redAlmL2Health BOOLEAN,
+ redAlmL5Health BOOLEAN
+}
+
+Almanac-MidiAlmanacSet ::= SEQUENCE {
+ svID SVID,
+ midiAlmE INTEGER (0..2047),
+ midiAlmDeltaI INTEGER (-1024..1023),
+ midiAlmOmegaDot INTEGER (-1024..1023),
+ midiAlmSqrtA INTEGER (0..131071),
+ midiAlmOmega0 INTEGER (-32768..32767),
+ midiAlmOmega INTEGER (-32768..32767),
+ midiAlmMo INTEGER (-32768..32767),
+ midiAlmaf0 INTEGER (-1024..1023),
+ midiAlmaf1 INTEGER (-512..511),
+ midiAlmL1Health BOOLEAN,
+ midiAlmL2Health BOOLEAN,
+ midiAlmL5Health BOOLEAN
+}
+
+Almanac-GlonassAlmanacSet ::= SEQUENCE {
+ gloAlmNA INTEGER (1..1461),
+ gloAlmnA INTEGER (1..24),
+ gloAlmHA INTEGER (0..31),
+ gloAlmLambdaA INTEGER (-1048576..1048575),
+ gloAlmtlambdaA INTEGER (0..2097151),
+ gloAlmDeltaIa INTEGER (-131072..131071),
+ gloAlmDeltaTA INTEGER (-2097152..2097151),
+ gloAlmDeltaTdotA INTEGER (-64..63),
+ gloAlmEpsilonA INTEGER (0..32767),
+ gloAlmOmegaA INTEGER (-32768..32767),
+ gloAlmTauA INTEGER (-512..511),
+ gloAlmCA INTEGER (0..1),
+ gloAlmMA BIT STRING (SIZE(2)) OPTIONAL
+}
+
+Almanac-ECEFsbasAlmanacSet ::= SEQUENCE {
+ sbasAlmDataID INTEGER (0..3),
+ svID SVID,
+ sbasAlmHealth BIT STRING (SIZE(8)),
+ sbasAlmXg INTEGER (-16384..16383),
+ sbasAlmYg INTEGER (-16384..16383),
+ sbasAlmZg INTEGER (-256..255),
+ sbasAlmXgdot INTEGER (-4..3),
+ sbasAlmYgDot INTEGER (-4..3),
+ sbasAlmZgDot INTEGER (-8..7),
+ sbasAlmTo INTEGER (0..2047)
+}
+
+-- GANSS Almanac Model Rel-10 Extension
+GANSSAlmanacModel-R10-Ext ::= SEQUENCE {
+ completeAlmanacProvided BOOLEAN -- TRUE means that complete Almanac is provided
+}
+
+-- GANSS Universal Time Coordinate Model (Model-1)
+GANSSUTCModel ::= SEQUENCE {
+ ganssUtcA1 INTEGER (-8388608..8388607),
+ ganssUtcA0 INTEGER (-2147483648..2147483647),
+ ganssUtcTot INTEGER (0..255),
+ ganssUtcWNt INTEGER (0..255),
+ ganssUtcDeltaTls INTEGER (-128..127),
+ ganssUtcWNlsf INTEGER (0..255),
+ ganssUtcDN INTEGER (-128..127),
+ ganssUtcDeltaTlsf INTEGER (-128..127)
+}
+
+--GANSS Ephemeris Extension
+GANSSEphemerisExtension ::= SEQUENCE {
+ ganssEphemerisHeader GANSSEphemerisExtensionHeader OPTIONAL,
+ ganssReferenceSet SeqOfGANSSRefOrbit OPTIONAL,
+ ganssephemerisDeltasMatrix GANSSEphemerisDeltaMatrix OPTIONAL,
+...
+}
+
+-- The ganssEphemerisHeader and the ganssReferenceSet are mandatory only once in the delivery of the
+-- GANSS Ephemeris Extension. The ganssReferenceSet shall include all healthy satellite vehicles
+-- at the time of message construction.
+
+GANSSEphemerisExtensionHeader ::= SEQUENCE {
+ timeAtEstimation GANSSEphemerisExtensionTime,
+ validityPeriod INTEGER(1..8),
+-- The validity period, represented in hours, is the validity period of each individual ephemeris
+-- delta payload
+ ephemerisExtensionDuration INTEGER(1..512),
+-- If the ephemerisExtensionDuration does not match the request duration made by the MS, the MS
+-- should regard the provided ephemerisExtensionDuration as the limit of the SMLC ephemeris
+-- extension capability at this time.
+...
+}
+
+GANSSEphemerisExtensionTime ::= SEQUENCE {
+ ganssEphExtDay INTEGER(0..8191),
+ ganssEphExtTOD GANSSTOD,
+...
+}
+
+-- Reference Nav Model for Ephepmeris Extension
+ReferenceNavModel ::= SEQUENCE {
+ keplerToe INTEGER (0..37799),
+ keplerW INTEGER (-2147483648..2147483647),
+ keplerDeltaN INTEGER (-32768..32767),
+ keplerM0 INTEGER (-2147483648..2147483647),
+ keplerOmegaDot INTEGER (-8388608..8388607),
+ keplerE INTEGER (0..4294967295),
+ keplerIDot INTEGER (-8192..8191),
+ keplerAPowerHalf INTEGER (0.. 4294967295),
+ keplerI0 INTEGER (-2147483648..2147483647),
+ keplerOmega0 INTEGER (-2147483648..2147483647),
+ keplerCrs INTEGER (-32768..32767),
+ keplerCis INTEGER (-32768..32767),
+ keplerCus INTEGER (-32768..32767),
+ keplerCrc INTEGER (-32768..32767),
+ keplerCic INTEGER (-32768..32767),
+ keplerCuc INTEGER (-32768..32767)
+}
+
+SeqOfGANSSRefOrbit ::= SEQUENCE (SIZE(1..32)) OF GANSSReferenceOrbit
+--The number of reference orbits can be read from number of elements in this sequence
+
+GANSSReferenceOrbit ::= SEQUENCE {
+ svID SVID,
+ ganssOrbitModel ReferenceNavModel,
+ ganssClockModel GANSSClockModel,
+...
+}
+
+GANSSEphemerisDeltaMatrix ::= SEQUENCE (SIZE(1 .. 128)) OF GANSSEphemerisDeltaEpoch
+
+GANSSEphemerisDeltaEpoch ::= SEQUENCE {
+ ganssDeltaEpochHeader GANSSDeltaEpochHeader OPTIONAL,
+ ganssDeltaElementList GANSSDeltaElementList,
+...
+}
+-- Each GANSSDeltaEpoch element contains a header and the delta values for a particular time window
+-- for all PRN's.
+
+GANSSDeltaEpochHeader ::= SEQUENCE {
+ validityPeriod INTEGER(1..8) OPTIONAL,
+ ephemerisDeltaSizes GANSSEphemerisDeltaBitSizes OPTIONAL,
+ ephemerisDeltaScales GANSSEphemerisDeltaScales OPTIONAL,
+...
+}
+-- In each of the GANSSDeltaEpochs, if the optional element, validityPeriod is not included, the
+-- value in GANSSEphemerisExtensionHeader shall be used. If the optional elements
+-- ephemerisDeltaSizes or ephemerisDeltaScales are not included, then the default ephemeris delta
+-- sizes and scales shall be used. The default sizes and scales are found in the annex in the
+-- table 55.11.
+
+GANSSDeltaElementList ::= SEQUENCE (SIZE(1 .. 32)) OF OCTET STRING(SIZE (1..49))
+-- Each octet string element in GANSSDeltaElementList corresponds to one PRN within one epoch
+
+-- Table 55.11 of the annex shows the organization of the delta ephemeris octet string.
+-- Decoding of each of the octet strings is accomplished by consulting the ephemerisDeltaSizes
+-- table to learn the length and order of each of the parameters in the ephemerisDelta payload.
+
+-- Post decode scaling is accomplished by consulting the ephemerisDeltaScales table to learn the
+-- scale factors to apply to the terms in the delta ephemeris.
+
+-- Ephemeris Delta Bit Sizes.
+
+GANSSEphemerisDeltaBitSizes ::= SEQUENCE {
+
+-- This structure defines the order and sizes of the fields in the GANSSDeltaEpoch octet string
+-- seqNum and svID are the first two elements of each GANSS Ephemeris Delta Element Structure
+-- seqNum is always 7 bits, and svID is always 6 bits long and are thus not included in
+-- the GANSSEphemerisDeltaBitSizes table. The value of seqNum indicates the GANSSDeltaEpoch number
+
+-- The Ephemeris delta element payload mimics the bitsize table, but also includes the svID and
+-- seqNum as the first two elements (in that order),in each block.
+
+ bitsize-delta-omega INTEGER(1..32),
+ bitsize-delta-deltaN INTEGER(1..16),
+ bitsize-delta-m0 INTEGER(1..32),
+ bitsize-delta-omegadot INTEGER(1..24),
+ bitsize-delta-e INTEGER(1..32),
+ bitsize-delta-idot INTEGER(1..14),
+ bitsize-delta-sqrtA INTEGER(1..32),
+ bitsize-delta-i0 INTEGER(1..32),
+ bitsize-delta-omega0 INTEGER(1..32),
+ bitsize-delta-crs INTEGER(1..16),
+ bitsize-delta-cis INTEGER(1..16),
+ bitsize-delta-cus INTEGER(1..16),
+ bitsize-delta-crc INTEGER(1..16),
+ bitsize-delta-cic INTEGER(1..16),
+ bitsize-delta-cuc INTEGER(1..16),
+ bitsize-delta-tgd1 INTEGER(1..10),
+ bitsize-delta-tgd2 INTEGER(1..10),
+...
+}
+
+GANSSEphemerisDeltaScales ::= SEQUENCE {
+
+ scale-delta-omega INTEGER(-16..15),
+ scale-delta-deltaN INTEGER(-16..15),
+ scale-delta-m0 INTEGER(-16..15),
+ scale-delta-omegadot INTEGER(-16..15),
+ scale-delta-e INTEGER(-16..15),
+ scale-delta-idot INTEGER(-16..15),
+ scale-delta-sqrtA INTEGER(-16..15),
+ scale-delta-i0 INTEGER(-16..15),
+ scale-delta-omega0 INTEGER(-16..15),
+ scale-delta-crs INTEGER(-16..15),
+ scale-delta-cis INTEGER(-16..15),
+ scale-delta-cus INTEGER(-16..15),
+ scale-delta-crc INTEGER(-16..15),
+ scale-delta-cic INTEGER(-16..15),
+ scale-delta-cuc INTEGER(-16..15),
+ scale-delta-tgd1 INTEGER(-16..15),
+ scale-delta-tgd2 INTEGER(-16..15),
+...
+}
+
+-- GANSS Ephemeris Extension Check
+GANSSEphemerisExtensionCheck ::= SEQUENCE {
+ ganssBeginTime GANSSEphemerisExtensionTime,
+ ganssEndTime GANSSEphemerisExtensionTime,
+ ganssSatEventsInfo GANSSSatEventsInfo,
+...
+}
+
+GANSSSatEventsInfo ::= SEQUENCE {
+ eventOccured BIT STRING (SIZE (64)),
+ futureEventNoted BIT STRING (SIZE (64)),
+...
+}
+-- If a bit is clear in the eventOccured field it indicates that no known errors have occured
+-- between the current time and the ganssBeginTime nor is a maneuver planned for the next sixty
+-- minutes.
+-- If a bit is set in the futureEventNoted field it indicates that a maneuver is planned during the
+-- time period between current time plus sixty minutes and the ganssEndTime
+-- GANSS Additional Universal Time Coordinate Model
+GANSSAddUTCModel ::= CHOICE {
+ utcModel2 UTCmodelSet2,
+ utcModel3 UTCmodelSet3,
+ utcModel4 UTCmodelSet4,
+ ...
+}
+
+UTCmodelSet2 ::= SEQUENCE {
+ utcA0 INTEGER (-32768..32767),
+ utcA1 INTEGER (-4096.. 4095),
+ utcA2 INTEGER (-64..63),
+ utcDeltaTls INTEGER (-128.. 127),
+ utcTot INTEGER (0..65535),
+ utcWNot INTEGER (0..8191),
+ utcWNlsf INTEGER (0..255),
+ utcDN BIT STRING (SIZE(4)),
+ utcDeltaTlsf INTEGER (-128..127)
+}
+
+UTCmodelSet3 ::= SEQUENCE {
+ nA INTEGER (1..1461),
+ tauC INTEGER (-2147483648..2147483647),
+ b1 INTEGER (-1024..1023) OPTIONAL,
+ b2 INTEGER (-512..511) OPTIONAL,
+ kp BIT STRING (SIZE(2)) OPTIONAL
+}
+
+UTCmodelSet4 ::= SEQUENCE {
+ utcA1wnt INTEGER (-8388608..8388607),
+ utcA0wnt INTEGER (-2147483648..2147483647),
+ utcTot INTEGER (0..255),
+ utcWNt INTEGER (0..255),
+ utcDeltaTls INTEGER (-128..127),
+ utcWNlsf INTEGER (0..255),
+ utcDN INTEGER (-128..127),
+ utcDeltaTlsf INTEGER (-128..127),
+ utcStandardID INTEGER (0..7) -- coding according to annex
+}
+
+-- GANSS Auxiliary Information
+GANSSAuxiliaryInformation ::= CHOICE{
+ ganssID1 GANSS-ID1, -- This choice may only be present if GANSS ID indicates Modernized GPS
+ ganssID3 GANSS-ID3, -- This choice may only be present if GANSS ID indicates GLONASS
+ ...
+}
+
+GANSS-ID1 ::= SEQUENCE (SIZE(1..64)) OF GANSS-ID1-element
+
+GANSS-ID1-element ::= SEQUENCE {
+ svID SVID,
+ signalsAvailable GANSSSignals,
+ ...
+}
+
+GANSS-ID3 ::= SEQUENCE (SIZE(1..64)) OF GANSS-ID3-element
+
+GANSS-ID3-element ::= SEQUENCE {
+ svID SVID,
+ signalsAvailable GANSSSignals,
+ channelNumber INTEGER (-7..13),
+ ...
+}
+
+-- DGANSS Corrections Validity Period:
+-- This element may only be included if GANSSDiffCorrections IE is included in
+-- GANSSGenericAssistDataElement element.
+-- GANSSDiffCorrectionsValidityPeriod shall contain the same number of elements as the
+-- SeqOfSgnTypeElement included in GANSSDiffCorrections IE
+GANSSDiffCorrectionsValidityPeriod ::= SEQUENCE (SIZE (1..3)) OF DGANSSExtensionSgnTypeElement
+
+DGANSSExtensionSgnTypeElement ::= SEQUENCE {
+ ganssSignalID GANSSSignalID, -- signal type identity
+ dganssExtensionSgnList SeqOfDGANSSExtensionSgnElement
+}
+
+-- SeqOfDGANSSExtensionSgnElement shall contain the same number of elements as the
+-- SeqOfDGANSSSgnElement included in GANSSDiffCorrections IE
+SeqOfDGANSSExtensionSgnElement ::= SEQUENCE (SIZE (1..16)) OF DGANSSExtensionSgnElement
+
+DGANSSExtensionSgnElement ::= SEQUENCE {
+ svID SVID, -- Satellite identity
+ udreGrowthRate INTEGER(0..7), -- coding according to annex
+ udreValidityTime INTEGER(0..7), -- coding according to annex
+ ...
+}
+
+--Required Measurement Request Response Time, range is 1 to 128 seconds.
+RequiredResponseTime ::= INTEGER (1..128)
+
+-- Control header for additional GPS assistance data
+Add-GPS-AssistData ::= SEQUENCE {
+ add-GPS-controlHeader Add-GPS-ControlHeader
+}
+
+Add-GPS-ControlHeader ::= SEQUENCE {
+ gpsEphemerisExtension GPSEphemerisExtension OPTIONAL,
+ gpsEphemerisExtensionCheck GPSEphemerisExtensionCheck OPTIONAL,
+ ... ,
+ dgpsCorrectionsValidityPeriod DGPSCorrectionsValidityPeriod OPTIONAL,
+ -- If ReferenceTime is included in ControlHeader, GPSReferenceTime-R10-Ext
+ -- shall also be included.
+ gpsReferenceTime-R10-Ext GPSReferenceTime-R10-Ext OPTIONAL,
+ -- If AcquisAssist is included in ControlHeader, GPSAcquisAssist-R10-Ext
+ -- shall also be included.
+ gpsAcquisAssist-R10-Ext GPSAcquisAssist-R10-Ext OPTIONAL,
+ -- If Almanac is included in ControlHeader, GPSAlmanac-R10-Ext
+ -- shall also be included.
+ gpsAlmanac-R10-Ext GPSAlmanac-R10-Ext OPTIONAL
+}
+
+GPSClockModel ::= SEQUENCE {
+ af2 INTEGER (-128..127),
+ af1 INTEGER (-32768..32767),
+ af0 INTEGER (-2097152..2097151),
+ tgd INTEGER (-128..127)
+}
+
+--GPS Ephemeris Extension
+GPSEphemerisExtension ::= SEQUENCE {
+ gpsEphemerisHeader GPSEphemerisExtensionHeader OPTIONAL,
+ gpsReferenceSet SeqOfGPSRefOrbit OPTIONAL,
+ gpsephemerisDeltaMatrix GPSEphemerisDeltaMatrix OPTIONAL,
+...
+}
+
+-- The gpsEphemerisHeader and the gpsReferenceSet are mandatory only once in the delivery of the
+-- GPS Ephemeris Extension. The gpsReferenceSet shall include all healthy satellite vehicles at the
+-- time of message construction
+
+-- The SMLC is required to deliver the gpsReferenceSet for all healthy satellite vehicles
+-- at the time of message construction.
+
+GPSEphemerisExtensionHeader ::= SEQUENCE {
+ timeofEstimation GPSEphemerisExtensionTime,
+ validityPeriod INTEGER(1..8),
+-- The validity period, represented in hours is the validity period of each individual ephemeris
+-- delta payload
+ ephemerisExtensionDuration INTEGER(1..512),
+-- If the ephemerisExtensionDuration does not match the request duration made by the MS, the MS
+-- should regard the provided ephemerisExtensionDuration as the limit of the SMLC ephemeris
+-- extension capability at this time.
+...
+}
+
+GPSEphemerisExtensionTime ::= SEQUENCE {
+ gpsWeek GPSWeek,
+ gpsTOW INTEGER (0..604799),
+...
+}
+
+SeqOfGPSRefOrbit ::= SEQUENCE (SIZE(1..32)) OF GPSReferenceOrbit
+--The number of reference orbits can be read from number of elements in this sequence
+
+GPSReferenceOrbit ::= SEQUENCE {
+ svID SVID,
+ gpsOrbitModel ReferenceNavModel,
+ gpsClockModel GPSClockModel,
+...
+}
+
+GPSEphemerisDeltaMatrix ::= SEQUENCE (SIZE(1 .. 128)) OF GPSEphemerisDeltaEpoch
+
+GPSEphemerisDeltaEpoch ::= SEQUENCE {
+ gpsDeltaEpochHeader GPSDeltaEpochHeader OPTIONAL,
+ gpsDeltaElementList GPSDeltaElementList,
+...
+}
+
+-- Each GPSDeltaEpoch element contains a header and the delta values for a particular time window
+-- for all PRN's.
+GPSDeltaEpochHeader ::= SEQUENCE {
+ validityPeriod INTEGER(1..8) OPTIONAL,
+ ephemerisDeltaSizes GPSEphemerisDeltaBitSizes OPTIONAL,
+ ephemerisDeltaScales GPSEphemerisDeltaScales OPTIONAL,
+...
+}
+
+-- In each of the GPSDeltaEpochs, if the optional element validityPeriod is not included,
+-- the value in GPSEphemerisExtensionHeader shall be used. if the optional elements
+-- ephemerisDeltaSizes or ephemerisDeltaScales are not included, then the default ephemeris delta
+-- sizes and scales shall be used. The default sizes and scales are found in the annex in section
+-- A.29.m
+
+GPSDeltaElementList ::= SEQUENCE (SIZE(1 .. 32)) OF OCTET STRING(SIZE (1..47))
+
+-- Each octet string element in GPSDeltaElementList corresponds to one PRN within one epoch
+
+-- Table A.29.m of the annex shows the organization of the delta ephemeris octet string.
+-- Decoding of each of the octet strings is accomplished by consulting the ephemerisDeltaSizes
+-- table to learn the length and order of each of the parameters in the ephemerisDelta payload
+
+-- Post decode scaling is accomplished by consulting the ephemerisDeltaScales table to learn the.
+-- scale factors to apply to the terms in the delta ephemeris
+
+-- Ephemeris Delta Bit Sizes.
+
+GPSEphemerisDeltaBitSizes ::= SEQUENCE {
+
+-- This structure defines the order and sizes of the fields in the GPSsDeltaEpoch octet string
+-- seqNum and svID are the first two elements of each GPS Ephemeris Delta Element Structure
+-- seqNum is always 7 bits, and svID is always 5 bits long and are thus not included in
+-- the GPSEphemerisDeltaBitSizes table. seqNum indicates the GPSDeltaEpoch number.
+
+-- The Ephemeris delta element payload mimics the bitsize table, but also includes the svID and
+-- seqNum as the first two elements (in that order),in each block.
+
+ bitsize-delta-omega INTEGER(1..32),
+ bitsize-delta-deltaN INTEGER(1..16),
+ bitsize-delta-m0 INTEGER(1..32),
+ bitsize-delta-omegadot INTEGER(1..24),
+ bitsize-delta-e INTEGER(1..32),
+ bitsize-delta-idot INTEGER(1..14),
+ bitsize-delta-sqrtA INTEGER(1..32),
+ bitsize-delta-i0 INTEGER(1..32),
+ bitsize-delta-omega0 INTEGER(1..32),
+ bitsize-delta-crs INTEGER(1..16),
+ bitsize-delta-cis INTEGER(1..16),
+ bitsize-delta-cus INTEGER(1..16),
+ bitsize-delta-crc INTEGER(1..16),
+ bitsize-delta-cic INTEGER(1..16),
+ bitsize-delta-cuc INTEGER(1..16),
+ bitsize-delta-tgd INTEGER(1..10),
+...
+}
+
+GPSEphemerisDeltaScales ::= SEQUENCE {
+ scale-delta-omega INTEGER(-16..15),
+ scale-delta-deltaN INTEGER(-16..15),
+ scale-delta-m0 INTEGER(-16..15),
+ scale-delta-omegadot INTEGER(-16..15),
+ scale-delta-e INTEGER(-16..15),
+ scale-delta-idot INTEGER(-16..15),
+ scale-delta-sqrtA INTEGER(-16..15),
+ scale-delta-i0 INTEGER(-16..15),
+ scale-delta-omega0 INTEGER(-16..15),
+ scale-delta-crs INTEGER(-16..15),
+ scale-delta-cis INTEGER(-16..15),
+ scale-delta-cus INTEGER(-16..15),
+ scale-delta-crc INTEGER(-16..15),
+ scale-delta-cic INTEGER(-16..15),
+ scale-delta-cuc INTEGER(-16..15),
+ scale-delta-tgd INTEGER(-16..15),
+...
+}
+
+GPSEphemerisExtensionCheck ::= SEQUENCE {
+ gpsBeginTime GPSEphemerisExtensionTime,
+ gpsEndTime GPSEphemerisExtensionTime,
+ gpsSatEventsInfo GPSSatEventsInfo,
+...
+}
+
+GPSSatEventsInfo ::= SEQUENCE {
+ eventOccured BIT STRING (SIZE (32)),
+ futureEventNoted BIT STRING (SIZE (32)),
+...
+}
+-- If a bit is clear in the eventOccured field it indicates that no known errors have occured since
+-- the gpsBeginTime nor is a maneuver planned for the next sixty minutes.
+-- If a bit is set in the futureEventNoted field it indicates that a maneuver is planned during the
+-- time period between current time plus sixty minutes and gpsEndTime
+
+-- DGPS Corrections Validity Period:
+-- This element may only be included if DGPSCorrections IE is included in ControlHeader element.
+-- DGPSCorrectionsValidityPeriod shall contain the same number of elements as the SeqOfSatElement
+-- included in DGPSCorrections IE
+DGPSCorrectionsValidityPeriod ::= SEQUENCE (SIZE (1..16)) OF DGPSExtensionSatElement
+
+DGPSExtensionSatElement ::= SEQUENCE {
+ satelliteID SatelliteID,
+ udreGrowthRate INTEGER(0..7), -- coding according to annex
+ udreValidityTime INTEGER(0..7), -- coding according to annex
+ ...
+}
+
+-- GPS Reference Time Rel-10 Extension:
+GPSReferenceTime-R10-Ext ::= SEQUENCE {
+ gpsWeekCycleNumber INTEGER(0..7) -- coding according to annex
+}
+
+-- GPS Acquisition Assistance Rel-10 Extension:
+-- GPSAcquisAssist-R10-Ext shall contain the same number of elements as the SeqOfAcquisElement
+-- included in AcquisAssist IE
+GPSAcquisAssist-R10-Ext ::= SEQUENCE(SIZE (1..16)) OF GPSAcquisAssist-R10-Ext-Element
+
+GPSAcquisAssist-R10-Ext-Element::= SEQUENCE {
+ satelliteID SatelliteID,
+ azimuthLSB INTEGER(0..15),
+ elevationLSB INTEGER(0..15)
+}
+
+-- GPS Almanac Rel-10 Extension:
+GPSAlmanac-R10-Ext ::= SEQUENCE {
+ completeAlmanacProvided BOOLEAN -- TRUE means that complete Almanac is provided
+}
+
+Rel-7-MsrPosition-Rsp-Extension ::= SEQUENCE {
+
+ velEstimate VelocityEstimate OPTIONAL,
+ -- Horizontal Velocity
+ -- Horizontal with Vertical Velocity
+ -- Horizontal Velocity with Uncertainty
+ -- Horizontal with Vertical Velocity and Uncertainty
+ ganssLocationInfo GANSSLocationInfo OPTIONAL,
+ ganssMeasureInfo GANSSMeasureInfo OPTIONAL,
+ ...
+-- Further Release 7 extensions here
+}
+
+-- GANSS Location Information contains location estimate, time stamp with uncertainty
+-- and optionally Reference Frame field
+GANSSLocationInfo ::= SEQUENCE {
+ referenceFrame ReferenceFrame OPTIONAL, -- Reference Frame Number
+ ganssTODm GANSSTODm OPTIONAL, -- GNSS TOD modulo
+ ganssTODFrac INTEGER (0 .. 16384) OPTIONAL, -- Coding according to Annex
+ -- a value of 16384 shall not be encoded by the sender
+ -- the receiver shall consider a value of 16384 to be invalid data
+ ganssTODUncertainty GANSSTODUncertainty OPTIONAL, -- Coding according to Annex
+ ganssTimeID INTEGER (0 .. 7) OPTIONAL, -- Coding according to Annex
+ fixType FixType,
+ posData PositionData,
+ stationaryIndication INTEGER(0 .. 1) OPTIONAL, -- '0' if moving or motion not
+ -- known
+ -- Possible shapes carried in posEstimate are
+ -- ellipsoid point,
+ -- ellipsoid point with uncertainty circle
+ -- ellipsoid point with uncertainty ellipse
+ -- ellipsoid point with altitude and uncertainty ellipsoid
+ posEstimate Ext-GeographicalInformation,
+ ...
+}
+
+PositionData ::= BIT STRING {
+ e-otd (0),
+ gps (1),
+ galileo (2),
+ sbas (3),
+ modernizedGPS (4),
+ qzss (5),
+ glonass (6) } (SIZE (3..16))
+
+-- GANSS TOD modulo 1 hour
+GANSSTODm ::= INTEGER (0 .. 3599999)
+
+ReferenceFrame ::= SEQUENCE {
+ referenceFN INTEGER (0 .. 65535),
+ -- Note that applicable range for referenceFN is 0 - 42431
+ referenceFNMSB INTEGER (0 .. 63) OPTIONAL -- MSB of Reference Frame Number
+}
+
+-- GANSS Measurement Information
+GANSSMeasureInfo ::= SEQUENCE {
+ -- Measurement info elements
+ganssMsrSetList SeqOfGANSS-MsrSetElement
+}
+SeqOfGANSS-MsrSetElement ::= SEQUENCE (SIZE(1..3)) OF GANSS-MsrSetElement
+
+-- GANSS measurement information 1-3 times in a message
+GANSS-MsrSetElement ::= SEQUENCE {
+ referenceFrame ReferenceFrame OPTIONAL, -- Reference Frame Number
+ -- if ganssTODm is included, it is the GNSS specific system time of the GANSS reported
+ -- first in ganss-SgnTypeList. If GPS Measurement Information element is not included in
+ -- a Measure Position Response component, this field shall be present.
+ ganssTODm GANSSTODm OPTIONAL, -- GANSS TOD modulo 1 hour
+ deltaGANSSTOD INTEGER (0 .. 127) OPTIONAL,
+ ganssTODUncertainty GANSSTODUncertainty OPTIONAL, -- Coding according to Annex
+ --N_GANSS can be read from number of elements of SeqOfGANSS-MsrElement
+ ganss-MsrElementList SeqOfGANSS-MsrElement
+}
+
+SeqOfGANSS-MsrElement ::= SEQUENCE (SIZE(1..8)) OF GANSS-MsrElement
+
+GANSS-MsrElement ::= SEQUENCE {
+ ganssID INTEGER (0..7) OPTIONAL, --Absence means Galileo
+ ganss-SgnTypeList SeqOfGANSS-SgnTypeElement
+}
+
+-- Measurements can be returned up to 8 different signal types
+-- N_SGN_TYPE can be read from number of elements of SeqOfGANSS-SgnTypeElement
+-- Reporting of multiple signal types as defined in A.2.2.4g
+SeqOfGANSS-SgnTypeElement ::= SEQUENCE (SIZE(1..8)) OF GANSS-SgnTypeElement
+
+GANSS-SgnTypeElement ::= SEQUENCE {
+ ganssSignalID GANSSSignalID, -- Coding according to Annex
+ ganssCodePhaseAmbiguity INTEGER (0 .. 127) OPTIONAL,
+ --N_SGN can be read from number of elements of SeqOfGANSS-SgnElement
+ ganss-SgnList SeqOfGANSS-SgnElement,
+ ...
+}
+
+-- Up to 16 Measurements can be returned per signal type
+SeqOfGANSS-SgnElement ::= SEQUENCE (SIZE(1..16)) OF GANSS-SgnElement
+
+
+GANSS-SgnElement ::= SEQUENCE {
+ svID SVID,
+ cNo INTEGER (0 .. 63),
+ mpathDet MpathIndic, -- Coding according to Annex
+ carrierQualityInd INTEGER (0 .. 3) OPTIONAL, -- Coding according to Annex
+ codePhase INTEGER (0 .. 2097151),
+ integerCodePhase INTEGER (0 .. 127) OPTIONAL,
+ codePhaseRMSError INTEGER (0..63), -- Coding according to Annex
+ doppler INTEGER (-32768 .. 32767) OPTIONAL,
+ adr INTEGER (0 .. 33554431) OPTIONAL
+}
+
+Rel7-AssistanceData-Extension ::= SEQUENCE {
+ ganss-AssistData GANSS-AssistData OPTIONAL,
+ ganssCarrierPhaseMeasurementRequest NULL OPTIONAL,
+ ganssTODGSMTimeAssociationMeasurementRequest NULL OPTIONAL,
+ add-GPS-AssistData Add-GPS-AssistData OPTIONAL,
+ ...
+-- Possibly more extensions for Release 7 here
+}
+
+-- Rel-7 Positioning Capability parameters here
+
+PosCapabilities ::= SEQUENCE {
+
+-- nonGANSSpositionMethods shall be included if and only if any
+-- of the non-GANSS methods is supported.
+ nonGANSSpositionMethods NonGANSSPositionMethods OPTIONAL,
+
+-- gANSSpositionMethods shall be included if and only if any of the GANSS methods is supported.
+ gANSSPositionMethods GANSSPositionMethods OPTIONAL,
+
+-- multipleMeasurementSets shall be present if and only if 'multiple sets' is supported
+-- for any of the positioning methods
+ multipleMeasurementSets MultipleMeasurementSets OPTIONAL,
+ ...
+}
+
+NonGANSSPositionMethods ::= BIT STRING {
+ msAssistedEOTD (0),
+ msBasedEOTD (1),
+ msAssistedGPS (2), -- If this bit is set, gpsAssistance in AssistanceSupported IE
+ -- shall be present
+ msBasedGPS (3), -- If this bit is set, gpsAssistance in AssistanceSupported IE
+ -- shall be present
+
+ standaloneGPS (4) } (SIZE (1..16))
+
+GANSSPositionMethods ::= SEQUENCE (SIZE(1..16)) OF GANSSPositionMethod
+
+GANSSPositionMethod ::= SEQUENCE {
+ ganssID INTEGER (0..7) OPTIONAL, --Absence means Galileo
+-- gANSSPositioningMethodTypes may be present for PosCapability-Req
+-- and shall be present for PosCapability-Rsp
+ gANSSPositioningMethodTypes GANSSPositioningMethodTypes OPTIONAL,
+ gANSSSignals GANSSSignals,
+ ... ,
+-- sbasID shall be present if and only if ganssID indicates SBAS
+ sbasID SBASID OPTIONAL
+}
+
+GANSSPositioningMethodTypes ::= BIT STRING {
+ msAssisted (0), -- If this bit is set, gANSSAssistanceSet in AssistanceSupported IE
+ -- shall be present.
+ msBased (1), -- If this bit is set, gANSSAssistanceSet in AssistanceSupported IE
+ -- shall be present.
+ standalone (2) } (SIZE (1..8))
+
+-- indicates MS support for particular GANSS signals and frequencies
+GANSSSignals ::= BIT STRING {
+ signal1 (0),
+ signal2 (1),
+ signal3 (2),
+ signal4 (3),
+ signal5 (4),
+ signal6 (5),
+ signal7 (6),
+ signal8 (7) } (SIZE (1..8))
+
+SBASID ::= BIT STRING {
+ waas (0),
+ egnos (1),
+ masas (2),
+ gagan (3) } (SIZE (1..8))
+
+-- indicates MS support of multiple measurement sets for MS assisted position methods
+MultipleMeasurementSets ::= BIT STRING {
+ eotd (0),
+ gps (1),
+ ganss (2) } (SIZE (1..8))
+
+-- indicates MS support of different types of assistance data
+AssistanceSupported ::= SEQUENCE {
+ gpsAssistance GPSAssistance OPTIONAL,
+ gANSSAssistanceSet GANSSAssistanceSet OPTIONAL,
+ ... ,
+-- gANSSAdditionalAssistanceChoices shall be present if the MS supports other than native models
+ gANSSAdditionalAssistanceChoices GANSSAdditionalAssistanceChoices OPTIONAL
+}
+
+-- GPS assistance data supported
+GPSAssistance ::= BIT STRING {
+ almanac (0),
+ uTCmodel (1),
+ ionosphericModel (2),
+ navigationmodel (3),
+ dGPScorrections (4),
+ referenceLocation (5),
+ referenceTime (6),
+ acquisitionAssistance (7),
+ realTimeIntegrity (8),
+ ephemerisExtension (9),
+ ephemerisExtensionCheck (10)} (SIZE (1..16))
+
+-- GANSS assistance data supported
+GANSSAssistanceSet ::= SEQUENCE {
+ commonGANSSAssistance CommonGANSSAssistance,
+ specificGANSSAssistance SpecificGANSSAssistance,
+ ...
+}
+
+-- Common GANSS assistance data supported
+CommonGANSSAssistance ::= BIT STRING {
+ referenceTime (0),
+ referenceLocation (1),
+ ionosphericModel (3),
+ addIonosphericModel (4),
+ earthOrientationParam (5) } (SIZE (1..8))
+
+SpecificGANSSAssistance ::= SEQUENCE (SIZE(1..16)) OF GANSSAssistanceForOneGANSS
+
+-- assistance data supported for a particular GANSS system
+GANSSAssistanceForOneGANSS ::= SEQUENCE {
+ ganssID INTEGER (0..7) OPTIONAL, --Absence means Galileo
+ gANSSAssistance GANSSAssistance,
+ ...
+}
+
+-- specific GANSS assistance data supported
+GANSSAssistance ::= BIT STRING {
+ realTimeIntegrity (0),
+ differentialCorrections (1),
+ almanac (2),
+ referenceMeasurementInformation (3),
+ navigationModel (4),
+ timeModelGNSS-UTC (5),
+ timeModelGNSS-GNSS (6),
+ databitassistance (7),
+ ephemerisExtension (8),
+ ephemerisExtensionCheck (9),
+ addUTCmodel (10),
+ auxiliaryInformation (11) } (SIZE (1..16))
+
+
+GANSSAdditionalAssistanceChoices ::= SEQUENCE (SIZE(1..16)) OF GANSSAdditionalAssistanceChoicesForOneGANSS
+
+GANSSAdditionalAssistanceChoicesForOneGANSS ::= SEQUENCE {
+ ganssID INTEGER (0..7) OPTIONAL, --Absence means Galileo
+ ganssClockModelChoice GANSSModelID OPTIONAL,
+ gannsOrbitModelChoice GANSSModelID OPTIONAL,
+ ganssAlmanacModelChoice GANSSModelID OPTIONAL,
+ ganssAdditionalUTCModelChoice GANSSModelID OPTIONAL,
+ ...
+}
+
+GANSSModelID ::= BIT STRING {
+ model1 (0),
+ model2 (1),
+ model3 (2),
+ model4 (3),
+ model5 (4),
+ model6 (5),
+ model7 (6),
+ model8 (7) } (SIZE (1..8))
+
+
+-- indicates assistance data that may be needed by the MS
+-- These elements are coded as defined in TS 49.031 with the exceptions defined in section A.8.2.3
+AssistanceNeeded ::= SEQUENCE {
+ gpsAssistanceData GPSAssistanceData OPTIONAL,
+ ganssAssistanceData GANSSAssistanceData OPTIONAL,
+ ...
+}
+
+END
diff --git a/epan/dissectors/asn1/rrlp/RRLP-Messages.asn b/epan/dissectors/asn1/rrlp/RRLP-Messages.asn
new file mode 100644
index 0000000000..8c4bdc8445
--- /dev/null
+++ b/epan/dissectors/asn1/rrlp/RRLP-Messages.asn
@@ -0,0 +1,39 @@
+-- RRLP-Messages.asn
+-- Taken from 3GPP TS 44.031 V11.0.0 (2012-09)
+-- http://www.3gpp.org/ftp/Specs/archive/44_series/44.031/44031-b00.zip/44031-b00.doc
+--
+-- 3.1 General Format of RRLP Message
+--
+
+RRLP-Messages
+-- { RRLP-messages }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ MsrPosition-Req, MsrPosition-Rsp, AssistanceData,
+ ProtocolError, PosCapability-Req, PosCapability-Rsp
+FROM
+ RRLP-Components -- { RRLP-Components }
+;
+
+PDU ::= SEQUENCE {
+ referenceNumber INTEGER (0..7),
+ component RRLP-Component
+}
+
+RRLP-Component ::= CHOICE {
+ msrPositionReq MsrPosition-Req,
+ msrPositionRsp MsrPosition-Rsp,
+ assistanceData AssistanceData,
+ assistanceDataAck NULL,
+ protocolError ProtocolError,
+ ...,
+ posCapabilityReq PosCapability-Req,
+ posCapabilityRsp PosCapability-Rsp
+}
+
+END
+
diff --git a/epan/dissectors/asn1/rrlp/packet-rrlp-template.c b/epan/dissectors/asn1/rrlp/packet-rrlp-template.c
new file mode 100644
index 0000000000..3a3f7911c8
--- /dev/null
+++ b/epan/dissectors/asn1/rrlp/packet-rrlp-template.c
@@ -0,0 +1,102 @@
+/* packet-rrlp.c
+ * Routines for 3GPP Radio Resource LCS Protocol (RRLP) packet dissection
+ * Copyright 2006, Anders Broman <anders.broman@ericsson.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Ref 3GPP TS 44.031 version 11.0.0 Release 11
+ * http://www.3gpp.org
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-per.h"
+#include "packet-gsm_a_common.h"
+
+#define PNAME "Radio Resource LCS Protocol (RRLP)"
+#define PSNAME "RRLP"
+#define PFNAME "rrlp"
+
+
+
+#ifdef _MSC_VER
+/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
+#pragma warning(disable:4146)
+#endif
+
+void proto_register_rrlp(void);
+void proto_reg_handoff_rrlp(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_rrlp = -1;
+
+
+#include "packet-rrlp-hf.c"
+
+/* Initialize the subtree pointers */
+static gint ett_rrlp = -1;
+#include "packet-rrlp-ett.c"
+
+/* Include constants */
+#include "packet-rrlp-val.h"
+
+
+#include "packet-rrlp-fn.c"
+
+
+/*--- proto_register_rrlp -------------------------------------------*/
+void proto_register_rrlp(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+
+#include "packet-rrlp-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_rrlp,
+#include "packet-rrlp-ettarr.c"
+ };
+
+
+ /* Register protocol */
+ proto_rrlp = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("rrlp", dissect_PDU_PDU, proto_rrlp);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_rrlp, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+
+}
+
+
+/*--- proto_reg_handoff_rrlp ---------------------------------------*/
+void
+proto_reg_handoff_rrlp(void)
+{
+
+}
+
+
diff --git a/epan/dissectors/asn1/rrlp/rrlp.cnf b/epan/dissectors/asn1/rrlp/rrlp.cnf
new file mode 100644
index 0000000000..25e1e693f8
--- /dev/null
+++ b/epan/dissectors/asn1/rrlp/rrlp.cnf
@@ -0,0 +1,40 @@
+# rrlp.cnf
+# rrlp conformation file
+# Copyright 2006 Anders Broman
+
+#.OPT
+PER
+UNALIGNED
+#.END
+
+#.PDU
+PDU
+
+#.OMIT_ASSIGNMENTS_EXCEPT MAP-LCS-DataTypes
+Ext-GeographicalInformation
+maxExt-GeographicalInformation
+VelocityEstimate
+#.END
+
+#.OMIT_ASSIGNMENT MAP-ExtensionDataTypes
+SLR-ArgExtensionContainer
+SLR-Arg-PCS-Extensions
+#.END
+
+#.FN_HDR PDU
+
+ proto_tree_add_item(tree, proto_rrlp, tvb, 0, -1, ENC_NA);
+
+ col_append_sep_str(actx->pinfo->cinfo, COL_PROTOCOL, "/", "RRLP");
+#.END
+
+
+#.FN_BODY Ext-GeographicalInformation VAL_PTR = &parameter_tvb
+
+tvbuff_t *parameter_tvb = NULL;
+
+ %(DEFAULT_BODY)s
+
+ if(parameter_tvb)
+ dissect_geographical_description(parameter_tvb, %(ACTX)s->pinfo, tree);
+#.END