aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomas Kukosa <tomas.kukosa@siemens.com>2007-05-18 12:53:55 +0000
committerTomas Kukosa <tomas.kukosa@siemens.com>2007-05-18 12:53:55 +0000
commit16c10108948a362fab61513c2d54ad182b7aa119 (patch)
treedb96ac560e428fd266cb024e226051d956dbcda3
parent16c4aa8e387ade8dd72213b879206b858e6d1ca5 (diff)
RRLP updated to 3GPP TS 44.031 V7.4.0 (2007-03)
svn path=/trunk/; revision=21825
-rw-r--r--asn1/Makefile.am6
-rw-r--r--asn1/gsmmap/MAP-ExtensionDataTypes.asn71
-rw-r--r--asn1/gsmmap/MAP-LCS-DataTypes.asn654
-rw-r--r--asn1/rrlp/Makefile7
-rw-r--r--asn1/rrlp/Makefile.nmake12
-rw-r--r--asn1/rrlp/RRLP-Components.asn1487
-rw-r--r--asn1/rrlp/RRLP-Messages.asn38
-rw-r--r--asn1/rrlp/packet-rrlp-template.c2
-rw-r--r--asn1/rrlp/packet-rrlp-template.h35
-rw-r--r--asn1/rrlp/rrlp.asn1052
-rw-r--r--asn1/rrlp/rrlp.cnf25
-rw-r--r--epan/dissectors/Makefile.common1
-rw-r--r--epan/dissectors/packet-rrlp.c2413
-rw-r--r--epan/dissectors/packet-rrlp.h43
14 files changed, 4644 insertions, 1202 deletions
diff --git a/asn1/Makefile.am b/asn1/Makefile.am
index af7c171887..3b6de9c429 100644
--- a/asn1/Makefile.am
+++ b/asn1/Makefile.am
@@ -124,6 +124,8 @@ EXTRA_DIST = \
gnm/packet-gnm-template.c \
gnm/packet-gnm-template.h \
gsmmap/GSMMAP.asn \
+ gsmmap/MAP-ExtensionDataTypes.asn \
+ gsmmap/MAP-LCS-DataTypes.asn \
gsmmap/gsmmap.cnf \
gsmmap/gsm_map-exp.cnf \
gsmmap/Makefile \
@@ -346,8 +348,8 @@ EXTRA_DIST = \
rrlp/Makefile \
rrlp/Makefile.nmake \
rrlp/packet-rrlp-template.c \
- rrlp/packet-rrlp-template.h \
- rrlp/rrlp.asn \
+ rrlp/RRLP-Messages.asn \
+ rrlp/RRLP-Components.asn \
rrlp/rrlp.cnf \
rtse/Makefile \
rtse/Makefile.nmake \
diff --git a/asn1/gsmmap/MAP-ExtensionDataTypes.asn b/asn1/gsmmap/MAP-ExtensionDataTypes.asn
new file mode 100644
index 0000000000..de581b0501
--- /dev/null
+++ b/asn1/gsmmap/MAP-ExtensionDataTypes.asn
@@ -0,0 +1,71 @@
+-- MAP-ExtensionDataTypes.asn
+--
+-- Taken from 3GPP TS 29.002 V8.1.0 (2007-03)
+-- http://www.3gpp.org/ftp/Specs/archive/29_series/29.002/29002-810.zip/29002-810.doc
+--
+-- 17.7.11 Extension data types
+--
+
+MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version11 (11)}
+
+DEFINITIONS
+
+IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+EXPORTS
+
+ PrivateExtension,
+ ExtensionContainer,
+ SLR-ArgExtensionContainer;
+
+-- IOC for private MAP extensions
+
+MAP-EXTENSION ::= CLASS {
+ &ExtensionType OPTIONAL,
+ &extensionId OBJECT IDENTIFIER }
+ -- The length of the Object Identifier shall not exceed 16 octets and the
+ -- number of components of the Object Identifier shall not exceed 16
+
+-- data types
+
+ExtensionContainer ::= SEQUENCE {
+ privateExtensionList [0]PrivateExtensionList OPTIONAL,
+ pcs-Extensions [1]PCS-Extensions OPTIONAL,
+ ...}
+
+SLR-ArgExtensionContainer ::= SEQUENCE {
+ privateExtensionList [0]PrivateExtensionList OPTIONAL,
+ slr-Arg-PCS-Extensions [1]SLR-Arg-PCS-Extensions OPTIONAL,
+ ...}
+
+PrivateExtensionList ::= SEQUENCE SIZE (1..maxNumOfPrivateExtensions) OF
+ PrivateExtension
+
+PrivateExtension ::= SEQUENCE {
+ extId MAP-EXTENSION.&extensionId
+ ({ExtensionSet}),
+ extType MAP-EXTENSION.&ExtensionType
+ ({ExtensionSet}{@extId}) OPTIONAL}
+
+maxNumOfPrivateExtensions INTEGER ::= 10
+
+ExtensionSet MAP-EXTENSION ::=
+ {...
+ -- ExtensionSet is the set of all defined private extensions
+ }
+ -- Unsupported private extensions shall be discarded if received.
+
+PCS-Extensions ::= SEQUENCE {
+ ...}
+
+SLR-Arg-PCS-Extensions ::= SEQUENCE {
+ ...,
+ na-ESRK-Request [0] NULL OPTIONAL }
+
+END
diff --git a/asn1/gsmmap/MAP-LCS-DataTypes.asn b/asn1/gsmmap/MAP-LCS-DataTypes.asn
new file mode 100644
index 0000000000..d4a5809ad6
--- /dev/null
+++ b/asn1/gsmmap/MAP-LCS-DataTypes.asn
@@ -0,0 +1,654 @@
+-- MAP-LCS-DataTypes.asn
+--
+-- Taken from 3GPP TS 29.002 V8.1.0 (2007-03)
+-- http://www.3gpp.org/ftp/Specs/archive/29_series/29.002/29002-810.zip/29002-810.doc
+--
+-- 17.7.13 Location service data types
+--
+
+MAP-LCS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-LCS-DataTypes (25) version11 (11)}
+
+DEFINITIONS
+IMPLICIT TAGS
+::=
+BEGIN
+
+EXPORTS
+ RoutingInfoForLCS-Arg,
+ RoutingInfoForLCS-Res,
+ ProvideSubscriberLocation-Arg,
+ ProvideSubscriberLocation-Res,
+ SubscriberLocationReport-Arg,
+ SubscriberLocationReport-Res,
+ LocationType,
+ DeferredLocationEventType,
+ LCSClientName,
+ LCS-QoS,
+ Horizontal-Accuracy,
+ ResponseTime,
+ Ext-GeographicalInformation,
+ VelocityEstimate,
+ SupportedGADShapes,
+ Add-GeographicalInformation,
+ LCSRequestorID,
+ LCS-ReferenceNumber,
+ LCSCodeword,
+ AreaEventInfo,
+ ReportingPLMNList,
+ PeriodicLDRInfo,
+ SequenceNumber
+;
+
+IMPORTS
+ AddressString,
+ ISDN-AddressString,
+ IMEI,
+ IMSI,
+ LMSI,
+ SubscriberIdentity,
+ AgeOfLocationInformation,
+ LCSClientExternalID,
+ LCSClientInternalID,
+ LCSServiceTypeID,
+ CellGlobalIdOrServiceAreaIdOrLAI,
+ PLMN-Id
+FROM MAP-CommonDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-CommonDataTypes (18) version11 (11)}
+
+ ExtensionContainer,
+ SLR-ArgExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version11 (11)}
+
+ USSD-DataCodingScheme,
+ USSD-String
+FROM MAP-SS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3)
+ map-SS-DataTypes (14) version11 (11)}
+
+ APN,
+ GSN-Address,
+ SupportedLCS-CapabilitySets
+FROM MAP-MS-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-MS-DataTypes (11) version11 (11)}
+
+ Additional-Number
+FROM MAP-SM-DataTypes {
+ itu-t identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-SM-DataTypes (16) version11 (11)}
+;
+
+RoutingInfoForLCS-Arg ::= SEQUENCE {
+ mlcNumber [0] ISDN-AddressString,
+ targetMS [1] SubscriberIdentity,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...}
+
+RoutingInfoForLCS-Res ::= SEQUENCE {
+ targetMS [0] SubscriberIdentity,
+ lcsLocationInfo [1] LCSLocationInfo,
+ extensionContainer [2] ExtensionContainer OPTIONAL,
+ ...,
+ v-gmlc-Address [3] GSN-Address OPTIONAL,
+ h-gmlc-Address [4] GSN-Address OPTIONAL,
+ ppr-Address [5] GSN-Address OPTIONAL,
+ additional-v-gmlc-Address [6] GSN-Address OPTIONAL }
+
+LCSLocationInfo ::= SEQUENCE {
+ networkNode-Number ISDN-AddressString,
+ -- NetworkNode-number can be either msc-number or sgsn-number
+ lmsi [0] LMSI OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... ,
+ gprsNodeIndicator [2] NULL OPTIONAL,
+ -- gprsNodeIndicator is set only if the SGSN number is sent as the Network Node Number
+ additional-Number [3] Additional-Number OPTIONAL,
+ supportedLCS-CapabilitySets [4] SupportedLCS-CapabilitySets OPTIONAL,
+ additional-LCS-CapabilitySets [5] SupportedLCS-CapabilitySets OPTIONAL
+ }
+
+ProvideSubscriberLocation-Arg ::= SEQUENCE {
+ locationType LocationType,
+ mlc-Number ISDN-AddressString,
+ lcs-ClientID [0] LCS-ClientID OPTIONAL,
+ privacyOverride [1] NULL OPTIONAL,
+ imsi [2] IMSI OPTIONAL,
+ msisdn [3] ISDN-AddressString OPTIONAL,
+ lmsi [4] LMSI OPTIONAL,
+ imei [5] IMEI OPTIONAL,
+ lcs-Priority [6] LCS-Priority OPTIONAL,
+ lcs-QoS [7] LCS-QoS OPTIONAL,
+ extensionContainer [8] ExtensionContainer OPTIONAL,
+ ... ,
+ supportedGADShapes [9] SupportedGADShapes OPTIONAL,
+ lcs-ReferenceNumber [10] LCS-ReferenceNumber OPTIONAL,
+ lcsServiceTypeID [11] LCSServiceTypeID OPTIONAL,
+ lcsCodeword [12] LCSCodeword OPTIONAL,
+ lcs-PrivacyCheck [13] LCS-PrivacyCheck OPTIONAL,
+ areaEventInfo [14] AreaEventInfo OPTIONAL,
+ h-gmlc-Address [15] GSN-Address OPTIONAL,
+ mo-lrShortCircuitIndicator [16] NULL OPTIONAL,
+ periodicLDRInfo [17] PeriodicLDRInfo OPTIONAL,
+ reportingPLMNList [18] ReportingPLMNList OPTIONAL }
+
+ -- one of imsi or msisdn is mandatory
+ -- If a location estimate type indicates activate deferred location or cancel deferred
+ -- location, a lcs-Reference number shall be included.
+
+LocationType ::= SEQUENCE {
+ locationEstimateType [0] LocationEstimateType,
+ ...,
+ deferredLocationEventType [1] DeferredLocationEventType OPTIONAL }
+
+LocationEstimateType ::= ENUMERATED {
+ currentLocation (0),
+ currentOrLastKnownLocation (1),
+ initialLocation (2),
+ ...,
+ activateDeferredLocation (3),
+ cancelDeferredLocation (4) ,
+ notificationVerificationOnly (5) }
+-- exception handling:
+-- a ProvideSubscriberLocation-Arg containing an unrecognized LocationEstimateType
+-- shall be rejected by the receiver with a return error cause of unexpected data value
+
+DeferredLocationEventType ::= BIT STRING {
+ msAvailable (0) ,
+ enteringIntoArea (1),
+ leavingFromArea (2),
+ beingInsideArea (3) ,
+ periodicLDR (4) } (SIZE (1..16))
+-- beingInsideArea is always treated as oneTimeEvent regardless of the possible value
+-- of occurrenceInfo inside areaEventInfo.
+-- exception handling:
+-- a ProvideSubscriberLocation-Arg containing other values than listed above in
+-- DeferredLocationEventType shall be rejected by the receiver with a return error cause of
+-- unexpected data value.
+
+LCS-ClientID ::= SEQUENCE {
+ lcsClientType [0] LCSClientType,
+ lcsClientExternalID [1] LCSClientExternalID OPTIONAL,
+ lcsClientDialedByMS [2] AddressString OPTIONAL,
+ lcsClientInternalID [3] LCSClientInternalID OPTIONAL,
+ lcsClientName [4] LCSClientName OPTIONAL,
+ ...,
+ lcsAPN [5] APN OPTIONAL,
+ lcsRequestorID [6] LCSRequestorID OPTIONAL }
+
+LCSClientType ::= ENUMERATED {
+ emergencyServices (0),
+ valueAddedServices (1),
+ plmnOperatorServices (2),
+ lawfulInterceptServices (3),
+ ... }
+ -- exception handling:
+ -- unrecognized values may be ignored if the LCS client uses the privacy override
+ -- otherwise, an unrecognized value shall be treated as unexpected data by a receiver
+ -- a return error shall then be returned if received in a MAP invoke
+
+LCSClientName ::= SEQUENCE {
+ dataCodingScheme [0] USSD-DataCodingScheme,
+ nameString [2] NameString,
+ ...,
+ lcs-FormatIndicator [3] LCS-FormatIndicator OPTIONAL }
+
+-- The USSD-DataCodingScheme shall indicate use of the default alphabet through the
+-- following encoding
+-- bit 7 6 5 4 3 2 1 0
+-- 0 0 0 0 1 1 1 1
+
+NameString ::= USSD-String (SIZE (1..maxNameStringLength))
+
+maxNameStringLength INTEGER ::= 63
+
+LCSRequestorID ::= SEQUENCE {
+ dataCodingScheme [0] USSD-DataCodingScheme,
+ requestorIDString [1] RequestorIDString,
+ ...,
+ lcs-FormatIndicator [2] LCS-FormatIndicator OPTIONAL }
+
+RequestorIDString ::= USSD-String (SIZE (1..maxRequestorIDStringLength))
+
+maxRequestorIDStringLength INTEGER ::= 63
+
+LCS-FormatIndicator ::= ENUMERATED {
+ logicalName (0),
+ e-mailAddress (1),
+ msisdn (2),
+ url (3),
+ sipUrl (4),
+ ... }
+
+LCS-Priority ::= OCTET STRING (SIZE (1))
+ -- 0 = highest priority
+ -- 1 = normal priority
+ -- all other values treated as 1
+
+LCS-QoS ::= SEQUENCE {
+ horizontal-accuracy [0] Horizontal-Accuracy OPTIONAL,
+ verticalCoordinateRequest [1] NULL OPTIONAL,
+ vertical-accuracy [2] Vertical-Accuracy OPTIONAL, responseTime [3] ResponseTime OPTIONAL,
+ extensionContainer [4] ExtensionContainer OPTIONAL,
+ ...,
+ velocityRequest [5] NULL OPTIONAL
+}
+
+Horizontal-Accuracy ::= OCTET STRING (SIZE (1))
+ -- bit 8 = 0
+ -- bits 7-1 = 7 bit Uncertainty Code defined in 3GPP TS 23.032. The horizontal location
+ -- error should be less than the error indicated by the uncertainty code with 67%
+ -- confidence.
+
+Vertical-Accuracy ::= OCTET STRING (SIZE (1))
+ -- bit 8 = 0
+ -- bits 7-1 = 7 bit Vertical Uncertainty Code defined in 3GPP TS 23.032.
+ -- The vertical location error should be less than the error indicated
+ -- by the uncertainty code with 67% confidence.
+
+ResponseTime ::= SEQUENCE {
+ responseTimeCategory ResponseTimeCategory,
+ ...}
+-- note: an expandable SEQUENCE simplifies later addition of a numeric response time.
+
+ResponseTimeCategory ::= ENUMERATED {
+ lowdelay (0),
+ delaytolerant (1),
+ ... }
+-- exception handling:
+-- an unrecognized value shall be treated the same as value 1 (delaytolerant)
+
+SupportedGADShapes ::= BIT STRING {
+ ellipsoidPoint (0),
+ ellipsoidPointWithUncertaintyCircle (1),
+ ellipsoidPointWithUncertaintyEllipse (2),
+ polygon (3),
+ ellipsoidPointWithAltitude (4),
+ ellipsoidPointWithAltitudeAndUncertaintyElipsoid (5),
+ ellipsoidArc (6) } (SIZE (7..16))
+-- A node shall mark in the BIT STRING all Shapes defined in 3GPP TS 23.032 it supports.
+-- exception handling: bits 7 to 15 shall be ignored if received.
+
+LCS-ReferenceNumber::= OCTET STRING (SIZE(1))
+
+LCSCodeword ::= SEQUENCE {
+ dataCodingScheme [0] USSD-DataCodingScheme,
+ lcsCodewordString [1] LCSCodewordString,
+ ...}
+
+LCSCodewordString ::= USSD-String (SIZE (1..maxLCSCodewordStringLength))
+
+maxLCSCodewordStringLength INTEGER ::= 20
+
+LCS-PrivacyCheck ::= SEQUENCE {
+ callSessionUnrelated [0] PrivacyCheckRelatedAction,
+ callSessionRelated [1] PrivacyCheckRelatedAction OPTIONAL,
+ ...}
+
+PrivacyCheckRelatedAction ::= ENUMERATED {
+ allowedWithoutNotification (0),
+ allowedWithNotification (1),
+ allowedIfNoResponse (2),
+ restrictedIfNoResponse (3),
+ notAllowed (4),
+ ...}
+-- exception handling:
+-- a ProvideSubscriberLocation-Arg containing an unrecognized PrivacyCheckRelatedAction
+-- shall be rejected by the receiver with a return error cause of unexpected data value
+
+AreaEventInfo ::= SEQUENCE {
+ areaDefinition [0] AreaDefinition,
+ occurrenceInfo [1] OccurrenceInfo OPTIONAL,
+ intervalTime [2] IntervalTime OPTIONAL,
+ ...}
+
+AreaDefinition ::= SEQUENCE {
+ areaList [0] AreaList,
+ ...}
+
+AreaList ::= SEQUENCE SIZE (1..maxNumOfAreas) OF Area
+
+maxNumOfAreas INTEGER ::= 10
+
+Area ::= SEQUENCE {
+ areaType [0] AreaType,
+ areaIdentification [1] AreaIdentification,
+ ...}
+
+AreaType ::= ENUMERATED {
+ countryCode (0),
+ plmnId (1),
+ locationAreaId (2),
+ routingAreaId (3),
+ cellGlobalId (4),
+ ...,
+ utranCellId (5) }
+
+AreaIdentification ::= OCTET STRING (SIZE (2..7))
+ -- The internal structure is defined as follows:
+ -- octet 1 bits 4321 Mobile Country Code 1st digit
+ -- bits 8765 Mobile Country Code 2nd digit
+ -- octet 2 bits 4321 Mobile Country Code 3rd digit
+ -- bits 8765 Mobile Network Code 3rd digit if 3 digit MNC included
+ -- or filler (1111)
+ -- octet 3 bits 4321 Mobile Network Code 1st digit
+ -- bits 8765 Mobile Network Code 2nd digit
+ -- octets 4 and 5 Location Area Code (LAC) for Local Area Id,
+ -- Routing Area Id and Cell Global Id
+ -- octet 6 Routing Area Code (RAC) for Routing Area Id
+ -- octets 6 and 7 Cell Identity (CI) for Cell Global Id
+ -- octets 4 until 7 Utran Cell Identity (UC-Id) for Utran Cell Id
+
+OccurrenceInfo ::= ENUMERATED {
+ oneTimeEvent (0),
+ multipleTimeEvent (1),
+ ...}
+
+IntervalTime ::= INTEGER (1..32767)
+ -- minimum interval time between area reports in seconds
+
+PeriodicLDRInfo ::= SEQUENCE {
+ reportingAmount ReportingAmount,
+ reportingInterval ReportingInterval,
+ ...}
+-- reportingInterval x reportingAmount shall not exceed 8639999 (99 days, 23 hours,
+-- 59 minutes and 59 seconds) for compatibility with OMA MLP and RLP
+
+ReportingAmount ::= INTEGER (1..maxReportingAmount)
+
+maxReportingAmount INTEGER ::= 8639999
+
+ReportingInterval ::= INTEGER (1..maxReportingInterval)
+-- ReportingInterval is in seconds
+
+maxReportingInterval INTEGER ::= 8639999
+
+ReportingPLMNList::= SEQUENCE {
+ plmn-ListPrioritized [0] NULL OPTIONAL,
+ plmn-List [1] PLMNList,
+ ...}
+
+PLMNList::= SEQUENCE SIZE (1..maxNumOfReportingPLMN) OF
+ ReportingPLMN
+
+maxNumOfReportingPLMN INTEGER ::= 20
+
+ReportingPLMN::= SEQUENCE {
+ plmn-Id [0] PLMN-Id,
+ ran-Technology [1] RAN-Technology OPTIONAL,
+ ran-PeriodicLocationSupport [2] NULL OPTIONAL,
+ ...}
+
+RAN-Technology ::= ENUMERATED {
+ gsm (0),
+ umts (1),
+ ...}
+
+ProvideSubscriberLocation-Res ::= SEQUENCE {
+ locationEstimate Ext-GeographicalInformation,
+ ageOfLocationEstimate [0] AgeOfLocationInformation OPTIONAL,
+ extensionContainer [1] ExtensionContainer OPTIONAL,
+ ... ,
+ add-LocationEstimate [2] Add-GeographicalInformation OPTIONAL,
+ deferredmt-lrResponseIndicator [3] NULL OPTIONAL,
+ geranPositioningData [4] PositioningDataInformation OPTIONAL,
+ utranPositioningData [5] UtranPositioningDataInfo OPTIONAL,
+ cellIdOrSai [6] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL,
+ sai-Present [7] NULL OPTIONAL,
+ accuracyFulfilmentIndicator [8] AccuracyFulfilmentIndicator OPTIONAL,
+ velocityEstimate [9] VelocityEstimate OPTIONAL,
+ mo-lrShortCircuitIndicator [10] NULL OPTIONAL }
+
+-- if deferredmt-lrResponseIndicator is set, locationEstimate is ignored.
+
+-- the add-LocationEstimate parameter shall not be sent to a node that did not indicate the
+-- geographic shapes supported in the ProvideSubscriberLocation-Arg
+-- The locationEstimate and the add-locationEstimate parameters shall not be sent if
+-- the supportedGADShapes parameter has been received in ProvideSubscriberLocation-Arg
+-- and the shape encoded in locationEstimate or add-LocationEstimate is not marked
+-- as supported in supportedGADShapes. In such a case ProvideSubscriberLocation
+-- shall be rejected with error FacilityNotSupported with additional indication
+-- shapeOfLocationEstimateNotSupported.
+-- sai-Present indicates that the cellIdOrSai parameter contains a Service Area Identity.
+
+AccuracyFulfilmentIndicator ::= ENUMERATED {
+ requestedAccuracyFulfilled (0),
+ requestedAccuracyNotFulfilled (1),
+ ... }
+
+Ext-GeographicalInformation ::= OCTET STRING (SIZE (1..maxExt-GeographicalInformation))
+ -- Refers to geographical Information defined in 3GPP TS 23.032.
+ -- This is composed of 1 or more octets with an internal structure according to
+ -- 3GPP TS 23.032
+ -- Octet 1: Type of shape, only the following shapes in 3GPP TS 23.032 are allowed:
+ -- (a) Ellipsoid point with uncertainty circle
+ -- (b) Ellipsoid point with uncertainty ellipse
+ -- (c) Ellipsoid point with altitude and uncertainty ellipsoid
+ -- (d) Ellipsoid Arc
+ -- (e) Ellipsoid Point
+ -- Any other value in octet 1 shall be treated as invalid
+ -- Octets 2 to 8 for case (a) - Ellipsoid point with uncertainty circle
+ -- Degrees of Latitude 3 octets
+ -- Degrees of Longitude 3 octets
+ -- Uncertainty code 1 octet
+ -- Octets 2 to 11 for case (b) - Ellipsoid point with uncertainty ellipse:
+ -- Degrees of Latitude 3 octets
+ -- Degrees of Longitude 3 octets
+ -- Uncertainty semi-major axis 1 octet
+ -- Uncertainty semi-minor axis 1 octet
+ -- Angle of major axis 1 octet
+ -- Confidence 1 octet
+ -- Octets 2 to 14 for case (c) - Ellipsoid point with altitude and uncertainty ellipsoid
+ -- Degrees of Latitude 3 octets
+ -- Degrees of Longitude 3 octets
+ -- Altitude 2 octets
+ -- Uncertainty semi-major axis 1 octet
+ -- Uncertainty semi-minor axis 1 octet
+ -- Angle of major axis 1 octet
+ -- Uncertainty altitude 1 octet
+ -- Confidence 1 octet
+ -- Octets 2 to 13 for case (d) - Ellipsoid Arc
+ -- Degrees of Latitude 3 octets
+ -- Degrees of Longitude 3 octets
+ -- Inner radius 2 octets
+ -- Uncertainty radius 1 octet
+ -- Offset angle 1 octet
+ -- Included angle 1 octet
+ -- Confidence 1 octet
+ -- Octets 2 to 7 for case (e) - Ellipsoid Point
+ -- Degrees of Latitude 3 octets
+ -- Degrees of Longitude 3 octets
+
+ --
+ -- An Ext-GeographicalInformation parameter comprising more than one octet and
+ -- containing any other shape or an incorrect number of octets or coding according
+ -- to 3GPP TS 23.032 shall be treated as invalid data by a receiver.
+ --
+ -- An Ext-GeographicalInformation parameter comprising one octet shall be discarded
+ -- by the receiver if an Add-GeographicalInformation parameter is received
+ -- in the same message.
+ --
+ -- An Ext-GeographicalInformation parameter comprising one octet shall be treated as
+ -- invalid data by the receiver if an Add-GeographicalInformation parameter is not
+ -- received in the same message.
+
+maxExt-GeographicalInformation INTEGER ::= 20
+ -- the maximum length allows for further shapes in 3GPP TS 23.032 to be included in later
+ -- versions of 3GPP TS 29.002
+
+VelocityEstimate ::= OCTET STRING (SIZE (4..7))
+ -- Refers to Velocity description defined in 3GPP TS 23.032.
+ -- This is composed of 4 or more octets with an internal structure according to
+ -- 3GPP TS 23.032
+ -- Octet 1: Type of velocity, only the following types in 3GPP TS 23.032 are allowed:
+ -- (a) Horizontal Velocity
+ -- (b) Horizontal with Vertical Velocity
+ -- (c) Horizontal Velocity with Uncertainty
+ -- (d) Horizontal with Vertical Velocity and Uncertainty
+ -- For types Horizontal with Vertical Velocity and Horizontal with Vertical Velocity
+ -- and Uncertainty, the direction of the Vertical Speed is also included in Octet 1
+ -- Any other value in octet 1 shall be treated as invalid
+ -- Octets 2 to 4 for case (a) Horizontal velocity:
+ -- Bearing 1 octet
+ -- Horizontal Speed 2 octets
+ -- Octets 2 to 5 for case (b) - Horizontal with Vertical Velocity:
+ -- Bearing 1 octet
+ -- Horizontal Speed 2 octets
+ -- Vertical Speed 1 octet
+ -- Octets 2 to 5 for case (c) - Horizontal velocity with Uncertainty:
+ -- Bearing 1 octet
+ -- Horizontal Speed 2 octets
+ -- Uncertainty Speed 1 octet
+ -- Octets 2 to 7 for case (d) - Horizontal with Vertical Velocity and Uncertainty:
+ -- Bearing 1 octet
+ -- Horizontal Speed 2 octets
+ -- Vertical Speed 1 octet
+ -- Horizontal Uncertainty Speed 1 octet
+ -- Vertical Uncertainty Speed 1 octet
+
+PositioningDataInformation ::= OCTET STRING (SIZE (2..maxPositioningDataInformation))
+ -- Refers to the Positioning Data defined in 3GPP TS 49.031.
+ -- This is composed of 2 or more octets with an internal structure according to
+ -- 3GPP TS 49.031.
+
+maxPositioningDataInformation INTEGER ::= 10
+ --
+
+UtranPositioningDataInfo ::= OCTET STRING (SIZE (3..maxUtranPositioningDataInfo))
+ -- Refers to the Position Data defined in 3GPP TS 25.413.
+ -- This is composed of the positioningDataDiscriminator and the positioningDataSet
+ -- included in positionData as defined in 3GPP TS 25.413.
+
+maxUtranPositioningDataInfo INTEGER ::= 11
+ --
+
+Add-GeographicalInformation ::= OCTET STRING (SIZE (1..maxAdd-GeographicalInformation))
+ -- Refers to geographical Information defined in 3GPP TS 23.032.
+ -- This is composed of 1 or more octets with an internal structure according to
+ -- 3GPP TS 23.032
+ -- Octet 1: Type of shape, all the shapes defined in 3GPP TS 23.032 are allowed:
+ -- Octets 2 to n (where n is the total number of octets necessary to encode the shape
+ -- according to 3GPP TS 23.032) are used to encode the shape itself in accordance with the
+ -- encoding defined in 3GPP TS 23.032
+ --
+ -- An Add-GeographicalInformation parameter, whether valid or invalid, received
+ -- together with a valid Ext-GeographicalInformation parameter in the same message
+ -- shall be discarded.
+ --
+ -- An Add-GeographicalInformation parameter containing any shape not defined in
+ -- 3GPP TS 23.032 or an incorrect number of octets or coding according to
+ -- 3GPP TS 23.032 shall be treated as invalid data by a receiver if not received
+ -- together with a valid Ext-GeographicalInformation parameter in the same message.
+
+maxAdd-GeographicalInformation INTEGER ::= 91
+ -- the maximum length allows support for all the shapes currently defined in 3GPP TS 23.032
+
+SubscriberLocationReport-Arg ::= SEQUENCE {
+ lcs-Event LCS-Event,
+ lcs-ClientID LCS-ClientID,
+ lcsLocationInfo LCSLocationInfo,
+ msisdn [0] ISDN-AddressString OPTIONAL,
+ imsi [1] IMSI OPTIONAL,
+ imei [2] IMEI OPTIONAL,
+ na-ESRD [3] ISDN-AddressString OPTIONAL,
+ na-ESRK [4] ISDN-AddressString OPTIONAL,
+ locationEstimate [5] Ext-GeographicalInformation OPTIONAL,
+ ageOfLocationEstimate [6] AgeOfLocationInformation OPTIONAL,
+ slr-ArgExtensionContainer [7] SLR-ArgExtensionContainer OPTIONAL,
+ ... ,
+ add-LocationEstimate [8] Add-GeographicalInformation OPTIONAL,
+ deferredmt-lrData [9] Deferredmt-lrData OPTIONAL,
+ lcs-ReferenceNumber [10] LCS-ReferenceNumber OPTIONAL,
+ geranPositioningData [11] PositioningDataInformation OPTIONAL,
+ utranPositioningData [12] UtranPositioningDataInfo OPTIONAL,
+ cellIdOrSai [13] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL,
+ h-gmlc-Address [14] GSN-Address OPTIONAL,
+ lcsServiceTypeID [15] LCSServiceTypeID OPTIONAL,
+ sai-Present [17] NULL OPTIONAL,
+ pseudonymIndicator [18] NULL OPTIONAL,
+ accuracyFulfilmentIndicator [19] AccuracyFulfilmentIndicator OPTIONAL,
+ velocityEstimate [20] VelocityEstimate OPTIONAL,
+ sequenceNumber [21] SequenceNumber OPTIONAL,
+ periodicLDRInfo [22] PeriodicLDRInfo OPTIONAL,
+ mo-lrShortCircuitIndicator [23] NULL OPTIONAL }
+
+ -- one of msisdn or imsi is mandatory
+ -- a location estimate that is valid for the locationEstimate parameter should
+ -- be transferred in this parameter in preference to the add-LocationEstimate.
+ -- the deferredmt-lrData parameter shall be included if and only if the lcs-Event
+ -- indicates a deferredmt-lrResponse.
+ -- if the lcs-Event indicates a deferredmt-lrResponse then the locationEstimate
+ -- and the add-locationEstimate parameters shall not be sent if the
+ -- supportedGADShapes parameter had been received in ProvideSubscriberLocation-Arg
+ -- and the shape encoded in locationEstimate or add-LocationEstimate was not marked
+ -- as supported in supportedGADShapes. In such a case terminationCause
+ -- in deferredmt-lrData shall be present with value
+ -- shapeOfLocationEstimateNotSupported.
+ -- If a lcs event indicates deferred mt-lr response, the lcs-Reference number shall be
+ -- included.
+ -- sai-Present indicates that the cellIdOrSai parameter contains a Service Area Identity.
+
+Deferredmt-lrData ::= SEQUENCE {
+ deferredLocationEventType DeferredLocationEventType,
+ terminationCause [0] TerminationCause OPTIONAL,
+ lcsLocationInfo [1] LCSLocationInfo OPTIONAL,
+ ...}
+ -- lcsLocationInfo may be included only if a terminationCause is present
+ -- indicating mt-lrRestart.
+
+LCS-Event ::= ENUMERATED {
+ emergencyCallOrigination (0),
+ emergencyCallRelease (1),
+ mo-lr (2),
+ ...,
+ deferredmt-lrResponse (3) ,
+ deferredmo-lrTTTPInitiation (4) }
+ -- deferredmt-lrResponse is applicable to the delivery of a location estimate
+ -- for an LDR initiated earlier by either the network (via an MT-LR activate deferred
+ -- location) or the UE (via a deferred MO-LR TTTP initiation)
+ -- exception handling:
+ -- a SubscriberLocationReport-Arg containing an unrecognized LCS-Event
+ -- shall be rejected by a receiver with a return error cause of unexpected data value
+
+TerminationCause ::= ENUMERATED {
+ normal (0),
+ errorundefined (1),
+ internalTimeout (2),
+ congestion (3),
+ mt-lrRestart (4),
+ privacyViolation (5),
+ ...,
+ shapeOfLocationEstimateNotSupported (6) ,
+ subscriberTermination (7),
+ uETermination (8),
+ networkTermination (9) }
+-- mt-lrRestart shall be used to trigger the GMLC to restart the location procedure,
+-- either because the sending node knows that the terminal has moved under coverage
+-- of another MSC or SGSN (e.g. Send Identification received), or because the subscriber
+-- has been deregistered due to a Cancel Location received from HLR.
+--
+-- exception handling
+-- an unrecognized value shall be treated the same as value 1 (errorundefined)
+
+SequenceNumber ::= INTEGER (1..maxReportingAmount)
+
+SubscriberLocationReport-Res ::= SEQUENCE {
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ na-ESRK [0] ISDN-AddressString OPTIONAL,
+ na-ESRD [1] ISDN-AddressString OPTIONAL,
+ h-gmlc-Address [2] GSN-Address OPTIONAL,
+ mo-lrShortCircuitIndicator [3] NULL OPTIONAL,
+ reportingPLMNList [4] ReportingPLMNList OPTIONAL,
+ lcs-ReferenceNumber [5] LCS-ReferenceNumber OPTIONAL }
+
+-- na-ESRK and na-ESRD are mutually exclusive
+--
+-- exception handling
+-- receipt of both na-ESRK and na-ESRD shall be treated the same as a return error
+
+END
diff --git a/asn1/rrlp/Makefile b/asn1/rrlp/Makefile
index 7ec094eaeb..71d5c00715 100644
--- a/asn1/rrlp/Makefile
+++ b/asn1/rrlp/Makefile
@@ -1,13 +1,14 @@
# $Id$
-DISSECTOR_FILES=packet-rrlp.c packet-rrlp.h
+DISSECTOR_FILES=packet-rrlp.c
+RRLP_ASN=RRLP-Messages.asn RRLP-Components.asn ../gsmmap/MAP-ExtensionDataTypes.asn ../gsmmap/MAP-LCS-DataTypes.asn
all: generate_dissector
generate_dissector: $(DISSECTOR_FILES)
-$(DISSECTOR_FILES): ../../tools/asn2wrs.py rrlp.asn packet-rrlp-template.c packet-rrlp-template.h rrlp.cnf
- python ../../tools/asn2wrs.py -e -p rrlp -c rrlp.cnf -s packet-rrlp-template rrlp.asn
+$(DISSECTOR_FILES): ../../tools/asn2wrs.py $(RRLP_ASN) packet-rrlp-template.c rrlp.cnf
+ python ../../tools/asn2wrs.py -p rrlp -c rrlp.cnf -s packet-rrlp-template $(RRLP_ASN)
clean:
rm -f parsetab.py parsetab.pyc $(DISSECTOR_FILES)
diff --git a/asn1/rrlp/Makefile.nmake b/asn1/rrlp/Makefile.nmake
index 4b880bbf1a..5c4c1ac200 100644
--- a/asn1/rrlp/Makefile.nmake
+++ b/asn1/rrlp/Makefile.nmake
@@ -7,15 +7,16 @@ include ../../config.nmake
UNIX2DOS=$(PERL) ../../tools/unix2dos.pl
PROTOCOL_NAME=rrlp
-DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).h
+DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c
+RRLP_ASN=RRLP-Messages.asn RRLP-Components.asn ../gsmmap/MAP-ExtensionDataTypes.asn ../gsmmap/MAP-LCS-DataTypes.asn
all: generate_dissector
generate_dissector: $(DISSECTOR_FILES)
-$(DISSECTOR_FILES): ../../tools/asn2wrs.py rrlp.asn packet-rrlp-template.c packet-rrlp-template.h rrlp.cnf
+$(DISSECTOR_FILES): ../../tools/asn2wrs.py $(RRLP_ASN) packet-rrlp-template.c rrlp.cnf
!IFDEF PYTHON
- $(PYTHON) "../../tools/asn2wrs.py" -u -e -p $(PROTOCOL_NAME) -c rrlp.cnf -s packet-rrlp-template rrlp.asn
+ $(PYTHON) "../../tools/asn2wrs.py" -p $(PROTOCOL_NAME) -c rrlp.cnf -s packet-rrlp-template $(RRLP_ASN)
!ELSE
@echo Error: You need Python to use asn2wrs.py
@exit 1
@@ -31,12 +32,9 @@ clean:
fix_eol: generate_dissector
move packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).c.tmp
- move packet-$(PROTOCOL_NAME).h packet-$(PROTOCOL_NAME).h.tmp
$(UNIX2DOS) < packet-$(PROTOCOL_NAME).c.tmp > packet-$(PROTOCOL_NAME).c
- $(UNIX2DOS) < packet-$(PROTOCOL_NAME).h.tmp > packet-$(PROTOCOL_NAME).h
- del /f packet-$(PROTOCOL_NAME).c.tmp packet-$(PROTOCOL_NAME).h.tmp
+ del /f packet-$(PROTOCOL_NAME).c.tmp
copy_files: generate_dissector fix_eol
xcopy packet-$(PROTOCOL_NAME).c ..\..\epan\dissectors /d /y
- xcopy packet-$(PROTOCOL_NAME).h ..\..\epan\dissectors /d /y
diff --git a/asn1/rrlp/RRLP-Components.asn b/asn1/rrlp/RRLP-Components.asn
new file mode 100644
index 0000000000..83f7ff47f7
--- /dev/null
+++ b/asn1/rrlp/RRLP-Components.asn
@@ -0,0 +1,1487 @@
+-- RRLP-Components.asn
+--
+-- Taken from 3GPP TS 44.031 V7.4.0 (2007-03)
+-- http://www.3gpp.org/ftp/Specs/archive/44_series/44.031/44031-740.zip/44031-740.doc
+--
+-- 4 Components
+-- 5 Elements of Components
+--
+
+RRLP-Components
+-- { RRLP-Components }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ Ext-GeographicalInformation, VelocityEstimate
+FROM
+ MAP-LCS-DataTypes {
+ ccitt identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-LCS-DataTypes (25) version5 (5)}
+
+ ExtensionContainer
+FROM MAP-ExtensionDataTypes {
+ ccitt identified-organization (4) etsi (0) mobileDomain (0)
+ gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version4 (4)}
+;
+
+-- Add here other ASN.1 definitions presented below
+-- in chapters 4 and 5.
+
+-- Measurement Position request component
+MsrPosition-Req ::= SEQUENCE {
+ positionInstruct PositionInstruct,
+ referenceAssistData ReferenceAssistData OPTIONAL,
+ msrAssistData MsrAssistData OPTIONAL,
+ systemInfoAssistData SystemInfoAssistData OPTIONAL,
+ gps-AssistData GPS-AssistData OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ -- Release 98 extension element
+rel98-MsrPosition-Req-extension Rel98-MsrPosition-Req-Extension OPTIONAL,
+ -- Release 5 extension element
+rel5-MsrPosition-Req-extension Rel5-MsrPosition-Req-Extension OPTIONAL,
+ -- Release 7 extension element
+rel7-MsrPosition-Req-extension Rel7-MsrPosition-Req-Extension OPTIONAL
+}
+
+-- Measurement Position response component
+MsrPosition-Rsp ::= SEQUENCE {
+ multipleSets MultipleSets OPTIONAL,
+ referenceIdentity ReferenceIdentity OPTIONAL,
+ otd-MeasureInfo OTD-MeasureInfo OPTIONAL,
+ locationInfo LocationInfo OPTIONAL,
+ gps-MeasureInfo GPS-MeasureInfo OPTIONAL,
+ locationError LocationError OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ -- Release extension here
+ rel-98-MsrPosition-Rsp-Extension
+ Rel-98-MsrPosition-Rsp-Extension OPTIONAL,
+ rel-5-MsrPosition-Rsp-Extension
+ Rel-5-MsrPosition-Rsp-Extension OPTIONAL,
+ -- rel-5-MsrPosition-Rsp-Extension and other possible future extensions
+ -- are the only information elements that may be included in the 2nd
+ -- MsrPosition-Rsp component when RRLP pseudo-segmentation is used
+ rel-7-MsrPosition-Rsp-Extension
+ Rel-7-MsrPosition-Rsp-Extension OPTIONAL
+}
+
+-- Assistance Data component
+AssistanceData ::= SEQUENCE {
+ referenceAssistData ReferenceAssistData OPTIONAL,
+ msrAssistData MsrAssistData OPTIONAL,
+ systemInfoAssistData SystemInfoAssistData OPTIONAL,
+ gps-AssistData GPS-AssistData OPTIONAL,
+ moreAssDataToBeSent MoreAssDataToBeSent OPTIONAL, -- If not present, interpret as only
+ -- Assistance Data component used to
+ -- deliver entire set of assistance
+ -- data.
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ -- Release extension here
+ rel98-AssistanceData-Extension Rel98-AssistanceData-Extension OPTIONAL,
+ rel5-AssistanceData-Extension Rel5-AssistanceData-Extension OPTIONAL,
+ rel7-AssistanceData-Extension Rel7-AssistanceData-Extension OPTIONAL
+}
+
+-- Protocol Error component
+ProtocolError ::= SEQUENCE {
+ errorCause ErrorCodes,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ -- Release extensions here
+ rel-5-ProtocolError-Extension Rel-5-ProtocolError-Extension OPTIONAL
+}
+
+-- Position instructions
+PositionInstruct ::= SEQUENCE {
+ -- Method type
+ methodType MethodType,
+ positionMethod PositionMethod,
+ measureResponseTime MeasureResponseTime,
+ useMultipleSets UseMultipleSets,
+ environmentCharacter EnvironmentCharacter OPTIONAL
+}
+
+--
+MethodType ::= CHOICE {
+ msAssisted AccuracyOpt, -- accuracy is optional
+ msBased Accuracy, -- accuracy is mandatory
+ msBasedPref Accuracy, -- accuracy is mandatory
+ msAssistedPref Accuracy -- accuracy is mandatory
+}
+
+-- Accuracy of the location estimation
+AccuracyOpt ::= SEQUENCE {
+ accuracy Accuracy OPTIONAL
+}
+
+-- The values of this field are defined in 3GPP TS 23.032 (Uncertainty code)
+Accuracy ::= INTEGER (0..127)
+
+
+-- Position Method
+PositionMethod ::= ENUMERATED {
+ eotd (0),
+ gps (1),
+ gpsOrEOTD (2)
+}
+
+-- Measurement request response time
+MeasureResponseTime ::= INTEGER (0..7)
+
+-- useMultiple Sets, FFS!
+UseMultipleSets ::= ENUMERATED {
+ multipleSets (0), -- multiple sets are allowed
+ oneSet (1) -- sending of multiple is not allowed
+}
+
+-- Environment characterization
+EnvironmentCharacter ::= ENUMERATED {
+ badArea (0), -- bad urban or suburban, heavy multipath and NLOS
+ notBadArea (1), -- light multipath and NLOS
+ mixedArea (2), -- not defined or mixed environment
+ ...
+}
+
+-- E-OTD reference BTS for Assitance data IE
+ReferenceAssistData ::= SEQUENCE {
+ bcchCarrier BCCHCarrier, -- BCCH carrier
+ bsic BSIC, -- BSIC
+ timeSlotScheme TimeSlotScheme, -- Timeslot scheme
+ btsPosition BTSPosition OPTIONAL
+}
+
+-- ellipsoid point and
+-- ellipsoid point with altitude and uncertainty ellipsoid shapes are supported
+BTSPosition ::= Ext-GeographicalInformation
+
+-- RF channel number of BCCH
+BCCHCarrier ::= INTEGER (0..1023)
+
+-- Base station Identity Code
+BSIC ::= INTEGER (0..63)
+
+-- Timeslot scheme
+TimeSlotScheme ::= ENUMERATED {
+ equalLength (0),
+ variousLength (1)
+}
+
+-- Time slot (modulo)
+ModuloTimeSlot ::= INTEGER (0..3)
+
+-- E-OTD measurement assistance data IE
+-- The total number of neighbors in this element (MsrAssistData)
+-- and in SystemInfoAssistData element (presented neighbors
+-- can be at a maximum 15!)
+MsrAssistData ::= SEQUENCE {
+ msrAssistList SeqOfMsrAssistBTS
+}
+SeqOfMsrAssistBTS ::= SEQUENCE (SIZE(1..15)) OF MsrAssistBTS
+
+MsrAssistBTS ::= SEQUENCE {
+ bcchCarrier BCCHCarrier, -- BCCH carrier
+ bsic BSIC, -- BSIC
+ multiFrameOffset MultiFrameOffset, -- multiframe offset
+ timeSlotScheme TimeSlotScheme, -- Timeslot scheme
+ roughRTD RoughRTD, -- rough RTD value
+
+ -- Location Calculation Assistance data is moved here
+ calcAssistanceBTS CalcAssistanceBTS OPTIONAL
+}
+
+-- Multiframe offset
+MultiFrameOffset ::= INTEGER (0..51)
+-- The Multiframe Offset value 51 shall not be encoded by the transmitting entity and
+-- shall be treated by the receiving entity as 0.
+
+-- Rough RTD value between one base station and reference BTS
+RoughRTD ::= INTEGER (0..1250)
+-- The RoughRTD value 1250 shall not be encoded by the transmitting entity and shall
+-- be treated by the receiving entity as 0.
+
+-- E-OTD Measurement assistance data for system information List IE
+-- The total number of base stations in this element (SystemInfoAssistData
+-- presented neighbors) and in MsrAssistData element can be at a maximum 15.
+SystemInfoAssistData ::= SEQUENCE {
+ systemInfoAssistList SeqOfSystemInfoAssistBTS
+}
+SeqOfSystemInfoAssistBTS::= SEQUENCE (SIZE(1..32)) OF SystemInfoAssistBTS
+
+-- whether n.th is present or not ?
+SystemInfoAssistBTS ::= CHOICE {
+ notPresent NULL,
+ present AssistBTSData
+}
+
+-- Actual assistance data for system information base station
+AssistBTSData ::= SEQUENCE {
+ bsic BSIC, -- BSIC
+ multiFrameOffset MultiFrameOffset, -- multiframe offset
+ timeSlotScheme TimeSlotScheme, -- Timeslot scheme
+ roughRTD RoughRTD, -- rough RTD value
+
+ -- Location Calculation Assistance data
+ calcAssistanceBTS CalcAssistanceBTS OPTIONAL
+}
+
+-- E-OTD Location calculation assistance data,
+-- CalcAssistanceBTS element is optional not subfields
+CalcAssistanceBTS ::= SEQUENCE {
+ fineRTD FineRTD, -- fine RTD value between base stations
+ referenceWGS84 ReferenceWGS84 -- reference coordinates
+}
+
+-- Coordinates of neighbour BTS, WGS-84 ellipsoid
+ReferenceWGS84 ::= SEQUENCE {
+ relativeNorth RelDistance, -- relative distance (south negative)
+ relativeEast RelDistance, -- relative distance (west negative)
+ -- Relative Altitude is not always known
+ relativeAlt RelativeAlt OPTIONAL -- relative altitude
+}
+
+-- Fine RTD value between this BTS and the reference BTS
+FineRTD ::= INTEGER (0..255)
+
+-- Relative north/east distance
+RelDistance ::= INTEGER (-200000..200000)
+
+-- Relative altitude
+RelativeAlt ::= INTEGER (-4000..4000)
+
+-- Measure position response IEs
+-- Reference Identity
+-- Multiple sets
+MultipleSets ::= SEQUENCE {
+ -- number of reference sets
+ nbrOfSets INTEGER (2..3),
+
+ -- This field actually tells the number of reference BTSs
+ nbrOfReferenceBTSs INTEGER (1..3),
+
+ -- This field is conditional and included optionally only if
+ -- nbrOfSets is 3 and number of reference BTSs is 2.
+ referenceRelation ReferenceRelation OPTIONAL
+}
+
+-- Relation between refence BTSs and sets
+ReferenceRelation ::= ENUMERATED {
+ secondBTSThirdSet (0), -- 1st BTS related to 1st and 2nd sets
+ secondBTSSecondSet (1), -- 1st BTS related to 1st and 3rd sets
+ firstBTSFirstSet (2) -- 1st BTS related to 1st set
+}
+
+-- Reference BTS Identity, this element contains number of
+-- BTSs told nbrOfReferenceBTSs field in Multiple sets element)
+ReferenceIdentity ::= SEQUENCE {
+ -- Reference BTS list
+ refBTSList SeqOfReferenceIdentityType
+}
+SeqOfReferenceIdentityType ::= SEQUENCE (SIZE(1..3)) OF ReferenceIdentityType
+
+-- Cell identity
+ReferenceIdentityType ::= CHOICE {
+ bsicAndCarrier BSICAndCarrier, -- BSIC and Carrier
+ ci CellID, -- Cell ID, LAC not needed
+ requestIndex RequestIndex, -- Index to Requested Neighbor List
+ systemInfoIndex SystemInfoIndex, -- Index to System info list, this type of ref. identity
+ -- shall not be used by the MS unless it has received
+ -- the SystemInfoAssistData from the SMLC for this cell.
+ ciAndLAC CellIDAndLAC -- CI and LAC
+}
+
+BSICAndCarrier ::= SEQUENCE {
+ carrier BCCHCarrier,
+ bsic BSIC
+}
+
+RequestIndex ::= INTEGER (1..16)
+
+SystemInfoIndex ::= INTEGER (1..32)
+
+CellIDAndLAC ::= SEQUENCE {
+ referenceLAC LAC, -- Location area code
+ referenceCI CellID -- Cell identity
+}
+CellID ::= INTEGER (0..65535)
+LAC ::= INTEGER (0..65535)
+
+-- OTD-MeasureInfo
+OTD-MeasureInfo ::= SEQUENCE {
+ -- Measurement info elements, OTD-MsrElement is repeated number of times
+ -- told in nbrOfReferenceBTSs in MultipleSets, default value is 1
+ otdMsrFirstSets OTD-MsrElementFirst,
+
+ -- if more than one sets are present this element is repeated
+ -- NumberOfSets - 1 (-1 = first set)
+ otdMsrRestSets SeqOfOTD-MsrElementRest OPTIONAL
+}
+
+SeqOfOTD-MsrElementRest ::= SEQUENCE (SIZE(1..2)) OF OTD-MsrElementRest
+
+-- OTD measurent information for 1 set
+OTD-MsrElementFirst ::= SEQUENCE {
+ refFrameNumber INTEGER (0..42431), -- Frame number modulo 42432
+ referenceTimeSlot ModuloTimeSlot,
+ toaMeasurementsOfRef TOA-MeasurementsOfRef OPTIONAL,
+ stdResolution StdResolution,
+ taCorrection INTEGER (0..960) OPTIONAL, -- TA correction
+
+ -- measured neighbors in OTD measurements
+ otd-FirstSetMsrs SeqOfOTD-FirstSetMsrs OPTIONAL
+}
+SeqOfOTD-FirstSetMsrs ::= SEQUENCE (SIZE(1..10)) OF OTD-FirstSetMsrs
+
+-- OTD measurent information 2 and 3 sets if exist
+OTD-MsrElementRest ::= SEQUENCE {
+ refFrameNumber INTEGER (0..42431), -- Frame number modulo 42432
+ referenceTimeSlot ModuloTimeSlot,
+ toaMeasurementsOfRef TOA-MeasurementsOfRef OPTIONAL,
+ stdResolution StdResolution,
+ taCorrection INTEGER (0..960) OPTIONAL, -- TA correction
+
+ -- measured neighbors in OTD measurements
+ otd-MsrsOfOtherSets SeqOfOTD-MsrsOfOtherSets OPTIONAL
+}
+SeqOfOTD-MsrsOfOtherSets ::= SEQUENCE (SIZE(1..10)) OF OTD-MsrsOfOtherSets
+
+-- Standard deviation of the TOA measurements from the reference BTS
+TOA-MeasurementsOfRef ::= SEQUENCE {
+ refQuality RefQuality,
+ numOfMeasurements NumOfMeasurements
+}
+
+RefQuality ::= INTEGER (0..31) -- St Dev of TOA of reference as defined in annex
+NumOfMeasurements ::= INTEGER (0..7) -- No. of measurements for RefQuality as defined in annex
+StdResolution ::= INTEGER (0..3) -- Values of resolution are defined in annex
+
+OTD-FirstSetMsrs ::= OTD-MeasurementWithID
+
+-- Neighbour info in OTD measurements 0-10 times in TD measurement info
+OTD-MsrsOfOtherSets ::= CHOICE {
+ identityNotPresent OTD-Measurement,
+ identityPresent OTD-MeasurementWithID
+}
+
+-- For this OTD measurement identity is same as the identity of BTS
+-- in the first set with same sequence number
+OTD-Measurement ::= SEQUENCE {
+ nborTimeSlot ModuloTimeSlot,
+ eotdQuality EOTDQuality,
+ otdValue OTDValue
+}
+
+-- This measurement contains the BTS identity and measurement
+OTD-MeasurementWithID ::=SEQUENCE {
+ neighborIdentity NeighborIdentity,
+ nborTimeSlot ModuloTimeSlot,
+ eotdQuality EOTDQuality,
+ otdValue OTDValue
+}
+
+EOTDQuality ::= SEQUENCE {
+ nbrOfMeasurements INTEGER (0..7),
+ stdOfEOTD INTEGER (0..31)
+}
+
+NeighborIdentity ::= CHOICE {
+ bsicAndCarrier BSICAndCarrier, -- BSIC and Carrier
+ ci CellID, -- Cell ID, LAC not needed
+ multiFrameCarrier MultiFrameCarrier, -- MultiFrameOffest and BSIC
+ requestIndex RequestIndex, -- Index to Requested Neighbor List
+ systemInfoIndex SystemInfoIndex, -- Index to System info list, this type of neighbour
+ -- identity shall not be used by the MS unless it has
+ -- received the SystemInfoAssistData from the SMLC for
+ -- this cell.
+ ciAndLAC CellIDAndLAC -- CI and LAC
+}
+
+-- Multiframe and carrier
+MultiFrameCarrier ::= SEQUENCE {
+ bcchCarrier BCCHCarrier,
+ multiFrameOffset MultiFrameOffset
+}
+
+-- OTD measurement value for neighbour
+OTDValue ::= INTEGER (0..39999)
+
+-- Location information IE
+LocationInfo ::= SEQUENCE {
+ refFrame INTEGER (0..65535), -- Reference Frame number
+ -- If refFrame is within (42432..65535), it shall be ignored by the receiver
+ -- in that case the MS should provide GPS TOW if available
+ gpsTOW INTEGER (0..14399999) OPTIONAL, -- GPS TOW
+ fixType FixType,
+ -- Note that applicable range for refFrame is 0 - 42431
+ -- Possible shapes carried in posEstimate are
+ -- ellipsoid point,
+ -- ellipsoid point with uncertainty circle
+ -- ellipsoid point with uncertainty ellipse
+ -- ellipsoid point with altitude and uncertainty ellipsoid
+ posEstimate Ext-GeographicalInformation
+}
+
+FixType ::= INTEGER {
+ twoDFix (0),
+ threeDFix (1)
+} (0..1)
+
+-- GPS-Measurement information
+GPS-MeasureInfo ::= SEQUENCE {
+ -- Measurement info elements
+ -- user has to make sure that in this element is number of elements
+ -- defined in reference BTS identity
+ gpsMsrSetList SeqOfGPS-MsrSetElement
+}
+SeqOfGPS-MsrSetElement ::= SEQUENCE (SIZE(1..3)) OF GPS-MsrSetElement
+
+-- OTD measurent information 1-3 times in message
+GPS-MsrSetElement ::= SEQUENCE {
+ refFrame INTEGER (0..65535) OPTIONAL, -- Reference Frame number
+ gpsTOW GPSTOW24b, -- GPS TOW
+ -- Note that applicable range for refFrame is 0 - 42431
+
+--N_SAT can be read from number of elements of gps-msrList
+
+ gps-msrList SeqOfGPS-MsrElement
+}
+
+-- 24 bit presentation for GPSTOW
+GPSTOW24b ::= INTEGER (0..14399999)
+
+-- measured elements in measurement parameters field
+SeqOfGPS-MsrElement ::= SEQUENCE (SIZE(1..16)) OF GPS-MsrElement
+
+GPS-MsrElement ::= SEQUENCE {
+ satelliteID SatelliteID, -- Satellite identifier
+ cNo INTEGER (0..63), -- carrier noise ratio
+ doppler INTEGER (-32768..32767), -- doppler, mulltiply by 0.2
+ wholeChips INTEGER (0..1022), -- whole value of the code phase measurement
+ fracChips INTEGER (0..1024), -- fractional value of the code phase measurement
+ -- a value of 1024 shall not be encoded by the sender
+ -- the receiver shall consider a value of 1024 to be
+ -- invalid data
+ mpathIndic MpathIndic, -- multipath indicator
+ pseuRangeRMSErr INTEGER (0..63) -- index
+}
+
+-- Multipath indicator
+MpathIndic ::= ENUMERATED {
+ notMeasured (0),
+ low (1),
+ medium (2),
+ high (3)
+}
+
+-- Location error IE
+LocationError ::= SEQUENCE {
+ locErrorReason LocErrorReason,
+ additionalAssistanceData AdditionalAssistanceData OPTIONAL,
+ ...
+}
+
+LocErrorReason ::= ENUMERATED {
+ unDefined (0),
+ notEnoughBTSs (1),
+ notEnoughSats (2),
+ eotdLocCalAssDataMissing (3),
+ eotdAssDataMissing (4),
+ gpsLocCalAssDataMissing (5),
+ gpsAssDataMissing (6),
+ methodNotSupported (7),
+ notProcessed (8),
+ refBTSForGPSNotServingBTS (9),
+ refBTSForEOTDNotServingBTS (10),
+ ...,
+ notEnoughGANSSSats (11),
+ ganssAssDataMissing (12),
+ refBTSForGANSSNotServingBTS (13)
+}
+
+-- exception handling:
+-- an unrecognized value shall be treated the same as value 0
+
+
+-- defines additional assistance data needed for any new location attempt
+-- MS shall retain any assistance data already received
+AdditionalAssistanceData ::= SEQUENCE {
+ gpsAssistanceData GPSAssistanceData OPTIONAL,
+ extensionContainer ExtensionContainer OPTIONAL,
+ ...,
+ ganssAssistanceData GANSSAssistanceData OPTIONAL
+}
+
+GPSAssistanceData ::= OCTET STRING (SIZE (1..maxGPSAssistanceData))
+-- GPSAssistanceData has identical structure and encoding to octets 3 to n of the
+-- GPS Assistance Data IE in 3GPP TS 49.031
+
+maxGPSAssistanceData INTEGER ::= 40
+
+GANSSAssistanceData ::= OCTET STRING (SIZE (1..maxGANSSAssistanceData))
+-- GANSSAssistanceData has identical structure and encoding to octets 3 to n of the
+-- GANSS Assistance Data IE in 3GPP TS 49.031
+
+maxGANSSAssistanceData INTEGER ::= 40
+
+
+-- Protocol Error Causes
+ErrorCodes ::= ENUMERATED {
+ unDefined (0),
+missingComponet (1),
+incorrectData (2),
+missingIEorComponentElement (3),
+messageTooShort (4),
+unknowReferenceNumber (5),
+...
+}
+
+-- exception handling:
+-- an unrecognized value shall be treated the same as value 0
+
+-- GPS assistance data IE
+GPS-AssistData ::= SEQUENCE {
+ controlHeader ControlHeader
+}
+
+-- More Assistance Data To Be Sent IE
+-- More Assistance Data Components On the Way indication for delivery of an entire set of assistance
+-- data in multiple Assistance Data components.
+
+MoreAssDataToBeSent ::= ENUMERATED {
+ noMoreMessages (0), -- This is the only or last Assistance Data message used to deliver
+ -- the entire set of assistance data.
+ moreMessagesOnTheWay (1) -- The SMLC will send more Assistance Data messages or a final RRLP
+ -- Measure Position Request message to deliver the
+ -- the entire set of assistance data.
+}
+
+-- Control header of the GPS assistance data
+ControlHeader ::= SEQUENCE {
+
+ -- Field type Present information
+ referenceTime ReferenceTime OPTIONAL,
+ refLocation RefLocation OPTIONAL,
+ dgpsCorrections DGPSCorrections OPTIONAL,
+ navigationModel NavigationModel OPTIONAL,
+ ionosphericModel IonosphericModel OPTIONAL,
+ utcModel UTCModel OPTIONAL,
+ almanac Almanac OPTIONAL,
+ acquisAssist AcquisAssist OPTIONAL,
+ realTimeIntegrity SeqOf-BadSatelliteSet OPTIONAL
+}
+
+ReferenceTime ::= SEQUENCE {
+ gpsTime GPSTime,
+ gsmTime GSMTime OPTIONAL,
+ gpsTowAssist GPSTOWAssist OPTIONAL
+}
+
+-- GPS Time includes week number and time-of-week (TOW)
+GPSTime ::= SEQUENCE {
+ gpsTOW23b GPSTOW23b,
+ gpsWeek GPSWeek
+}
+
+-- GPSTOW, range 0-604799.92, resolution 0.08 sec, 23-bit presentation
+GPSTOW23b ::= INTEGER (0..7559999)
+
+-- GPS week number
+GPSWeek ::= INTEGER (0..1023)
+
+-- GPSTOWAssist consists of TLM message, Anti-spoof flag, Alert flag, and 2 reserved bits in TLM Word
+-- for each visible satellite.
+-- N_SAT can be read from number of elements in GPSTOWAssist
+GPSTOWAssist ::= SEQUENCE (SIZE(1..12)) OF GPSTOWAssistElement
+
+GPSTOWAssistElement ::= SEQUENCE {
+ satelliteID SatelliteID,
+ tlmWord TLMWord,
+ antiSpoof AntiSpoofFlag,
+ alert AlertFlag,
+ tlmRsvdBits TLMReservedBits
+}
+
+-- TLM Word, 14 bits
+TLMWord ::= INTEGER (0..16383)
+
+-- Anti-Spoof flag
+AntiSpoofFlag ::= INTEGER (0..1)
+
+-- Alert flag
+AlertFlag ::= INTEGER (0..1)
+
+-- Reserved bits in TLM word, MSB occurs earlier in TLM Word transmitted by satellite
+TLMReservedBits ::= INTEGER (0..3)
+
+GSMTime ::= SEQUENCE {
+ bcchCarrier BCCHCarrier, -- BCCH carrier
+ bsic BSIC, -- BSIC
+ frameNumber FrameNumber,
+ timeSlot TimeSlot,
+ bitNumber BitNumber
+}
+
+-- Frame number
+FrameNumber ::= INTEGER (0..2097151)
+
+-- Time slot number
+TimeSlot ::= INTEGER (0..7)
+
+-- Bit number
+BitNumber ::= INTEGER (0..156)
+
+
+-- Reference Location IE
+RefLocation ::= SEQUENCE {
+ threeDLocation Ext-GeographicalInformation
+}
+
+-- DGPS Corrections IE
+DGPSCorrections ::= SEQUENCE {
+
+ gpsTOW INTEGER (0..604799), -- DGPS reference time
+ status INTEGER (0..7),
+ -- N_SAT can be read from number of elements of satList
+ satList SeqOfSatElement
+}
+SeqOfSatElement ::= SEQUENCE (SIZE (1..16)) OF SatElement
+
+-- number of correction for satellites
+SatElement ::= SEQUENCE {
+ satelliteID SatelliteID,
+
+
+--- Sequence number for ephemeris
+ iode INTEGER (0..239),
+ -- User Differential Range Error
+ udre INTEGER (0..3),
+
+ -- Pseudo Range Correction, range is
+ -- -655.04 - +655.04,
+ pseudoRangeCor INTEGER (-2047..2047),
+
+ -- Pseudo Range Rate Correction, range is
+ -- -4.064 - +4.064,
+ rangeRateCor INTEGER (-127..127),
+
+-- Delta Pseudo Range Correction 2
+ deltaPseudoRangeCor2 INTEGER (-127..127), -- This IE shall be ignored by the receiver and
+ -- set to zero by the sender
+ -- Delta Pseudo Range Correction 2
+ deltaRangeRateCor2 INTEGER (-7..7), -- This IE shall be ignored by the receiver and
+ -- set to zero by the sender
+ -- Delta Pseudo Range Correction 3
+ deltaPseudoRangeCor3 INTEGER (-127..127), -- This IE shall be ignored by the receiver and
+ -- set to zero by the sender
+ -- Delta Pseudo Range Correction 3
+ deltaRangeRateCor3 INTEGER (-7..7) -- This IE shall be ignored by the receiver and
+ -- set to zero by the sender
+}
+
+SatelliteID ::= INTEGER (0..63) -- identifies satellite
+
+-- Navigation Model IE
+NavigationModel ::= SEQUENCE {
+ navModelList SeqOfNavModelElement
+}
+
+-- navigation model satellite list
+SeqOfNavModelElement ::= SEQUENCE (SIZE(1..16)) OF NavModelElement
+
+NavModelElement ::= SEQUENCE {
+ satelliteID SatelliteID,
+ satStatus SatStatus -- satellite status
+}
+
+-- the Status of the navigation model
+SatStatus ::= CHOICE {
+ -- New satellite, new Navigation Model
+ newSatelliteAndModelUC UncompressedEphemeris,
+
+ -- Existing satellite, Existing Navigation Model
+ oldSatelliteAndModel NULL,
+
+ -- Existing satellite, new Navigation Model
+ newNaviModelUC UncompressedEphemeris,
+ ...
+}
+
+-- Uncompressed satellite emhemeris and clock corrections
+UncompressedEphemeris ::= SEQUENCE {
+ ephemCodeOnL2 INTEGER (0..3),
+ ephemURA INTEGER (0..15),
+ ephemSVhealth INTEGER (0..63),
+ ephemIODC INTEGER (0..1023),
+ ephemL2Pflag INTEGER (0..1),
+ ephemSF1Rsvd EphemerisSubframe1Reserved,
+ ephemTgd INTEGER (-128..127),
+ ephemToc INTEGER (0..37799),
+ ephemAF2 INTEGER (-128..127),
+ ephemAF1 INTEGER (-32768..32767),
+ ephemAF0 INTEGER (-2097152..2097151),
+ ephemCrs INTEGER (-32768..32767),
+ ephemDeltaN INTEGER (-32768..32767),
+ ephemM0 INTEGER (-2147483648..2147483647),
+ ephemCuc INTEGER (-32768..32767),
+ ephemE INTEGER (0..4294967295),
+ ephemCus INTEGER (-32768..32767),
+ ephemAPowerHalf INTEGER (0..4294967295),
+ ephemToe INTEGER (0..37799),
+ ephemFitFlag INTEGER (0..1),
+ ephemAODA INTEGER (0..31),
+ ephemCic INTEGER (-32768..32767),
+ ephemOmegaA0 INTEGER (-2147483648..2147483647),
+ ephemCis INTEGER (-32768..32767),
+ ephemI0 INTEGER (-2147483648..2147483647),
+ ephemCrc INTEGER (-32768..32767),
+ ephemW INTEGER (-2147483648..2147483647),
+ ephemOmegaADot INTEGER (-8388608..8388607),
+ ephemIDot INTEGER (-8192..8191)
+}
+
+-- Reserved bits in subframe 1 of navigation message
+EphemerisSubframe1Reserved ::= SEQUENCE {
+ reserved1 INTEGER (0..8388607), -- 23-bit field
+ reserved2 INTEGER (0..16777215), -- 24-bit field
+ reserved3 INTEGER (0..16777215), -- 24-bit field
+ reserved4 INTEGER (0..65535) -- 16-bit field
+}
+
+-- Ionospheric Model IE
+IonosphericModel ::= SEQUENCE {
+ alfa0 INTEGER (-128..127),
+ alfa1 INTEGER (-128..127),
+ alfa2 INTEGER (-128..127),
+ alfa3 INTEGER (-128..127),
+ beta0 INTEGER (-128..127),
+ beta1 INTEGER (-128..127),
+ beta2 INTEGER (-128..127),
+ beta3 INTEGER (-128..127)
+}
+
+-- Universal Time Coordinate Model
+UTCModel ::= SEQUENCE {
+ utcA1 INTEGER (-8388608..8388607),
+ utcA0 INTEGER (-2147483648..2147483647),
+ utcTot INTEGER (0..255),
+ utcWNt INTEGER (0..255),
+ utcDeltaTls INTEGER (-128..127),
+ utcWNlsf INTEGER (0..255),
+ utcDN INTEGER (-128..127),
+ utcDeltaTlsf INTEGER (-128..127)
+}
+
+-- Almanac, Long term model
+-- NOTE: These are parameters are subset of the ephemeris
+-- NOTE: But with reduced resolution and accuracy
+Almanac ::= SEQUENCE {
+ alamanacWNa INTEGER (0..255), -- Once per message
+
+ -- navigation model satellite list.
+ -- The size of almanacList is actually Nums_Sats_Total field
+ almanacList SeqOfAlmanacElement
+}
+SeqOfAlmanacElement ::= SEQUENCE (SIZE(1..64)) OF AlmanacElement
+
+-- Almanac info once per satellite
+AlmanacElement ::= SEQUENCE {
+ satelliteID SatelliteID,
+ almanacE INTEGER (0..65535),
+ alamanacToa INTEGER (0..255),
+ almanacKsii INTEGER (-32768..32767),
+ almanacOmegaDot INTEGER (-32768..32767),
+ almanacSVhealth INTEGER (0..255),
+ almanacAPowerHalf INTEGER (0..16777215),
+ almanacOmega0 INTEGER (-8388608..8388607),
+ almanacW INTEGER (-8388608..8388607),
+ almanacM0 INTEGER (-8388608..8388607),
+ almanacAF0 INTEGER (-1024..1023),
+ almanacAF1 INTEGER (-1024..1023)
+}
+
+-- Acquisition Assistance
+AcquisAssist ::= SEQUENCE {
+
+ -- Number of Satellites can be read from acquistList
+ timeRelation TimeRelation,
+
+ -- Acquisition assistance list
+ -- The size of Number of Satellites is actually Number of Satellites field
+ acquisList SeqOfAcquisElement
+}
+SeqOfAcquisElement ::= SEQUENCE (SIZE(1..16)) OF AcquisElement
+
+-- the relationship between GPS time and air-interface timing
+TimeRelation ::= SEQUENCE {
+ --
+ gpsTOW GPSTOW23b, -- 23b presentation
+ gsmTime GSMTime OPTIONAL
+}
+
+-- data occuring per number of satellites
+AcquisElement ::= SEQUENCE {
+ svid SatelliteID,
+
+ -- Doppler 0th order term,
+ -- -5120.0 - 5117.5 Hz (= -2048 - 2047 with 2.5 Hz resolution)
+ doppler0 INTEGER (-2048..2047),
+ addionalDoppler AddionalDopplerFields OPTIONAL,
+ codePhase INTEGER (0..1022), -- Code Phase
+ intCodePhase INTEGER (0..19), -- Integer Code Phase
+ gpsBitNumber INTEGER (0..3), -- GPS bit number
+ codePhaseSearchWindow INTEGER (0..15), -- Code Phase Search Window
+ addionalAngle AddionalAngleFields OPTIONAL
+}
+
+AddionalDopplerFields ::= SEQUENCE {
+ -- Doppler 1st order term, -1.0 - +0.5 Hz/sec
+ -- (= -42 + (0 to 63) with 1/42 Hz/sec. resolution)
+ doppler1 INTEGER (0..63),
+ dopplerUncertainty INTEGER (0..7)
+ -- a sender shall not encode any DopplerUncertainty value in the range 5 to 7
+ -- a receiver shall ignore any value between 5 and 7.
+}
+
+AddionalAngleFields ::= SEQUENCE {
+ -- azimuth angle, 0 - 348.75 deg (= 0 - 31 with 11.25 deg resolution)
+ azimuth INTEGER (0..31),
+ -- elevation angle, 0 - 78.75 deg (= 0 - 7 with 11.25 deg resolution)
+ elevation INTEGER (0..7)
+}
+
+-- Real-Time Integrity
+-- number of bad satellites can be read from this element
+SeqOf-BadSatelliteSet ::= SEQUENCE (SIZE(1..16)) OF SatelliteID
+
+-- Extension Elements
+
+-- Release 98 Extensions here
+Rel98-MsrPosition-Req-Extension ::= SEQUENCE {
+ rel98-Ext-ExpOTD Rel98-Ext-ExpOTD OPTIONAL, -- ExpectedOTD extension
+ ...,
+ gpsTimeAssistanceMeasurementRequest NULL OPTIONAL,
+ gpsReferenceTimeUncertainty GPSReferenceTimeUncertainty OPTIONAL
+
+-- Further R98 extensions here
+}
+Rel98-AssistanceData-Extension ::= SEQUENCE {
+ rel98-Ext-ExpOTD Rel98-Ext-ExpOTD OPTIONAL, -- ExpectedOTD extension
+ ...,
+ gpsTimeAssistanceMeasurementRequest NULL OPTIONAL,
+ gpsReferenceTimeUncertainty GPSReferenceTimeUncertainty OPTIONAL
+
+-- Further R98 extensions here
+}
+
+-- Release 98 ExpOTD extension
+Rel98-Ext-ExpOTD ::= SEQUENCE {
+-- If MsrAssistBTS is included in message, msrAssistData-R98-ExpOTD shall be included.
+ msrAssistData-R98-ExpOTD MsrAssistData-R98-ExpOTD OPTIONAL,
+
+-- If SystemInfoAssistaData is included in message, systemInfoAssistData-R98-ExpOTD shall be
+-- included.
+ systemInfoAssistData-R98-ExpOTD SystemInfoAssistData-R98-ExpOTD OPTIONAL
+}
+
+-- MsrAssistData R98 extension
+MsrAssistData-R98-ExpOTD ::= SEQUENCE {
+ msrAssistList-R98-ExpOTD SeqOfMsrAssistBTS-R98-ExpOTD
+}
+
+-- Indexes in SeqOfMsrAssistBTS-R98-ExpOTD refer to SeqOfMsrAssistBTS
+-- If the index exceeds the SegOfMsrAssistBTS range or if there is other
+-- inconsistencies between the BTS indices, the MS shall apply protocol
+-- error cause incorrectData
+SeqOfMsrAssistBTS-R98-ExpOTD ::= SEQUENCE (SIZE(1..15)) OF MsrAssistBTS-R98-ExpOTD
+
+-- This element completes MsrAssistBTS IE
+MsrAssistBTS-R98-ExpOTD ::= SEQUENCE {
+ expectedOTD ExpectedOTD,
+ expOTDUncertainty ExpOTDUncertainty
+}
+
+-- SystemInfoAssistData R98 extension
+SystemInfoAssistData-R98-ExpOTD ::= SEQUENCE {
+ systemInfoAssistListR98-ExpOTD SeqOfSystemInfoAssistBTS-R98-ExpOTD
+}
+
+-- SeqOfSystemInfoAssistBTS-R98-ExpOTD index refer to SeqOfSystemInfoAssistBTS
+-- If the index exceeds the SegOfSystemInfoAssistBTS range or if there is other
+-- inconsistencies between the BTS indices, the MS shall apply protocol
+-- error cause incorrectData
+SeqOfSystemInfoAssistBTS-R98-ExpOTD ::= SEQUENCE (SIZE(1..32)) OF SystemInfoAssistBTS-R98-ExpOTD
+
+-- whether n.th is present or not ?
+SystemInfoAssistBTS-R98-ExpOTD ::= CHOICE {
+ notPresent NULL,
+ present AssistBTSData-R98-ExpOTD
+}
+
+-- This element completes AssistBTSData IE
+AssistBTSData-R98-ExpOTD ::= SEQUENCE {
+ expectedOTD ExpectedOTD,
+ expOTDuncertainty ExpOTDUncertainty -- Uncertainty of expected OTD
+}
+
+-- Expected OTD value between nbor base station and reference BTS
+-- at MS's current estimated location.
+ExpectedOTD ::= INTEGER (0..1250)
+-- The ExpectedOTD value 1250 shall not be encoded by the transmitting entity and
+-- shall be treated by the receiving entity as 0.
+-- Uncertainty of Exptected OTD in bits
+ExpOTDUncertainty ::= INTEGER(0..7)
+
+-- Release 98 extensions
+
+GPSReferenceTimeUncertainty ::= INTEGER (0 .. 127) -- Coding according to Annex
+
+GPSTimeAssistanceMeasurements ::= SEQUENCE {
+ referenceFrameMSB INTEGER (0 .. 63), -- MSB of frame number
+ gpsTowSubms INTEGER (0 .. 9999) OPTIONAL, -- in units of 100ns, for MS based AGPS
+ deltaTow INTEGER (0 .. 127) OPTIONAL, -- for MS assisted AGPS
+ gpsReferenceTimeUncertainty GPSReferenceTimeUncertainty OPTIONAL
+}
+
+Rel-98-MsrPosition-Rsp-Extension ::= SEQUENCE {
+
+ -- First extension to Release 98
+ rel-98-Ext-MeasureInfo SEQUENCE {
+ otd-MeasureInfo-R98-Ext OTD-MeasureInfo-R98-Ext OPTIONAL
+ },
+ ...,
+ timeAssistanceMeasurements GPSTimeAssistanceMeasurements OPTIONAL
+ -- Further R98 extensions here
+}
+
+-- This is an addition to OTD-MeasureInfo element defined in original message,
+-- If OTD-MeasureInfo is absent, or if one or more OTD-MsrElementRest are present
+-- OTD-MeasureInfo-R98-Ext shall be absent.
+-- OTD-MeasureInfo-R98-Ext
+OTD-MeasureInfo-R98-Ext ::= SEQUENCE {
+ -- Measurement info elements
+ otdMsrFirstSets-R98-Ext OTD-MsrElementFirst-R98-Ext
+}
+
+-- OTD measurement information Ext for the first set only
+OTD-MsrElementFirst-R98-Ext ::= SEQUENCE {
+ -- additional measured neighbors in OTD measurements
+ otd-FirstSetMsrs-R98-Ext SeqOfOTD-FirstSetMsrs-R98-Ext OPTIONAL
+}
+SeqOfOTD-FirstSetMsrs-R98-Ext ::= SEQUENCE (SIZE(1..5)) OF OTD-FirstSetMsrs
+
+Rel-5-MsrPosition-Rsp-Extension ::= SEQUENCE {
+
+ extended-reference Extended-reference OPTIONAL,
+ -- The extended-reference shall be included by the MS if and only if previously
+ -- received from the SMLC in a Measure Position Request. When included, the value sent
+ -- by the MS shall equal the value received from the SMLC.
+
+ -- extension to Release 5, for RRLP pseudo-segmentation here
+ otd-MeasureInfo-5-Ext OTD-MeasureInfo-5-Ext OPTIONAL,
+ ulPseudoSegInd UlPseudoSegInd OPTIONAL, -- Included when uplink RRLP
+ -- Pseudo-segmentation is used, not included when no uplink pseudo-segmentation is used
+ ...
+ -- Possibly more extensions for Release 5 here later
+}
+
+Extended-reference ::= SEQUENCE {
+ smlc-code INTEGER (0..63),
+ transaction-ID INTEGER (0..262143)
+}
+
+OTD-MeasureInfo-5-Ext ::= SeqOfOTD-MsrElementRest
+ -- if more than one measurement sets are present this element is repeated
+ -- NumberOfSets - 1 (-1 = first set) combined in OTD-MeasureInfo-5-Ext and
+ -- OTD-MeasureInfo (e.g. if NumberOfSets is 3, then one otdMsrRestSets may
+ -- be sent in OTD-MeasureInfo-5-Ext and one in OTD-MeasureInfo)
+
+-- First part of Uplink RRLP Pseudo-segmentation indication, possibly more may be defined
+-- in the future for segmentation with more than two segments.
+UlPseudoSegInd ::= ENUMERATED {
+ firstOfMany (0),
+ secondOfMany(1)
+}
+
+Rel5-MsrPosition-Req-Extension ::= SEQUENCE {
+ extended-reference Extended-reference,
+ ...
+ -- Possibly more extensions for Release 5 here later
+}
+
+Rel5-AssistanceData-Extension ::= SEQUENCE {
+ extended-reference Extended-reference,
+ ...
+
+-- Possibly more extensions for Release 5 here later
+}
+
+Rel-5-ProtocolError-Extension::= SEQUENCE {
+ extended-reference Extended-reference OPTIONAL,
+ -- The extended-reference shall be included by the MS if and only if previously
+ -- received from the SMLC.
+ -- When included, the value sent by the MS shall equal the value received from the SMLC.
+ ...
+
+ -- Possibly more extensions for Release 5 here later
+}
+
+-- Release 7 Extensions here
+
+Rel7-MsrPosition-Req-Extension ::= SEQUENCE {
+velocityRequested NULL OPTIONAL,
+ ganssPositionMethod GANSSPositioningMethod OPTIONAL,
+ ganss-AssistData GANSS-AssistData OPTIONAL,
+ ganssCarrierPhaseMeasurementRequest NULL OPTIONAL,
+ ganssTODGSMTimeAssociationMeasurementRequest NULL OPTIONAL,
+requiredResponseTime RequiredResponseTime OPTIONAL,
+ ...
+ -- Further Release 7 extentions here
+}
+
+-- additional satellite systems may be added in future versions of the protocol
+GANSSPositioningMethod ::= BIT STRING {
+ gps (0),
+ galileo (1)} (SIZE (2..16))
+
+GANSS-AssistData ::= SEQUENCE {
+ ganss-controlHeader GANSS-ControlHeader
+}
+
+GANSS-ControlHeader ::= SEQUENCE {
+ ganssCommonAssistData GANSSCommonAssistData OPTIONAL,
+ ganssGenericAssistDataList SeqOfGANSSGenericAssistDataElement OPTIONAL
+}
+
+-- GANSS Common Assistance Data Elements
+GANSSCommonAssistData ::= SEQUENCE {
+ ganssReferenceTime GANSSReferenceTime OPTIONAL,
+ ganssRefLocation GANSSRefLocation OPTIONAL,
+ ganssIonosphericModel GANSSIonosphericModel OPTIONAL,
+ ...
+}
+
+-- List of GANSS Generic Assistance Data Elements, up to 8 GANSS
+SeqOfGANSSGenericAssistDataElement ::= SEQUENCE (SIZE (1..8)) OF GANSSGenericAssistDataElement
+
+-- GANSS Generic Assistance Data Elements
+GANSSGenericAssistDataElement ::= SEQUENCE {
+ ganssID INTEGER (0..7) OPTIONAL, -- Coding according to Annex
+ ganssTimeModel SeqOfGANSSTimeModel OPTIONAL,
+ ganssDiffCorrections GANSSDiffCorrections OPTIONAL,
+ ganssNavigationModel GANSSNavModel OPTIONAL,
+ ganssRealTimeIntegrity GANSSRealTimeIntegrity OPTIONAL,
+ ganssDataBitAssist GANSSDataBitAssist OPTIONAL,
+ ganssRefMeasurementAssist GANSSRefMeasurementAssist OPTIONAL,
+ ganssAlmanacModel GANSSAlmanacModel OPTIONAL,
+ ganssUTCModel GANSSUTCModel OPTIONAL,
+ ...
+}
+
+-- GANSS COMMON ASSISTANCE DATA ELEMENTS
+
+-- GANSS Reference Time IE
+GANSSReferenceTime ::= SEQUENCE {
+ ganssRefTimeInfo GANSSRefTimeInfo,
+ ganssTOD-GSMTimeAssociation GANSSTOD-GSMTimeAssociation OPTIONAL
+}
+
+-- GANSS Reference Time includes GANSS TOD, GANSS Day, uncertainty
+GANSSRefTimeInfo ::= SEQUENCE {
+ ganssDay INTEGER(0 .. 8191) OPTIONAL,
+ ganssTOD GANSSTOD,
+ ganssTODUncertainty GANSSTODUncertainty OPTIONAL,
+ ganssTimeID INTEGER (0 .. 7) OPTIONAL
+}
+
+-- GANSS TOD integer seconds
+GANSSTOD ::= INTEGER (0 .. 86399)
+
+-- GANSS TOD uncertainty
+GANSSTODUncertainty ::= INTEGER (0 .. 127) -- Coding according to Annex
+
+-- GANSS TOD-GSM Time association
+GANSSTOD-GSMTimeAssociation ::= SEQUENCE {
+ bcchCarrier BCCHCarrier, -- BCCH carrier
+ bsic BSIC, -- BSIC
+ frameNumber FrameNumber,
+ timeSlot TimeSlot,
+ bitNumber BitNumber,
+ frameDrift FrameDrift OPTIONAL
+}
+
+-- Frame drift
+FrameDrift ::= INTEGER(-64 .. 63)
+
+-- GANSS Reference Location IE
+GANSSRefLocation ::= SEQUENCE {
+ threeDLocation Ext-GeographicalInformation
+}
+
+-- GANSS Ionospheric Model IE
+-- GANSS Ionospheric Model consists of NeQuick model parameters and storm flags
+
+GANSSIonosphericModel ::= SEQUENCE {
+ ganssIonoModel GANSSIonosphereModel,
+ ganssIonoStormFlags GANSSIonoStormFlags OPTIONAL,
+ ...
+}
+
+-- GANSS ionosphere model. Coding according to Annex
+GANSSIonosphereModel ::= SEQUENCE {
+ ai0 INTEGER (0 .. 4095),
+ ai1 INTEGER (0 .. 4095),
+ ai2 INTEGER (0 .. 4095)
+}
+
+-- GANSS ionosphere storm flags
+GANSSIonoStormFlags ::= SEQUENCE {
+ ionoStormFlag1 INTEGER (0 .. 1),
+ ionoStormFlag2 INTEGER (0 .. 1),
+ ionoStormFlag3 INTEGER (0 .. 1),
+ ionoStormFlag4 INTEGER (0 .. 1),
+ ionoStormFlag5 INTEGER (0 .. 1)
+}
+
+-- GANSS GENERIC ASSISTANCE DATA ELEMENTS
+
+-- GANSS Time Model IE consists of time offset and first and second order parameters to relate GNSS
+-- specific system time to selected time reference
+SeqOfGANSSTimeModel ::= SEQUENCE (SIZE(1..7)) OF GANSSTimeModelElement
+
+GANSSTimeModelElement ::= SEQUENCE {
+ ganssTimeModelRefTime INTEGER(0 .. 65535),
+ tA0 TA0,
+ tA1 TA1 OPTIONAL,
+ tA2 TA2 OPTIONAL,
+ gnssTOID INTEGER (0 .. 7),
+ weekNumber INTEGER (0 .. 8191) OPTIONAL
+}
+
+-- GANSS time model parameter A0
+TA0 ::= INTEGER (-2147483648 .. 2147483647)
+
+-- GANSS time model parameter A1
+TA1 ::= INTEGER (-8388608 .. 8388607)
+
+-- GANSS time model parameter A2
+TA2 ::= INTEGER (-64 .. 63)
+
+-- DGANSS Corrections IE
+GANSSDiffCorrections ::= SEQUENCE {
+ dganssRefTime INTEGER (0 .. 119), -- DGANSS reference time
+
+ -- N_SGN_TYPE can be read from number of elements of sgnTypeList
+ sgnTypeList SeqOfSgnTypeElement
+}
+
+SeqOfSgnTypeElement ::= SEQUENCE (SIZE (1..3)) OF SgnTypeElement -- max three signals per GNSS
+
+-- DGANSS signal type element, once per GNSS signal type included in DGANSS
+SgnTypeElement ::= SEQUENCE {
+ ganssSignalID GANSSSignalID OPTIONAL, -- signal type identity
+ ganssStatusHealth INTEGER (0 .. 7),
+ -- N_SGN can be read from number of elements of dganssSgnList
+ dganssSgnList SeqOfDGANSSSgnElement
+}
+
+GANSSSignalID ::= INTEGER (0 .. 3) -- Coding according to Annex
+SeqOfDGANSSSgnElement ::= SEQUENCE (SIZE (1..16)) OF DGANSSSgnElement
+
+-- number of correction for signals
+DGANSSSgnElement ::= SEQUENCE {
+ svID SVID, -- Satellite identity
+
+--- Sequence number for GANSS Navigation Model that matches the DGANSS correction set
+ iod INTEGER (0 .. 1023),
+
+ -- User Differential Range Error
+ udre INTEGER (0..3),
+
+ -- Pseudo Range Correction, range is
+ -- -655.04 - +655.04,
+ pseudoRangeCor INTEGER (-2047..2047),
+
+ -- Pseudo Range Rate Correction, range is
+ -- -4.064 - +4.064,
+ rangeRateCor INTEGER (-127..127)
+}
+
+SVID ::= INTEGER (0 .. 63) -- Coding according to Annex
+
+-- GANSS Navigation Model IE
+GANSSNavModel ::= SEQUENCE {
+ nonBroadcastIndFlag INTEGER (0 .. 1),
+ toeMSB INTEGER (0 .. 31) OPTIONAL, -- 5 MSB of toe and toc
+ eMSB INTEGER (0 .. 127) OPTIONAL,
+ sqrtAMBS INTEGER (0 .. 63) OPTIONAL,
+ ganssSatelliteList SeqOfGANSSSatelliteElement
+}
+
+SeqOfGANSSSatelliteElement ::= SEQUENCE (SIZE(1..32)) OF GANSSSatelliteElement
+
+GANSSSatelliteElement ::= SEQUENCE {
+ svID SVID,
+ svHealth INTEGER (-7 .. 13), -- Coding according to Annex
+ iod INTEGER (0 .. 1023), -- Coding according to Annex
+ ganssClockModel GANSSClockModel,
+ ganssOrbitModel GANSSOrbitModel,
+ ...
+}
+
+-- GANSS orbit model for the GNSS satellite according to the choice
+GANSSOrbitModel ::= CHOICE {
+ keplerianSet NavModel-KeplerianSet,
+ ...
+}
+
+-- Navigation model in Keplerian parameters
+NavModel-KeplerianSet ::= SEQUENCE {
+ keplerToeLSB INTEGER (0 .. 511), -- 9LSB are given in GANSSNavigationModel
+ keplerW INTEGER (-2147483648..2147483647),
+ keplerDeltaN INTEGER (-32768..32767),
+ keplerM0 INTEGER (-2147483648..2147483647),
+ keplerOmegaDot INTEGER (-8388608..8388607),
+ keplerELSB INTEGER (0..33554431),
+ keplerIDot INTEGER (-8192..8191),
+ keplerAPowerHalfLSB INTEGER (0.. 67108863),
+ keplerI0 INTEGER (-2147483648..2147483647),
+ keplerOmega0 INTEGER (-2147483648..2147483647),
+ keplerCrs INTEGER (-32768..32767),
+ keplerCis INTEGER (-32768..32767),
+ keplerCus INTEGER (-32768..32767),
+ keplerCrc INTEGER (-32768..32767),
+ keplerCic INTEGER (-32768..32767),
+ keplerCuc INTEGER (-32768..32767)
+}
+
+-- GANSS clock model for the GNSS satellite according to the choice
+GANSSClockModel ::= CHOICE {
+ standardClockModelList SeqOfStandardClockModelElement,
+ ...
+}
+
+SeqOfStandardClockModelElement ::= SEQUENCE (SIZE(1..2)) OF StandardClockModelElement
+
+StandardClockModelElement ::= SEQUENCE {
+ stanClockTocLSB INTEGER (0 .. 511), -- 9LSB of time of clock
+ stanClockAF2 INTEGER (-2048 .. 2047),
+ stanClockAF1 INTEGER (-131072 .. 131071),
+ stanClockAF0 INTEGER (-134217728 .. 134217727),
+ stanClockTgd INTEGER (-512 .. 511) OPTIONAL,
+ stanModelID INTEGER (0 .. 1) OPTIONAL,
+ ...
+}
+
+-- GANSS Real-Time Integrity IE
+GANSSRealTimeIntegrity ::= SEQUENCE {
+ -- list of bad signals
+ -- NBS can be read from number of elements in SeqOf-BadSignalSet
+ ganssBadSignalList SeqOfBadSignalElement
+}
+
+SeqOfBadSignalElement ::= SEQUENCE (SIZE(1..16)) OF BadSignalElement
+
+BadSignalElement ::= SEQUENCE {
+ badSVID SVID, -- Coding according to Annex
+ badSignalID INTEGER (0 .. 3) OPTIONAL -- Coding according to Annex
+}
+
+
+-- GANSS Data Bit Assistance IE
+GANSSDataBitAssist ::= SEQUENCE {
+ ganssTOD INTEGER (0 .. 59),
+ svID SVID,
+ ganssDataTypeID INTEGER (0 .. 2), -- Coding according to Annex
+ -- list of navigation data bits
+ -- N_BIT can be read from number of elements in SeqOf-DataBits
+ ganssDataBits SeqOf-GANSSDataBits
+}
+
+SeqOf-GANSSDataBits ::= SEQUENCE (SIZE(1 .. 1024)) OF GANSSDataBit
+GANSSDataBit ::= INTEGER(0 .. 1)
+
+-- GANSS Reference Measurement Assistance IE
+-- Code and Doppler assistance from the network.
+GANSSRefMeasurementAssist ::= SEQUENCE {
+ ganssSignalID INTEGER (0 .. 3) OPTIONAL, -- Coding according to Annex
+ ganssRefMeasAssitList SeqOfGANSSRefMeasurementElement
+}
+
+SeqOfGANSSRefMeasurementElement ::= SEQUENCE (SIZE(1 .. 16)) OF GANSSRefMeasurementElement
+
+GANSSRefMeasurementElement ::= SEQUENCE {
+ svID SVID,
+ -- Doppler 0th order term,
+ -- -1024 m/s to 1023.5 m/s with 0.5 m/s resolution)
+ doppler0 INTEGER (-2048 .. 2047), -- Coding according to Annex
+ additionalDoppler AdditionalDopplerFields OPTIONAL,
+ codePhase INTEGER (0 .. 1022), -- Code Phase in ms
+ intCodePhase INTEGER (0 .. 127), -- Integer Code Phase in ms
+ codePhaseSearchWindow INTEGER (0 .. 31), -- Code Phase Search Window, see Annex
+ additionalAngle AddionalAngleFields OPTIONAL,
+ ...
+}
+
+AdditionalDopplerFields ::= SEQUENCE {
+ -- Doppler 1st order term, -0.2 - +0.1 m/s2
+ doppler1 INTEGER (0..63),
+ dopplerUncertainty INTEGER (0..4)
+}
+
+-- GANSS Almanac Model IE
+GANSSAlmanacModel ::= SEQUENCE {
+ weekNumber INTEGER (0 .. 255),
+ svIDMask SVIDMASK,
+ toa INTEGER (0 .. 255) OPTIONAL,
+ ioda INTEGER (0 .. 3) OPTIONAL,
+ ganssAlmanacList SeqOfGANSSAlmanacElement
+}
+
+-- SV ID Mask, LSB for ID 1 and MSB for ID 36
+SVIDMASK ::= BIT STRING (SIZE (1..36))
+
+SeqOfGANSSAlmanacElement ::= SEQUENCE (SIZE(1 .. 36)) OF GANSSAlmanacElement
+
+-- GANSS Almanac Model
+GANSSAlmanacElement ::= CHOICE {
+ keplerianAlmanacSet Almanac-KeplerianSet,
+ ...
+}
+
+-- Almanac parameters according to Keplerian parameters
+Almanac-KeplerianSet ::= SEQUENCE {
+ kepAlmanacE INTEGER (0 .. 2047),
+ kepAlmanacDeltaI INTEGER (-1024 .. 1023),
+ kepAlmanacOmegaDot INTEGER (-1024 .. 1023),
+ kepSVHealth INTEGER (0 .. 15), -- Coding according to Annex
+ kepAlmanacAPowerHalf INTEGER (-65536 .. 65535),
+ kepAlmanacOmega0 INTEGER (-32768 .. 32767),
+ kepAlmanacW INTEGER (-32768 .. 32767),
+ kepAlmanacM0 INTEGER (-32768 .. 32767),
+ kepAlmanacAF0 INTEGER (-8192 .. 8191),
+ kepAlmanacAF1 INTEGER (-1024..1023)
+}
+
+-- GANSS Universal Time Coordinate Model
+GANSSUTCModel ::= SEQUENCE {
+ ganssUtcA1 INTEGER (-8388608..8388607),
+ ganssUtcA0 INTEGER (-2147483648..2147483647),
+ ganssUtcTot INTEGER (0..255),
+ ganssUtcWNt INTEGER (0..255),
+ ganssUtcDeltaTls INTEGER (-128..127),
+ ganssUtcWNlsf INTEGER (0..255),
+ ganssUtcDN INTEGER (-128..127),
+ ganssUtcDeltaTlsf INTEGER (-128..127)
+}
+
+--Required Measurement Request Response Time, range is 1 to 128 seconds.
+RequiredResponseTime ::= INTEGER (1..128)
+
+Rel-7-MsrPosition-Rsp-Extension ::= SEQUENCE {
+
+ velEstimate VelocityEstimate OPTIONAL,
+ -- Horizontal Velocity
+ -- Horizontal with Vertical Velocity
+ -- Horizontal Velocity with Uncertainty
+ -- Horizontal with Vertical Velocity and Uncertainty
+ ganssLocationInfo GANSSLocationInfo OPTIONAL,
+ ganssMeasureInfo GANSSMeasureInfo OPTIONAL,
+ ...
+-- Further Release 7 extensions here
+}
+
+-- GANSS Location Information contains location estimate, time stamp with uncertainty
+-- and optionally Reference Frame field
+GANSSLocationInfo ::= SEQUENCE {
+ referenceFrame ReferenceFrame OPTIONAL, -- Reference Frame Number
+ ganssTODm GANSSTODm OPTIONAL, -- GNSS TOD modulo
+ ganssTODFrac INTEGER (0 .. 16384) OPTIONAL, -- Coding according to Annex
+ ganssTODUncertainty GANSSTODUncertainty OPTIONAL, -- Coding according to Annex
+ ganssTimeID INTEGER (0 .. 3) OPTIONAL, -- Coding according to Annex
+ fixType FixType,
+ posData PositionData,
+ stationaryIndication INTEGER(0 .. 1) OPTIONAL, -- '0' if moving or motion not known
+ -- Possible shapes carried in posEstimate are
+ -- ellipsoid point,
+ -- ellipsoid point with uncertainty circle
+ -- ellipsoid point with uncertainty ellipse
+ -- ellipsoid point with altitude and uncertainty ellipsoid
+ posEstimate Ext-GeographicalInformation,
+ ...
+}
+
+PositionData ::= BIT STRING {
+ e-otd(0),
+ gps (1),
+ galileo (2) } (SIZE (3..16))
+
+
+-- GANSS TOD modulo 1 hour
+GANSSTODm ::= INTEGER (0 .. 3599999)
+
+ReferenceFrame ::= SEQUENCE {
+ referenceFN INTEGER (0 .. 65535),
+ -- Note that applicable range for referenceFN is 0 - 42431
+ referenceFNMSB INTEGER (0 .. 63) OPTIONAL -- MSB of Reference Frame Number
+}
+
+
+
+-- GANSS Measurement Information
+GANSSMeasureInfo ::= SEQUENCE {
+ -- Measurement info elements
+ -- user has to make sure that in this element is number of elements
+ -- defined in reference BTS identity
+ ganssMsrSetList SeqOfGANSS-MsrSetElement
+}
+SeqOfGANSS-MsrSetElement ::= SEQUENCE (SIZE(1..3)) OF GANSS-MsrSetElement
+
+-- GANSS measurement information 1-3 times in a message
+GANSS-MsrSetElement ::= SEQUENCE {
+ referenceFrame ReferenceFrame OPTIONAL, -- Reference Frame Number
+ ganssTODm GANSSTODm OPTIONAL, -- GANSS TOD modulo
+ deltaGNASSTOD INTEGER (0 .. 127) OPTIONAL,
+ ganssTODUncertainty GANSSTODUncertainty OPTIONAL, -- Coding accoring to Annex
+
+ --N_SGN_TYPE can be read from number of elements of SeqOfGANSS-SgnTypeElement
+ ganss-SgnTypeList SeqOfGANSS-SgnTypeElement
+}
+
+-- Measurements can be returned up to 6 different signal types
+SeqOfGANSS-SgnTypeElement ::= SEQUENCE (SIZE(1..6)) OF GANSS-SgnTypeElement
+
+GANSS-SgnTypeElement ::= SEQUENCE {
+ ganssSignalID INTEGER (0 .. 15), -- Coding accroding to Annex
+ --N_SGN can be read from number of elements of SeqOfGANSS-SgnElement
+ ganss-SgnList SeqOfGANSS-SgnElement
+}
+
+-- Measurements can be returned up to 16 per signal types
+SeqOfGANSS-SgnElement ::= SEQUENCE (SIZE(1..16)) OF GANSS-SgnElement
+
+
+GANSS-SgnElement ::= SEQUENCE {
+ svID SVID,
+ cNo INTEGER (0 .. 63),
+ mpathDet MpathIndic, -- Coding according to Annex
+ carrierQualityInd INTEGER (0 .. 3) OPTIONAL, -- Coding according to Annex
+ codePhase INTEGER (0 .. 2097151),
+ integerCodePhase INTEGER (0 .. 63) OPTIONAL,
+ codePhaseRMSError INTEGER (0..63), -- Coding accoring to Annex
+ doppler INTEGER (-32768 .. 32767) OPTIONAL,
+ adr INTEGER (0 .. 33554431) OPTIONAL
+}
+
+Rel7-AssistanceData-Extension ::= SEQUENCE {
+ ganss-AssistData GANSS-AssistData OPTIONAL,
+ ganssCarrierPhaseMeasurementRequest NULL OPTIONAL,
+ ganssTODGSMTimeAssociationMeasurementRequest NULL OPTIONAL,
+ ...
+-- Possibly more extensions for Release 7 here
+}
+
+END
diff --git a/asn1/rrlp/RRLP-Messages.asn b/asn1/rrlp/RRLP-Messages.asn
new file mode 100644
index 0000000000..c68a357488
--- /dev/null
+++ b/asn1/rrlp/RRLP-Messages.asn
@@ -0,0 +1,38 @@
+-- RRLP-Messages.asn
+--
+-- Taken from 3GPP TS 44.031 V7.4.0 (2007-03)
+-- http://www.3gpp.org/ftp/Specs/archive/44_series/44.031/44031-740.zip/44031-740.doc
+--
+-- 3.1 General Format of RRLP Message
+--
+
+RRLP-Messages
+-- { RRLP-messages }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ MsrPosition-Req, MsrPosition-Rsp, AssistanceData,
+ ProtocolError
+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,
+ ...
+
+}
+
+END
diff --git a/asn1/rrlp/packet-rrlp-template.c b/asn1/rrlp/packet-rrlp-template.c
index 48e1d40b47..bccbf703fa 100644
--- a/asn1/rrlp/packet-rrlp-template.c
+++ b/asn1/rrlp/packet-rrlp-template.c
@@ -38,8 +38,6 @@
#include <stdio.h>
#include <string.h>
-#include "packet-rrlp.h"
-
#include "packet-ber.h"
#include "packet-per.h"
#include "packet-gsm_map.h"
diff --git a/asn1/rrlp/packet-rrlp-template.h b/asn1/rrlp/packet-rrlp-template.h
deleted file mode 100644
index 5c34608fca..0000000000
--- a/asn1/rrlp/packet-rrlp-template.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* packet-rrlp.h
- * Routines for 3GPP Radio Resource LCS Protocol (RRLP) packet dissection
- * Copyright 2006, Anders Broman <anders.broman@ericsson.com>
- *
- * $Id$
- *
- * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef PACKET_RRLP_H
-#define PACKET_RRLP_H
-
-
-
-/* #include "packet-rrlp-exp.h" */
-
-#endif /* PACKET_RRLP_H */
-
-
diff --git a/asn1/rrlp/rrlp.asn b/asn1/rrlp/rrlp.asn
deleted file mode 100644
index 0379f80ce4..0000000000
--- a/asn1/rrlp/rrlp.asn
+++ /dev/null
@@ -1,1052 +0,0 @@
-RRLP-Messages
--- { RRLP-messages }
-
-DEFINITIONS AUTOMATIC TAGS ::=
-
-BEGIN
-
---IMPORTS
-
--- MsrPosition-Req, MsrPosition-Rsp, AssistanceData,
--- ProtocolError
-
---FROM
--- RRLP-Components
--- { RRLP-Components }
---;
-
-IMPORTS
--- Ext-GeographicalInformation
---FROM
--- MAP-LCS-DataTypes {
--- ccitt identified-organization (4) etsi (0) mobileDomain (0)
--- gsm-Network (1) modules (3) map-LCS-DataTypes (25) version5 (5)}
-
--- ExtensionContainer
---FROM MAP-ExtensionDataTypes {
--- ccitt identified-organization (4) etsi (0) mobileDomain (0)
--- gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version4 (4)}
- ;
--- local import
--- maxExt-GeographicalInformation INTEGER ::= 20
-Ext-GeographicalInformation ::= OCTET STRING (SIZE (1..20))
-ExtensionContainer ::= OCTET STRING
-
---ExtensionContainer ::= SEQUENCE {
--- privateExtensionList [0] IMPLICIT PrivateExtensionList OPTIONAL,
--- pcsExtensions [1] IMPLICIT PcsExtensions OPTIONAL,
--- ... }
-
---PrivateExtensionList ::= SEQUENCE OF PrivateExtension
-
---PrivateExtension ::= SEQUENCE {
--- extId OBJECT IDENTIFIER, MAP-EXTENSION .&extensionId
--- extType ANY OPTIONAL { @extId }
---}
-
---PcsExtensions ::= SEQUENCE {
--- ...
--- }
-
-
-PDU ::= SEQUENCE {
- referenceNumber INTEGER (0..7),
- component RRLP-Component
-}
-
-RRLP-Component ::= CHOICE {
- msrPositionReq MsrPosition-Req,
- msrPositionRsp MsrPosition-Rsp,
- assistanceData AssistanceData,
- assistanceDataAck NULL,
- protocolError ProtocolError,
- ...
-}
-
---RRLP-Components
--- { RRLP-Components }
--- ETSI TS 144 031 V6.8.0
---DEFINITIONS AUTOMATIC TAGS ::=
-
---BEGIN
-
---IMPORTS
-
--- Ext-GeographicalInformation
---FROM
--- MAP-LCS-DataTypes {
--- ccitt identified-organization (4) etsi (0) mobileDomain (0)
--- gsm-Network (1) modules (3) map-LCS-DataTypes (25) version5 (5)}
-
--- ExtensionContainer
---FROM MAP-ExtensionDataTypes {
--- ccitt identified-organization (4) etsi (0) mobileDomain (0)
--- gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version4 (4)}
--- ;
--- Add here other ASN.1 definitions presented below
--- in chapters 4 and 5.
-
--- add this definition to RRLP-Components module
--- Measurement Position request component
-
-MsrPosition-Req ::= SEQUENCE {
- positionInstruct PositionInstruct,
- referenceAssistData ReferenceAssistData OPTIONAL,
- msrAssistData MsrAssistData OPTIONAL,
- systemInfoAssistData SystemInfoAssistData OPTIONAL,
- gps-AssistData GPS-AssistData OPTIONAL,
- extensionContainer ExtensionContainer OPTIONAL,
- ...,
--- Release 98 extension element
- rel98-MsrPosition-Req-extension Rel98-MsrPosition-Req-Extension OPTIONAL,
--- Release 5 extension element
- rel5-MsrPosition-Req-extension Rel5-MsrPosition-Req-Extension OPTIONAL
-}
-
--- add this defintion to RRLP-Components module
--- Measurement Position response component
-
-MsrPosition-Rsp ::= SEQUENCE {
- multipleSets MultipleSets OPTIONAL,
- referenceIdentity ReferenceIdentity OPTIONAL,
- otd-MeasureInfo OTD-MeasureInfo OPTIONAL,
- locationInfo LocationInfo OPTIONAL,
- gps-MeasureInfo GPS-MeasureInfo OPTIONAL,
- locationError LocationError OPTIONAL,
- extensionContainer ExtensionContainer OPTIONAL,
- ...,
--- Release extension here
- rel-98-MsrPosition-Rsp-Extension Rel-98-MsrPosition-Rsp-Extension OPTIONAL,
- rel-5-MsrPosition-Rsp-Extension Rel-5-MsrPosition-Rsp-Extension OPTIONAL
--- rel-5-MsrPosition-Rsp-Extension and other possible future extensions
--- are the only information elements that may be included in the 2nd
--- MsrPosition-Rsp component when RRLP pseudo-segmentation is used
-}
-
--- add this defintion to RRLP-Components module
--- Assistance Data component
-
-AssistanceData ::= SEQUENCE {
- referenceAssistData ReferenceAssistData OPTIONAL,
- msrAssistData MsrAssistData OPTIONAL,
- systemInfoAssistData SystemInfoAssistData OPTIONAL,
- gps-AssistData GPS-AssistData OPTIONAL,
- moreAssDataToBeSent MoreAssDataToBeSent OPTIONAL, -- If not present, interpret as only
--- Assistance Data component used to
--- deliver entire set of assistance
--- data.
- extensionContainer ExtensionContainer OPTIONAL,
- ...,
--- Release extension here
- rel98-AssistanceData-Extension Rel98-AssistanceData-Extension OPTIONAL,
- rel5-AssistanceData-Extension Rel5-AssistanceData-Extension OPTIONAL
-}
-
--- add this defintion to RRLP-Components module
--- Protocol Error component
- ProtocolError ::= SEQUENCE {
- errorCause ErrorCodes,
- extensionContainer ExtensionContainer OPTIONAL,
- ...,
--- Release extensions here
- rel-5-ProtocolError-Extension Rel-5-ProtocolError-Extension OPTIONAL
-}
-
-PositionInstruct ::= SEQUENCE {
--- Method type
- methodType MethodType,
- positionMethod PositionMethod,
- measureResponseTime MeasureResponseTime,
- useMultipleSets UseMultipleSets,
- environmentCharacter EnvironmentCharacter OPTIONAL
-}
-
---
-MethodType ::= CHOICE {
- msAssisted AccuracyOpt, -- accuracy is optional
- msBased Accuracy, -- accuracy is mandatory
- msBasedPref Accuracy, -- accuracy is mandatory
- msAssistedPref Accuracy -- accuracy is mandatory
-}
-
--- Accuracy of the location estimation
-AccuracyOpt ::= SEQUENCE {
- accuracy Accuracy OPTIONAL
-}
-
--- The values of this field are defined in 3GPP TS 23.032 (Uncertainty code)
-Accuracy ::= INTEGER (0..127)
-
--- Position Method
-PositionMethod ::= ENUMERATED {
- eotd (0),
- gps (1),
- gpsOrEOTD (2)
-}
-
--- Measurement request response time
-MeasureResponseTime ::= INTEGER (0..7)
-
--- useMultiple Sets, FFS!
-UseMultipleSets ::= ENUMERATED {
- multipleSets (0), -- multiple sets are allowed
- oneSet (1) -- sending of multiple is not allowed
-}
-
--- Environment characterization
-EnvironmentCharacter ::= ENUMERATED {
- badArea (0), -- bad urban or suburban, heavy multipath and NLOS
- notBadArea (1), -- light multipath and NLOS
- mixedArea (2), -- not defined or mixed environment
- ...
-}
--- E-OTD reference BTS for Assitance data IE
-ReferenceAssistData ::= SEQUENCE {
- bcchCarrier BCCHCarrier, -- BCCH carrier
- bsic BSIC, -- BSIC
- timeSlotScheme TimeSlotScheme, -- Timeslot scheme
- btsPosition BTSPosition OPTIONAL
-}
-
--- ellipsoid point and
--- ellipsoid point with altitude and uncertainty ellipsoid shapes are supported
-BTSPosition ::= Ext-GeographicalInformation
-
--- RF channel number of BCCH
-BCCHCarrier ::= INTEGER (0..1023)
-
--- Base station Identity Code
-BSIC ::= INTEGER (0..63)
-
--- Timeslot scheme
-TimeSlotScheme ::= ENUMERATED {
- equalLength (0),
- variousLength (1)
-}
-
--- Time slot (modulo)
-ModuloTimeSlot ::= INTEGER (0..3)
-
--- E-OTD measurement assistance data IE
--- The total number of neighbors in this element (MsrAssistData)
--- and in SystemInfoAssistData element (presented neighbors
--- can be at a maximum 15!)
-MsrAssistData ::= SEQUENCE {
- msrAssistList SeqOfMsrAssistBTS
-}
-
-SeqOfMsrAssistBTS ::= SEQUENCE (SIZE(1..15)) OF MsrAssistBTS
-
-MsrAssistBTS ::= SEQUENCE {
- bcchCarrier BCCHCarrier, -- BCCH carrier
- bsic BSIC, -- BSIC
- multiFrameOffset MultiFrameOffset, -- multiframe offset
- timeSlotScheme TimeSlotScheme, -- Timeslot scheme
- roughRTD RoughRTD, -- rough RTD value
--- Location Calculation Assistance data is moved here
- calcAssistanceBTS CalcAssistanceBTS OPTIONAL
-}
--- Multiframe offset
-MultiFrameOffset ::= INTEGER (0..51)
--- The Multiframe Offset value 51 shall not be encoded by the transmitting entity and
--- shall be treated by the receiving entity as 0.
--- Rough RTD value between one base station and reference BTS
-
-RoughRTD ::= INTEGER (0..1250)
--- The RoughRTD value 1250 shall not be encoded by the transmitting entity and shall
--- be treated by the receiving entity as 0.
--- E-OTD Measurement assistance data for system information List IE
--- The total number of base stations in this element (SystemInfoAssistData
--- presented neighbors) and in MsrAssistData element can be at a maximum 15.
-
-SystemInfoAssistData ::= SEQUENCE {
- systemInfoAssistList SeqOfSystemInfoAssistBTS
-}
-
-SeqOfSystemInfoAssistBTS::= SEQUENCE (SIZE(1..32)) OF SystemInfoAssistBTS
--- whether n.th is present or not ?
-
-SystemInfoAssistBTS ::= CHOICE {
- notPresent NULL,
- present AssistBTSData
-}
-
--- Actual assistance data for system information base station
-AssistBTSData ::= SEQUENCE {
- bsic BSIC, -- BSIC
- multiFrameOffset MultiFrameOffset, -- multiframe offset
- timeSlotScheme TimeSlotScheme, -- Timeslot scheme
- roughRTD RoughRTD, -- rough RTD value
--- Location Calculation Assistance data
- calcAssistanceBTS CalcAssistanceBTS OPTIONAL
-}
-
--- E-OTD Location calculation assistance data,
--- CalcAssistanceBTS element is optional not subfields
-CalcAssistanceBTS ::= SEQUENCE {
- fineRTD FineRTD, -- fine RTD value between base stations
- referenceWGS84 ReferenceWGS84 -- reference coordinates
-}
-
--- Coordinates of neighbour BTS, WGS-84 ellipsoid
-ReferenceWGS84 ::= SEQUENCE {
- relativeNorth RelDistance, -- relative distance (south negative)
- relativeEast RelDistance, -- relative distance (west negative)
--- Relative Altitude is not always known
- relativeAlt RelativeAlt OPTIONAL -- relative altitude
-}
-
--- Fine RTD value between this BTS and the reference BTS
-FineRTD ::= INTEGER (0..255)
-
--- Relative north/east distance
-RelDistance ::= INTEGER (-200000..200000)
-
--- Relative altitude
-
-RelativeAlt ::= INTEGER (-4000..4000)
--- Measure position response IEs
--- Reference Identity
--- Multiple sets
-
-MultipleSets ::= SEQUENCE {
- -- number of reference sets
- nbrOfSets INTEGER (2..3),
- -- This field actually tells the number of reference BTSs
- nbrOfReferenceBTSs INTEGER (1..3),
- -- This field is conditional and included optionally only if
- -- nbrOfSets is 3 and number of reference BTSs is 2.
- referenceRelation ReferenceRelation OPTIONAL
-}
-
--- Relation between refence BTSs and sets
-ReferenceRelation ::= ENUMERATED {
- secondBTSThirdSet (0), -- 1st BTS related to 1st and 2nd sets
- secondBTSSecondSet (1), -- 1st BTS related to 1st and 3rd sets
- firstBTSFirstSet (2) -- 1st BTS related to 1st set
-}
-
--- Reference BTS Identity, this element contains number of
--- BTSs told nbrOfReferenceBTSs field in Multiple sets element)
-
-ReferenceIdentity ::= SEQUENCE {
- -- Reference BTS list
- refBTSList SeqOfReferenceIdentityType
-}
-SeqOfReferenceIdentityType ::= SEQUENCE (SIZE(1..3)) OF ReferenceIdentityType
-
--- Cell identity
-ReferenceIdentityType ::= CHOICE {
- bsicAndCarrier BSICAndCarrier, -- BSIC and Carrier
- ci CellID, -- Cell ID, LAC not needed
- requestIndex RequestIndex, -- Index to Requested Neighbor List
- systemInfoIndex SystemInfoIndex, -- Index to System info list, this type of ref. identity
- -- shall not be used by the MS unless it has received
- -- the SystemInfoAssistData from the SMLC for this cell.
- ciAndLAC CellIDAndLAC -- CI and LAC
-}
-
-BSICAndCarrier ::= SEQUENCE {
- carrier BCCHCarrier,
- bsic BSIC
-}
-
-RequestIndex ::= INTEGER (1..16)
-
-SystemInfoIndex ::= INTEGER (1..32)
-
-CellIDAndLAC ::= SEQUENCE {
- referenceLAC LAC, -- Location area code
- referenceCI CellID -- Cell identity
-}
-
-CellID ::= INTEGER (0..65535)
-
-LAC ::= INTEGER (0..65535)
-
--- OTD-MeasureInfo
-
-OTD-MeasureInfo ::= SEQUENCE {
- -- Measurement info elements, OTD-MsrElement is repeated number of times
- -- told in nbrOfReferenceBTSs in MultipleSets, default value is 1
- otdMsrFirstSets OTD-MsrElementFirst,
- -- if more than one sets are present this element is repeated
- -- NumberOfSets - 1 (-1 = first set)
- otdMsrRestSets SeqOfOTD-MsrElementRest OPTIONAL
-}
-
-SeqOfOTD-MsrElementRest ::= SEQUENCE (SIZE(1..2)) OF OTD-MsrElementRest
-
--- OTD measurent information for 1 set
-OTD-MsrElementFirst ::= SEQUENCE {
- refFrameNumber INTEGER (0..42431), -- Frame number modulo 42432
- referenceTimeSlot ModuloTimeSlot,
- toaMeasurementsOfRef TOA-MeasurementsOfRef OPTIONAL,
- stdResolution StdResolution,
- taCorrection INTEGER (0..960) OPTIONAL, -- TA correction
--- measured neighbors in OTD measurements
- otd-FirstSetMsrs SeqOfOTD-FirstSetMsrs OPTIONAL
-}
-
-SeqOfOTD-FirstSetMsrs ::= SEQUENCE (SIZE(1..10)) OF OTD-FirstSetMsrs
-
--- OTD measurent information 2 and 3 sets if exist
-OTD-MsrElementRest ::= SEQUENCE {
- refFrameNumber INTEGER (0..42431), -- Frame number modulo 42432
- referenceTimeSlot ModuloTimeSlot,
- toaMeasurementsOfRef TOA-MeasurementsOfRef OPTIONAL,
- stdResolution StdResolution,
- taCorrection INTEGER (0..960) OPTIONAL, -- TA correction
- -- measured neighbors in OTD measurements
- otd-MsrsOfOtherSets SeqOfOTD-MsrsOfOtherSets OPTIONAL
-}
-
-SeqOfOTD-MsrsOfOtherSets ::= SEQUENCE (SIZE(1..10)) OF OTD-MsrsOfOtherSets
-
--- Standard deviation of the TOA measurements from the reference BTS
-TOA-MeasurementsOfRef ::= SEQUENCE {
- refQuality RefQuality,
- numOfMeasurements NumOfMeasurements
-}
-
-RefQuality ::= INTEGER (0..31) -- St Dev of TOA of reference as defined in annex
-
-NumOfMeasurements ::= INTEGER (0..7) -- No. of measurements for RefQuality as defined in annex
-
-StdResolution ::= INTEGER (0..3) -- Values of resolution are defined in annex
-
-OTD-FirstSetMsrs ::= OTD-MeasurementWithID
-
--- Neighbour info in OTD measurements 0-10 times in TD measurement info
-OTD-MsrsOfOtherSets ::= CHOICE {
- identityNotPresent OTD-Measurement,
- identityPresent OTD-MeasurementWithID
-}
-
--- For this OTD measurement identity is same as the identity of BTS
--- in the first set with same sequence number
-OTD-Measurement ::= SEQUENCE {
- nborTimeSlot ModuloTimeSlot,
- eotdQuality EOTDQuality,
- otdValue OTDValue
-}
-
--- This measurement contains the BTS identity and measurement
-OTD-MeasurementWithID ::=SEQUENCE {
- neighborIdentity NeighborIdentity,
- nborTimeSlot ModuloTimeSlot,
- eotdQuality EOTDQuality,
- otdValue OTDValue
-}
-
-EOTDQuality ::= SEQUENCE {
- nbrOfMeasurements INTEGER (0..7),
- stdOfEOTD INTEGER (0..31)
-}
-
-NeighborIdentity ::= CHOICE {
- bsicAndCarrier BSICAndCarrier, -- BSIC and Carrier
- ci CellID, -- Cell ID, LAC not needed
- multiFrameCarrier MultiFrameCarrier, -- MultiFrameOffest and BSIC
- requestIndex RequestIndex, -- Index to Requested Neighbor List
- systemInfoIndex SystemInfoIndex, -- Index to System info list, this type of neighbour
- -- identity shall not be used by the MS unless it has
- -- received the SystemInfoAssistData from the SMLC for
- -- this cell.
- ciAndLAC CellIDAndLAC -- CI and LAC
-}
-
--- Multiframe and carrier
-MultiFrameCarrier ::= SEQUENCE {
- bcchCarrier BCCHCarrier,
- multiFrameOffset MultiFrameOffset
-}
-
--- OTD measurement value for neighbour
-OTDValue ::= INTEGER (0..39999)
-
--- Location information IE
-LocationInfo ::= SEQUENCE {
- refFrame INTEGER (0..65535), -- Reference Frame number
- -- If refFrame is within (42432..65535), it shall be ignored by the receiver
- -- in that case the MS should provide GPS TOW if available
- gpsTOW INTEGER (0..14399999) OPTIONAL, -- GPS TOW
- fixType FixType,
- -- Note that applicable range for refFrame is 0 - 42431
- -- Possible shapes carried in posEstimate are
- -- ellipsoid point,
- -- ellipsoid point with uncertainty circle
- -- ellipsoid point with uncertainty ellipse
- -- ellipsoid point with altitude and uncertainty ellipsoid
- posEstimate Ext-GeographicalInformation
-}
-
-FixType ::= INTEGER {
- twoDFix (0),
- threeDFix (1)
-} (0..1)
-
--- GPS-Measurement information
-GPS-MeasureInfo ::= SEQUENCE {
- -- Measurement info elements
- -- user has to make sure that in this element is number of elements
- -- defined in reference BTS identity
- gpsMsrSetList SeqOfGPS-MsrSetElement
-}
-
-SeqOfGPS-MsrSetElement ::= SEQUENCE (SIZE(1..3)) OF GPS-MsrSetElement
-
--- OTD measurent information 1-3 times in message
-GPS-MsrSetElement ::= SEQUENCE {
- refFrame INTEGER (0..65535) OPTIONAL, -- Reference Frame number
- gpsTOW GPSTOW24b,
- -- GPS TOW
- -- Note that applicable range for refFrame is 0 - 42431
- --N_SAT can be read from number of elements of gps-msrList
- gps-msrList SeqOfGPS-MsrElement
-}
-
--- 24 bit presentation for GPSTOW
-GPSTOW24b ::= INTEGER (0..14399999)
-
--- measured elements in measurement parameters field
-SeqOfGPS-MsrElement ::= SEQUENCE (SIZE(1..16)) OF GPS-MsrElement
-
-GPS-MsrElement ::= SEQUENCE {
- satelliteID SatelliteID, -- Satellite identifier
- cNo INTEGER (0..63), -- carrier noise ratio
- doppler INTEGER (-32768..32767), -- doppler, mulltiply by 0.2
- wholeChips INTEGER (0..1022), -- whole value of the code phase measurement
- fracChips INTEGER (0..1024), -- fractional value of the code phase measurement
- -- a value of 1024 shall not be encoded by the sender
- -- the receiver shall consider a value of 1024 to be
- -- invalid data
- mpathIndic MpathIndic, -- multipath indicator
- pseuRangeRMSErr INTEGER (0..63) -- index
-}
-
--- Multipath indicator
-MpathIndic ::= ENUMERATED {
- notMeasured (0),
- low (1),
- medium (2),
- high (3)
-}
-
--- Location error IE
-LocationError ::= SEQUENCE {
- locErrorReason LocErrorReason,
- additionalAssistanceData AdditionalAssistanceData OPTIONAL,
- ...
-}
-
-LocErrorReason ::= ENUMERATED {
- unDefined (0),
- notEnoughBTSs (1),
- notEnoughSats (2),
- eotdLocCalAssDataMissing (3),
- eotdAssDataMissing (4),
- gpsLocCalAssDataMissing (5),
- gpsAssDataMissing (6),
- methodNotSupported (7),
- notProcessed (8),
- refBTSForGPSNotServingBTS (9),
- refBTSForEOTDNotServingBTS (10),
- ...
-}
-
--- exception handling:
--- an unrecognized value shall be treated the same as value 0
--- defines additional assistance data needed for any new location attempt
--- MS shall retain any assistance data already received
-AdditionalAssistanceData ::= SEQUENCE {
- gpsAssistanceData GPSAssistanceData OPTIONAL,
- extensionContainer ExtensionContainer OPTIONAL,
-...
-}
-
-GPSAssistanceData ::= OCTET STRING (SIZE (1..maxGPSAssistanceData))
--- GPSAssistanceData has identical structure and encoding to octets 3 to n of the
--- GPS Assistance Data IE in 3GPP TS 49.031
-maxGPSAssistanceData INTEGER ::= 40
--- Protocol Error Causes
-ErrorCodes ::= ENUMERATED {
- unDefined (0),
- missingComponet (1),
- incorrectData (2),
- missingIEorComponentElement (3),
- messageTooShort (4),
- unknowReferenceNumber (5),
- ...
-}
-
--- exception handling:
--- an unrecognized value shall be treated the same as value 0
--- GPS assistance data IE
-GPS-AssistData ::= SEQUENCE {
- controlHeader ControlHeader
-}
-
--- More Assistance Data To Be Sent IE
--- More Assistance Data Components On the Way indication for delivery of an entire set of assistance
--- data in multiple Assistance Data components.
-MoreAssDataToBeSent ::= ENUMERATED {
- noMoreMessages (0), -- This is the only or last Assistance Data message used to deliver
- -- the entire set of assistance data.
- moreMessagesOnTheWay (1) -- The SMLC will send more Assistance Data messages or a final RRLP
- -- Measure Position Request message to deliver the
- -- the entire set of assistance data.
-}
-
--- Control header of the GPS assistance data
-ControlHeader ::= SEQUENCE {
- -- Field type Present information
- referenceTime ReferenceTime OPTIONAL,
- refLocation RefLocation OPTIONAL,
- dgpsCorrections DGPSCorrections OPTIONAL,
- navigationModel NavigationModel OPTIONAL,
- ionosphericModel IonosphericModel OPTIONAL,
- utcModel UTCModel OPTIONAL,
- almanac Almanac OPTIONAL,
- acquisAssist AcquisAssist OPTIONAL,
- realTimeIntegrity SeqOf-BadSatelliteSet OPTIONAL
-}
-
-ReferenceTime ::= SEQUENCE {
- gpsTime GPSTime,
- gsmTime GSMTime OPTIONAL,
- gpsTowAssist GPSTOWAssist OPTIONAL
-}
-
--- GPS Time includes week number and time-of-week (TOW)
-GPSTime ::= SEQUENCE {
- gpsTOW23b GPSTOW23b,
- gpsWeek GPSWeek
-}
-
--- GPSTOW, range 0-604799.92, resolution 0.08 sec, 23-bit presentation
-GPSTOW23b ::= INTEGER (0..7559999)
-
--- GPS week number
-GPSWeek ::= INTEGER (0..1023)
--- GPSTOWAssist consists of TLM message, Anti-spoof flag, Alert flag, and 2 reserved bits in TLM Word
--- for each visible satellite.
--- N_SAT can be read from number of elements in GPSTOWAssist
-
-GPSTOWAssist ::= SEQUENCE (SIZE(1..12)) OF GPSTOWAssistElement
-
-GPSTOWAssistElement ::= SEQUENCE {
- satelliteID SatelliteID,
- tlmWord TLMWord,
- antiSpoof AntiSpoofFlag,
- alert AlertFlag,
- tlmRsvdBits TLMReservedBits
-}
-
--- TLM Word, 14 bits
-TLMWord ::= INTEGER (0..16383)
-
--- Anti-Spoof flag
-AntiSpoofFlag ::= INTEGER (0..1)
-
--- Alert flag
-AlertFlag ::= INTEGER (0..1)
-
--- Reserved bits in TLM word, MSB occurs earlier in TLM Word transmitted by satellite
-TLMReservedBits ::= INTEGER (0..3)
-
-GSMTime ::= SEQUENCE {
- bcchCarrier BCCHCarrier, -- BCCH carrier
- bsic BSIC, -- BSIC
- frameNumber FrameNumber,
- timeSlot TimeSlot,
- bitNumber BitNumber
-}
-
--- Frame number
-FrameNumber ::= INTEGER (0..2097151)
-
--- Time slot number
-TimeSlot ::= INTEGER (0..7)
-
--- Bit number
-BitNumber ::= INTEGER (0..156)
-
--- Reference Location IE
-RefLocation ::= SEQUENCE {
- threeDLocation Ext-GeographicalInformation
-}
-
--- DGPS Corrections IE
-DGPSCorrections ::= SEQUENCE {
- gpsTOW INTEGER (0..604799), -- DGPS reference time
- status INTEGER (0..7),
--- N_SAT can be read from number of elements of satList
- satList SeqOfSatElement
-}
-SeqOfSatElement ::= SEQUENCE (SIZE (1..16)) OF SatElement
-
--- number of correction for satellites
-SatElement ::= SEQUENCE {
- satelliteID SatelliteID,
---- Sequence number for ephemeris
- iode INTEGER (0..239),
--- User Differential Range Error
- udre INTEGER (0..3),
--- Pseudo Range Correction, range is
--- -655.04 - +655.04,
- pseudoRangeCor INTEGER (-2047..2047),
--- Pseudo Range Rate Correction, range is
--- -4.064 - +4.064,
- rangeRateCor INTEGER (-127..127),
--- Delta Pseudo Range Correction 2
- deltaPseudoRangeCor2 INTEGER (-127..127), -- This IE shall be ignored by the receiver and
--- set to zero by the sender
--- Delta Pseudo Range Correction 2
- deltaRangeRateCor2 INTEGER (-7..7), -- This IE shall be ignored by the receiver and
--- set to zero by the sender
--- Delta Pseudo Range Correction 3
- deltaPseudoRangeCor3 INTEGER (-127..127), -- This IE shall be ignored by the receiver and
--- set to zero by the sender
--- Delta Pseudo Range Correction 3
- deltaRangeRateCor3 INTEGER (-7..7) -- This IE shall be ignored by the receiver and
--- set to zero by the sender
-}
-
-SatelliteID ::= INTEGER (0..63) -- identifies satellite
-
--- Navigation Model IE
-NavigationModel ::= SEQUENCE {
- navModelList SeqOfNavModelElement
-}
-
--- navigation model satellite list
-SeqOfNavModelElement ::= SEQUENCE (SIZE(1..16)) OF NavModelElement
-
-NavModelElement ::= SEQUENCE {
- satelliteID SatelliteID,
- satStatus SatStatus -- satellite status
-}
-
--- the Status of the navigation model
-SatStatus ::= CHOICE {
--- New satellite, new Navigation Model
- newSatelliteAndModelUC UncompressedEphemeris,
--- Existing satellite, Existing Navigation Model
- oldSatelliteAndModel NULL,
--- Existing satellite, new Navigation Model
- newNaviModelUC UncompressedEphemeris,
- ...
-}
-
--- Uncompressed satellite emhemeris and clock corrections
-UncompressedEphemeris ::= SEQUENCE {
- ephemCodeOnL2 INTEGER (0..3),
- ephemURA INTEGER (0..15),
- ephemSVhealth INTEGER (0..63),
- ephemIODC INTEGER (0..1023),
- ephemL2Pflag INTEGER (0..1),
- ephemSF1Rsvd EphemerisSubframe1Reserved,
- ephemTgd INTEGER (-128..127),
- ephemToc INTEGER (0..37799),
- ephemAF2 INTEGER (-128..127),
- ephemAF1 INTEGER (-32768..32767),
- ephemAF0 INTEGER (-2097152..2097151),
- ephemCrs INTEGER (-32768..32767),
- ephemDeltaN INTEGER (-32768..32767),
- ephemM0 INTEGER (-2147483648..2147483647),
- ephemCuc INTEGER (-32768..32767),
- ephemE INTEGER (0..4294967295),
- ephemCus INTEGER (-32768..32767),
- ephemAPowerHalf INTEGER (0..4294967295),
- ephemToe INTEGER (0..37799),
- ephemFitFlag INTEGER (0..1),
- ephemAODA INTEGER (0..31),
- ephemCic INTEGER (-32768..32767),
- ephemOmegaA0 INTEGER (-2147483648..2147483647),
- ephemCis INTEGER (-32768..32767),
- ephemI0 INTEGER (-2147483648..2147483647),
- ephemCrc INTEGER (-32768..32767),
- ephemW INTEGER (-2147483648..2147483647),
- ephemOmegaADot INTEGER (-8388608..8388607),
- ephemIDot INTEGER (-8192..8191)
-}
-
--- Reserved bits in subframe 1 of navigation message
-EphemerisSubframe1Reserved ::= SEQUENCE {
- reserved1 INTEGER (0..8388607), -- 23-bit field
- reserved2 INTEGER (0..16777215), -- 24-bit field
- reserved3 INTEGER (0..16777215), -- 24-bit field
- reserved4 INTEGER (0..65535) -- 16-bit field
-}
-
--- Ionospheric Model IE
-IonosphericModel ::= SEQUENCE {
- alfa0 INTEGER (-128..127),
- alfa1 INTEGER (-128..127),
- alfa2 INTEGER (-128..127),
- alfa3 INTEGER (-128..127),
- beta0 INTEGER (-128..127),
- beta1 INTEGER (-128..127),
- beta2 INTEGER (-128..127),
- beta3 INTEGER (-128..127)
-}
-
--- Universal Time Coordinate Model
-UTCModel ::= SEQUENCE {
- utcA1 INTEGER (-8388608..8388607),
- utcA0 INTEGER (-2147483648..2147483647),
- utcTot INTEGER (0..255),
- utcWNt INTEGER (0..255),
- utcDeltaTls INTEGER (-128..127),
- utcWNlsf INTEGER (0..255),
- utcDN INTEGER (-128..127),
- utcDeltaTlsf INTEGER (-128..127)
-}
-
--- Almanac, Long term model
--- NOTE: These are parameters are subset of the ephemeris
--- NOTE: But with reduced resolution and accuracy
-Almanac ::= SEQUENCE {
- alamanacWNa INTEGER (0..255), -- Once per message
--- navigation model satellite list.
--- The size of almanacList is actually Nums_Sats_Total field
- almanacList SeqOfAlmanacElement
-}
-
-SeqOfAlmanacElement ::= SEQUENCE (SIZE(1..64)) OF AlmanacElement
-
--- Almanac info once per satellite
-AlmanacElement ::= SEQUENCE {
- satelliteID SatelliteID,
- almanacE INTEGER (0..65535),
- alamanacToa INTEGER (0..255),
- almanacKsii INTEGER (-32768..32767),
- almanacOmegaDot INTEGER (-32768..32767),
- almanacSVhealth INTEGER (0..255),
- almanacAPowerHalf INTEGER (0..16777215),
- almanacOmega0 INTEGER (-8388608..8388607),
- almanacW INTEGER (-8388608..8388607),
- almanacM0 INTEGER (-8388608..8388607),
- almanacAF0 INTEGER (-1024..1023),
- almanacAF1 INTEGER (-1024..1023)
-}
-
--- Acquisition Assistance
-AcquisAssist ::= SEQUENCE {
--- Number of Satellites can be read from acquistList
- timeRelation TimeRelation,
--- Acquisition assistance list
--- The size of Number of Satellites is actually Number of Satellites field
- acquisList SeqOfAcquisElement
-}
-
-SeqOfAcquisElement ::= SEQUENCE (SIZE(1..16)) OF AcquisElement
-
--- the relationship between GPS time and air-interface timing
-TimeRelation ::= SEQUENCE {
---
- gpsTOW GPSTOW23b, -- 23b presentation
- gsmTime GSMTime OPTIONAL
-}
-
--- data occuring per number of satellites
-AcquisElement ::= SEQUENCE {
- svid SatelliteID,
--- Doppler 0th order term,
--- -5120.0 - 5117.5 Hz (= -2048 - 2047 with 2.5 Hz resolution)
- doppler0 INTEGER (-2048..2047),
- addionalDoppler AddionalDopplerFields OPTIONAL,
- codePhase INTEGER (0..1022), -- Code Phase
- intCodePhase INTEGER (0..19), -- Integer Code Phase
- gpsBitNumber INTEGER (0..3), -- GPS bit number
- codePhaseSearchWindow INTEGER (0..15), -- Code Phase Search Window
- addionalAngle AddionalAngleFields OPTIONAL
-}
-
-AddionalDopplerFields ::= SEQUENCE {
--- Doppler 1st order term, -1.0 - +0.5 Hz/sec
--- (= -42 + (0 to 63) with 1/42 Hz/sec. resolution)
- doppler1 INTEGER (0..63),
- dopplerUncertainty INTEGER (0..7)
--- a sender shall not encode any DopplerUncertainty value in the range 5 to 7
--- a receiver shall ignore any value between 5 and 7.
-}
-
-AddionalAngleFields ::= SEQUENCE {
--- azimuth angle, 0 - 348.75 deg (= 0 - 31 with 11.25 deg resolution)
- azimuth INTEGER (0..31),
--- elevation angle, 0 - 78.75 deg (= 0 - 7 with 11.25 deg resolution)
- elevation INTEGER (0..7)
-}
-
--- Real-Time Integrity
--- number of bad satellites can be read from this element
-SeqOf-BadSatelliteSet ::= SEQUENCE (SIZE(1..16)) OF SatelliteID
-
--- Extension Elements
--- Release 98 Extensions here
-Rel98-MsrPosition-Req-Extension ::= SEQUENCE {
- rel98-Ext-ExpOTD Rel98-Ext-ExpOTD OPTIONAL, -- ExpectedOTD extension
- ...,
- gpsTimeAssistanceMeasurementRequest NULL OPTIONAL,
- gpsReferenceTimeUncertainty GPSReferenceTimeUncertainty OPTIONAL
--- Further R98 extensions here
-}
-
-Rel98-AssistanceData-Extension ::= SEQUENCE {
- rel98-Ext-ExpOTD Rel98-Ext-ExpOTD OPTIONAL, -- ExpectedOTD extension
- ...,
- gpsTimeAssistanceMeasurementRequest NULL OPTIONAL,
- gpsReferenceTimeUncertainty GPSReferenceTimeUncertainty OPTIONAL
--- Further R98 extensions here
-
-}
--- Release 98 ExpOTD extension
-Rel98-Ext-ExpOTD ::= SEQUENCE {
--- If MsrAssistBTS is included in message, msrAssistData-R98-ExpOTD shall be included.
- msrAssistData-R98-ExpOTD MsrAssistData-R98-ExpOTD OPTIONAL,
--- If SystemInfoAssistaData is included in message, systemInfoAssistData-R98-ExpOTD shall be
--- included.
- systemInfoAssistData-R98-ExpOTD SystemInfoAssistData-R98-ExpOTD OPTIONAL
-}
-
--- MsrAssistData R98 extension
-MsrAssistData-R98-ExpOTD ::= SEQUENCE {
- msrAssistList-R98-ExpOTD SeqOfMsrAssistBTS-R98-ExpOTD
-}
-
--- Indexes in SeqOfMsrAssistBTS-R98-ExpOTD refer to SeqOfMsrAssistBTS
--- If the index exceeds the SegOfMsrAssistBTS range or if there is other
--- inconsistencies between the BTS indices, the MS shall apply protocol
--- error cause incorrectData
-SeqOfMsrAssistBTS-R98-ExpOTD ::= SEQUENCE (SIZE(1..15)) OF MsrAssistBTS-R98-ExpOTD
-
--- This element completes MsrAssistBTS IE
-MsrAssistBTS-R98-ExpOTD ::= SEQUENCE {
- expectedOTD ExpectedOTD,
- expOTDUncertainty ExpOTDUncertainty
-}
-
--- SystemInfoAssistData R98 extension
-SystemInfoAssistData-R98-ExpOTD ::= SEQUENCE {
- systemInfoAssistListR98-ExpOTD SeqOfSystemInfoAssistBTS-R98-ExpOTD
-}
-
--- SeqOfSystemInfoAssistBTS-R98-ExpOTD index refer to SeqOfSystemInfoAssistBTS
--- If the index exceeds the SegOfSystemInfoAssistBTS range or if there is other
--- inconsistencies between the BTS indices, the MS shall apply protocol
--- error cause incorrectData
-
-SeqOfSystemInfoAssistBTS-R98-ExpOTD ::= SEQUENCE (SIZE(1..32)) OF SystemInfoAssistBTS-R98-ExpOTD
-
--- whether n.th is present or not ?
-SystemInfoAssistBTS-R98-ExpOTD ::= CHOICE {
- notPresent NULL,
- present AssistBTSData-R98-ExpOTD
-}
-
--- This element completes AssistBTSData IE
-AssistBTSData-R98-ExpOTD ::= SEQUENCE {
- expectedOTD ExpectedOTD,
- expOTDuncertainty ExpOTDUncertainty -- Uncertainty of expected OTD
-}
-
--- Expected OTD value between nbor base station and reference BTS
--- at MS's current estimated location.
-ExpectedOTD ::= INTEGER (0..1250)
-
--- The ExpectedOTD value 1250 shall not be encoded by the transmitting entity and
--- shall be treated by the receiving entity as 0.
--- Uncertainty of Exptected OTD in bits
-ExpOTDUncertainty ::= INTEGER(0..7)
-
--- Release 98 extensions
-GPSReferenceTimeUncertainty ::= INTEGER (0 .. 127) -- Coding according to Annex
-
-GPSTimeAssistanceMeasurements ::= SEQUENCE {
- referenceFrameMSB INTEGER (0 .. 63), -- MSB of frame number
- gpsTowSubms INTEGER (0 .. 9999) OPTIONAL, -- in units of 100ns, for MS based AGPS
- deltaTow INTEGER (0 .. 127) OPTIONAL, -- for MS assisted AGPS
- gpsReferenceTimeUncertainty GPSReferenceTimeUncertainty OPTIONAL
-}
-
-Rel-98-MsrPosition-Rsp-Extension ::= SEQUENCE {
--- First extension to Release 98
- rel-98-Ext-MeasureInfo SEQUENCE {
- otd-MeasureInfo-R98-Ext OTD-MeasureInfo-R98-Ext OPTIONAL
- },
- ...,
- timeAssistanceMeasurements GPSTimeAssistanceMeasurements OPTIONAL
--- Further R98 extensions here
-}
-
--- This is an addition to OTD-MeasureInfo element defined in original message,
--- If OTD-MeasureInfo is absent, or if one or more OTD-MsrElementRest are present
--- OTD-MeasureInfo-R98-Ext shall be absent.
--- OTD-MeasureInfo-R98-Ext
-OTD-MeasureInfo-R98-Ext ::= SEQUENCE {
--- Measurement info elements
- otdMsrFirstSets-R98-Ext OTD-MsrElementFirst-R98-Ext
-}
-
--- OTD measurement information Ext for the first set only
-OTD-MsrElementFirst-R98-Ext ::= SEQUENCE {
--- additional measured neighbors in OTD measurements
- otd-FirstSetMsrs-R98-Ext SeqOfOTD-FirstSetMsrs-R98-Ext OPTIONAL
-}
-
-SeqOfOTD-FirstSetMsrs-R98-Ext ::= SEQUENCE (SIZE(1..5)) OF OTD-FirstSetMsrs
-
-Rel-5-MsrPosition-Rsp-Extension ::= SEQUENCE {
- extended-reference Extended-reference OPTIONAL,
--- The extended-reference shall be included by the MS if and only if previously
--- received from the SMLC in a Measure Position Request. When included, the value sent
--- by the MS shall equal the value received from the SMLC.
--- extension to Release 5, for RRLP pseudo-segmentation here
- otd-MeasureInfo-5-Ext OTD-MeasureInfo-5-Ext OPTIONAL,
- ulPseudoSegInd UlPseudoSegInd OPTIONAL, -- Included when uplink RRLP
--- Pseudo-segmentation is used, not included when no uplink pseudo-segmentation is used
- ...
--- Possibly more extensions for Release 5 here later
-}
-
-Extended-reference ::= SEQUENCE {
- smlc-code INTEGER (0..63),
- transaction-ID INTEGER (0..262143)
-}
-
-OTD-MeasureInfo-5-Ext ::= SeqOfOTD-MsrElementRest
--- if more than one measurement sets are present this element is repeated
--- NumberOfSets - 1 (-1 = first set) combined in OTD-MeasureInfo-5-Ext and
--- OTD-MeasureInfo (e.g. if NumberOfSets is 3, then one otdMsrRestSets may
--- be sent in OTD-MeasureInfo-5-Ext and one in OTD-MeasureInfo)
--- First part of Uplink RRLP Pseudo-segmentation indication, possibly more may be defined
--- in the future for segmentation with more than two segments.
-UlPseudoSegInd ::= ENUMERATED {
- firstOfMany (0),
- secondOfMany(1)
-}
-
-Rel5-MsrPosition-Req-Extension ::= SEQUENCE {
- extended-reference Extended-reference,
- ...
--- Possibly more extensions for Release 5 here later
-}
-
-Rel5-AssistanceData-Extension ::= SEQUENCE {
- extended-reference Extended-reference,
- ...
--- Possibly more extensions for Release 5 here later
-}
-
-Rel-5-ProtocolError-Extension::= SEQUENCE {
- extended-reference Extended-reference OPTIONAL,
--- The extended-reference shall be included by the MS if and only if previously
--- received from the SMLC.
--- When included, the value sent by the MS shall equal the value received from the SMLC.
- ...
--- Possibly more extensions for Release 5 here later
-}
-
-END \ No newline at end of file
diff --git a/asn1/rrlp/rrlp.cnf b/asn1/rrlp/rrlp.cnf
index 94c0a9fc21..e63cadde86 100644
--- a/asn1/rrlp/rrlp.cnf
+++ b/asn1/rrlp/rrlp.cnf
@@ -3,17 +3,31 @@
# Copyright 2006 Anders Broman
# $Id$
+#.OPT
+PER
+UNALIGNED
+#.END
+
#.PDU
PDU
-#.FN_BODY PDU
+#.OMIT_ASSIGNMENTS_EXCEPT MAP-LCS-DataTypes
+Ext-GeographicalInformation
+maxExt-GeographicalInformation
+VelocityEstimate
+#.END
+
+#.CLASS MAP-EXTENSION
+ExtensionType
+extensionId ObjectIdentifierType
+#.END
+
+#.FN_HDR PDU
proto_tree_add_item(tree, proto_rrlp, tvb, 0, -1, FALSE);
- if (check_col(%(ACTX)s->pinfo->cinfo, COL_PROTOCOL))
- col_append_str(%(ACTX)s->pinfo->cinfo, COL_PROTOCOL, "/RRLP");
-
- %(DEFAULT_BODY)s
+ if (check_col(actx->pinfo->cinfo, COL_PROTOCOL))
+ col_append_str(actx->pinfo->cinfo, COL_PROTOCOL, "/RRLP");
#.END
@@ -25,3 +39,4 @@ tvbuff_t *parameter_tvb = NULL;
if(parameter_tvb)
dissect_geographical_description(parameter_tvb, %(ACTX)s->pinfo, tree);
+#.END
diff --git a/epan/dissectors/Makefile.common b/epan/dissectors/Makefile.common
index 985fc5eb77..8f906f6a5b 100644
--- a/epan/dissectors/Makefile.common
+++ b/epan/dissectors/Makefile.common
@@ -968,7 +968,6 @@ DISSECTOR_INCLUDES = \
packet-ros.h \
packet-rpc.h \
packet-rquota.h \
- packet-rrlp.h \
packet-rsvp.h \
packet-rtcp.h \
packet-rtp.h \
diff --git a/epan/dissectors/packet-rrlp.c b/epan/dissectors/packet-rrlp.c
index dfebdf9f6a..bb39e4809c 100644
--- a/epan/dissectors/packet-rrlp.c
+++ b/epan/dissectors/packet-rrlp.c
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* .\packet-rrlp.c */
-/* ../../tools/asn2wrs.py -u -e -p rrlp -c rrlp.cnf -s packet-rrlp-template rrlp.asn */
+/* ../../tools/asn2wrs.py -p rrlp -c rrlp.cnf -s packet-rrlp-template RRLP-Messages.asn RRLP-Components.asn ../gsmmap/MAP-ExtensionDataTypes.asn ../gsmmap/MAP-LCS-DataTypes.asn */
/* Input file: packet-rrlp-template.c */
@@ -46,8 +46,6 @@
#include <stdio.h>
#include <string.h>
-#include "packet-rrlp.h"
-
#include "packet-ber.h"
#include "packet-per.h"
#include "packet-gsm_map.h"
@@ -89,6 +87,7 @@ static int hf_rrlp_gps_AssistData = -1; /* GPS_AssistData */
static int hf_rrlp_extensionContainer = -1; /* ExtensionContainer */
static int hf_rrlp_rel98_MsrPosition_Req_extension = -1; /* Rel98_MsrPosition_Req_Extension */
static int hf_rrlp_rel5_MsrPosition_Req_extension = -1; /* Rel5_MsrPosition_Req_Extension */
+static int hf_rrlp_rel7_MsrPosition_Req_extension = -1; /* Rel7_MsrPosition_Req_Extension */
static int hf_rrlp_multipleSets = -1; /* MultipleSets */
static int hf_rrlp_referenceIdentity = -1; /* ReferenceIdentity */
static int hf_rrlp_otd_MeasureInfo = -1; /* OTD_MeasureInfo */
@@ -97,9 +96,11 @@ static int hf_rrlp_gps_MeasureInfo = -1; /* GPS_MeasureInfo */
static int hf_rrlp_locationError = -1; /* LocationError */
static int hf_rrlp_rel_98_MsrPosition_Rsp_Extension = -1; /* Rel_98_MsrPosition_Rsp_Extension */
static int hf_rrlp_rel_5_MsrPosition_Rsp_Extension = -1; /* Rel_5_MsrPosition_Rsp_Extension */
+static int hf_rrlp_rel_7_MsrPosition_Rsp_Extension = -1; /* Rel_7_MsrPosition_Rsp_Extension */
static int hf_rrlp_moreAssDataToBeSent = -1; /* MoreAssDataToBeSent */
static int hf_rrlp_rel98_AssistanceData_Extension = -1; /* Rel98_AssistanceData_Extension */
static int hf_rrlp_rel5_AssistanceData_Extension = -1; /* Rel5_AssistanceData_Extension */
+static int hf_rrlp_rel7_AssistanceData_Extension = -1; /* Rel7_AssistanceData_Extension */
static int hf_rrlp_errorCause = -1; /* ErrorCodes */
static int hf_rrlp_rel_5_ProtocolError_Extension = -1; /* Rel_5_ProtocolError_Extension */
static int hf_rrlp_methodType = -1; /* MethodType */
@@ -185,6 +186,7 @@ static int hf_rrlp_pseuRangeRMSErr = -1; /* INTEGER_0_63 */
static int hf_rrlp_locErrorReason = -1; /* LocErrorReason */
static int hf_rrlp_additionalAssistanceData = -1; /* AdditionalAssistanceData */
static int hf_rrlp_gpsAssistanceData = -1; /* GPSAssistanceData */
+static int hf_rrlp_ganssAssistanceData = -1; /* GANSSAssistanceData */
static int hf_rrlp_controlHeader = -1; /* ControlHeader */
static int hf_rrlp_referenceTime = -1; /* ReferenceTime */
static int hf_rrlp_refLocation = -1; /* RefLocation */
@@ -334,9 +336,177 @@ static int hf_rrlp_otd_MeasureInfo_5_Ext = -1; /* OTD_MeasureInfo_5_Ext */
static int hf_rrlp_ulPseudoSegInd = -1; /* UlPseudoSegInd */
static int hf_rrlp_smlc_code = -1; /* INTEGER_0_63 */
static int hf_rrlp_transaction_ID = -1; /* INTEGER_0_262143 */
+static int hf_rrlp_velocityRequested = -1; /* NULL */
+static int hf_rrlp_ganssPositionMethod = -1; /* GANSSPositioningMethod */
+static int hf_rrlp_ganss_AssistData = -1; /* GANSS_AssistData */
+static int hf_rrlp_ganssCarrierPhaseMeasurementRequest = -1; /* NULL */
+static int hf_rrlp_ganssTODGSMTimeAssociationMeasurementRequest = -1; /* NULL */
+static int hf_rrlp_requiredResponseTime = -1; /* RequiredResponseTime */
+static int hf_rrlp_ganss_controlHeader = -1; /* GANSS_ControlHeader */
+static int hf_rrlp_ganssCommonAssistData = -1; /* GANSSCommonAssistData */
+static int hf_rrlp_ganssGenericAssistDataList = -1; /* SeqOfGANSSGenericAssistDataElement */
+static int hf_rrlp_ganssReferenceTime = -1; /* GANSSReferenceTime */
+static int hf_rrlp_ganssRefLocation = -1; /* GANSSRefLocation */
+static int hf_rrlp_ganssIonosphericModel = -1; /* GANSSIonosphericModel */
+static int hf_rrlp_SeqOfGANSSGenericAssistDataElement_item = -1; /* GANSSGenericAssistDataElement */
+static int hf_rrlp_ganssID = -1; /* INTEGER_0_7 */
+static int hf_rrlp_ganssTimeModel = -1; /* SeqOfGANSSTimeModel */
+static int hf_rrlp_ganssDiffCorrections = -1; /* GANSSDiffCorrections */
+static int hf_rrlp_ganssNavigationModel = -1; /* GANSSNavModel */
+static int hf_rrlp_ganssRealTimeIntegrity = -1; /* GANSSRealTimeIntegrity */
+static int hf_rrlp_ganssDataBitAssist = -1; /* GANSSDataBitAssist */
+static int hf_rrlp_ganssRefMeasurementAssist = -1; /* GANSSRefMeasurementAssist */
+static int hf_rrlp_ganssAlmanacModel = -1; /* GANSSAlmanacModel */
+static int hf_rrlp_ganssUTCModel = -1; /* GANSSUTCModel */
+static int hf_rrlp_ganssRefTimeInfo = -1; /* GANSSRefTimeInfo */
+static int hf_rrlp_ganssTOD_GSMTimeAssociation = -1; /* GANSSTOD_GSMTimeAssociation */
+static int hf_rrlp_ganssDay = -1; /* INTEGER_0_8191 */
+static int hf_rrlp_ganssTOD = -1; /* GANSSTOD */
+static int hf_rrlp_ganssTODUncertainty = -1; /* GANSSTODUncertainty */
+static int hf_rrlp_ganssTimeID = -1; /* INTEGER_0_7 */
+static int hf_rrlp_frameDrift = -1; /* FrameDrift */
+static int hf_rrlp_ganssIonoModel = -1; /* GANSSIonosphereModel */
+static int hf_rrlp_ganssIonoStormFlags = -1; /* GANSSIonoStormFlags */
+static int hf_rrlp_ai0 = -1; /* INTEGER_0_4095 */
+static int hf_rrlp_ai1 = -1; /* INTEGER_0_4095 */
+static int hf_rrlp_ai2 = -1; /* INTEGER_0_4095 */
+static int hf_rrlp_ionoStormFlag1 = -1; /* INTEGER_0_1 */
+static int hf_rrlp_ionoStormFlag2 = -1; /* INTEGER_0_1 */
+static int hf_rrlp_ionoStormFlag3 = -1; /* INTEGER_0_1 */
+static int hf_rrlp_ionoStormFlag4 = -1; /* INTEGER_0_1 */
+static int hf_rrlp_ionoStormFlag5 = -1; /* INTEGER_0_1 */
+static int hf_rrlp_SeqOfGANSSTimeModel_item = -1; /* GANSSTimeModelElement */
+static int hf_rrlp_ganssTimeModelRefTime = -1; /* INTEGER_0_65535 */
+static int hf_rrlp_tA0 = -1; /* TA0 */
+static int hf_rrlp_tA1 = -1; /* TA1 */
+static int hf_rrlp_tA2 = -1; /* TA2 */
+static int hf_rrlp_gnssTOID = -1; /* INTEGER_0_7 */
+static int hf_rrlp_weekNumber = -1; /* INTEGER_0_8191 */
+static int hf_rrlp_dganssRefTime = -1; /* INTEGER_0_119 */
+static int hf_rrlp_sgnTypeList = -1; /* SeqOfSgnTypeElement */
+static int hf_rrlp_SeqOfSgnTypeElement_item = -1; /* SgnTypeElement */
+static int hf_rrlp_ganssSignalID = -1; /* GANSSSignalID */
+static int hf_rrlp_ganssStatusHealth = -1; /* INTEGER_0_7 */
+static int hf_rrlp_dganssSgnList = -1; /* SeqOfDGANSSSgnElement */
+static int hf_rrlp_SeqOfDGANSSSgnElement_item = -1; /* DGANSSSgnElement */
+static int hf_rrlp_svID = -1; /* SVID */
+static int hf_rrlp_iod = -1; /* INTEGER_0_1023 */
+static int hf_rrlp_nonBroadcastIndFlag = -1; /* INTEGER_0_1 */
+static int hf_rrlp_toeMSB = -1; /* INTEGER_0_31 */
+static int hf_rrlp_eMSB = -1; /* INTEGER_0_127 */
+static int hf_rrlp_sqrtAMBS = -1; /* INTEGER_0_63 */
+static int hf_rrlp_ganssSatelliteList = -1; /* SeqOfGANSSSatelliteElement */
+static int hf_rrlp_SeqOfGANSSSatelliteElement_item = -1; /* GANSSSatelliteElement */
+static int hf_rrlp_svHealth = -1; /* INTEGER_M7_13 */
+static int hf_rrlp_ganssClockModel = -1; /* GANSSClockModel */
+static int hf_rrlp_ganssOrbitModel = -1; /* GANSSOrbitModel */
+static int hf_rrlp_keplerianSet = -1; /* NavModel_KeplerianSet */
+static int hf_rrlp_keplerToeLSB = -1; /* INTEGER_0_511 */
+static int hf_rrlp_keplerW = -1; /* INTEGER_M2147483648_2147483647 */
+static int hf_rrlp_keplerDeltaN = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_keplerM0 = -1; /* INTEGER_M2147483648_2147483647 */
+static int hf_rrlp_keplerOmegaDot = -1; /* INTEGER_M8388608_8388607 */
+static int hf_rrlp_keplerELSB = -1; /* INTEGER_0_33554431 */
+static int hf_rrlp_keplerIDot = -1; /* INTEGER_M8192_8191 */
+static int hf_rrlp_keplerAPowerHalfLSB = -1; /* INTEGER_0_67108863 */
+static int hf_rrlp_keplerI0 = -1; /* INTEGER_M2147483648_2147483647 */
+static int hf_rrlp_keplerOmega0 = -1; /* INTEGER_M2147483648_2147483647 */
+static int hf_rrlp_keplerCrs = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_keplerCis = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_keplerCus = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_keplerCrc = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_keplerCic = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_keplerCuc = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_standardClockModelList = -1; /* SeqOfStandardClockModelElement */
+static int hf_rrlp_SeqOfStandardClockModelElement_item = -1; /* StandardClockModelElement */
+static int hf_rrlp_stanClockTocLSB = -1; /* INTEGER_0_511 */
+static int hf_rrlp_stanClockAF2 = -1; /* INTEGER_M2048_2047 */
+static int hf_rrlp_stanClockAF1 = -1; /* INTEGER_M131072_131071 */
+static int hf_rrlp_stanClockAF0 = -1; /* INTEGER_M134217728_134217727 */
+static int hf_rrlp_stanClockTgd = -1; /* INTEGER_M512_511 */
+static int hf_rrlp_stanModelID = -1; /* INTEGER_0_1 */
+static int hf_rrlp_ganssBadSignalList = -1; /* SeqOfBadSignalElement */
+static int hf_rrlp_SeqOfBadSignalElement_item = -1; /* BadSignalElement */
+static int hf_rrlp_badSVID = -1; /* SVID */
+static int hf_rrlp_badSignalID = -1; /* INTEGER_0_3 */
+static int hf_rrlp_ganssTOD1 = -1; /* INTEGER_0_59 */
+static int hf_rrlp_ganssDataTypeID = -1; /* INTEGER_0_2 */
+static int hf_rrlp_ganssDataBits = -1; /* SeqOf_GANSSDataBits */
+static int hf_rrlp_SeqOf_GANSSDataBits_item = -1; /* GANSSDataBit */
+static int hf_rrlp_ganssSignalID1 = -1; /* INTEGER_0_3 */
+static int hf_rrlp_ganssRefMeasAssitList = -1; /* SeqOfGANSSRefMeasurementElement */
+static int hf_rrlp_SeqOfGANSSRefMeasurementElement_item = -1; /* GANSSRefMeasurementElement */
+static int hf_rrlp_additionalDoppler = -1; /* AdditionalDopplerFields */
+static int hf_rrlp_intCodePhase1 = -1; /* INTEGER_0_127 */
+static int hf_rrlp_codePhaseSearchWindow1 = -1; /* INTEGER_0_31 */
+static int hf_rrlp_additionalAngle = -1; /* AddionalAngleFields */
+static int hf_rrlp_dopplerUncertainty1 = -1; /* INTEGER_0_4 */
+static int hf_rrlp_weekNumber1 = -1; /* INTEGER_0_255 */
+static int hf_rrlp_svIDMask = -1; /* SVIDMASK */
+static int hf_rrlp_toa = -1; /* INTEGER_0_255 */
+static int hf_rrlp_ioda = -1; /* INTEGER_0_3 */
+static int hf_rrlp_ganssAlmanacList = -1; /* SeqOfGANSSAlmanacElement */
+static int hf_rrlp_SeqOfGANSSAlmanacElement_item = -1; /* GANSSAlmanacElement */
+static int hf_rrlp_keplerianAlmanacSet = -1; /* Almanac_KeplerianSet */
+static int hf_rrlp_kepAlmanacE = -1; /* INTEGER_0_2047 */
+static int hf_rrlp_kepAlmanacDeltaI = -1; /* INTEGER_M1024_1023 */
+static int hf_rrlp_kepAlmanacOmegaDot = -1; /* INTEGER_M1024_1023 */
+static int hf_rrlp_kepSVHealth = -1; /* INTEGER_0_15 */
+static int hf_rrlp_kepAlmanacAPowerHalf = -1; /* INTEGER_M65536_65535 */
+static int hf_rrlp_kepAlmanacOmega0 = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_kepAlmanacW = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_kepAlmanacM0 = -1; /* INTEGER_M32768_32767 */
+static int hf_rrlp_kepAlmanacAF0 = -1; /* INTEGER_M8192_8191 */
+static int hf_rrlp_kepAlmanacAF1 = -1; /* INTEGER_M1024_1023 */
+static int hf_rrlp_ganssUtcA1 = -1; /* INTEGER_M8388608_8388607 */
+static int hf_rrlp_ganssUtcA0 = -1; /* INTEGER_M2147483648_2147483647 */
+static int hf_rrlp_ganssUtcTot = -1; /* INTEGER_0_255 */
+static int hf_rrlp_ganssUtcWNt = -1; /* INTEGER_0_255 */
+static int hf_rrlp_ganssUtcDeltaTls = -1; /* INTEGER_M128_127 */
+static int hf_rrlp_ganssUtcWNlsf = -1; /* INTEGER_0_255 */
+static int hf_rrlp_ganssUtcDN = -1; /* INTEGER_M128_127 */
+static int hf_rrlp_ganssUtcDeltaTlsf = -1; /* INTEGER_M128_127 */
+static int hf_rrlp_velEstimate = -1; /* VelocityEstimate */
+static int hf_rrlp_ganssLocationInfo = -1; /* GANSSLocationInfo */
+static int hf_rrlp_ganssMeasureInfo = -1; /* GANSSMeasureInfo */
+static int hf_rrlp_referenceFrame = -1; /* ReferenceFrame */
+static int hf_rrlp_ganssTODm = -1; /* GANSSTODm */
+static int hf_rrlp_ganssTODFrac = -1; /* INTEGER_0_16384 */
+static int hf_rrlp_ganssTimeID1 = -1; /* INTEGER_0_3 */
+static int hf_rrlp_posData = -1; /* PositionData */
+static int hf_rrlp_stationaryIndication = -1; /* INTEGER_0_1 */
+static int hf_rrlp_referenceFN = -1; /* INTEGER_0_65535 */
+static int hf_rrlp_referenceFNMSB = -1; /* INTEGER_0_63 */
+static int hf_rrlp_ganssMsrSetList = -1; /* SeqOfGANSS_MsrSetElement */
+static int hf_rrlp_SeqOfGANSS_MsrSetElement_item = -1; /* GANSS_MsrSetElement */
+static int hf_rrlp_deltaGNASSTOD = -1; /* INTEGER_0_127 */
+static int hf_rrlp_ganss_SgnTypeList = -1; /* SeqOfGANSS_SgnTypeElement */
+static int hf_rrlp_SeqOfGANSS_SgnTypeElement_item = -1; /* GANSS_SgnTypeElement */
+static int hf_rrlp_ganssSignalID2 = -1; /* INTEGER_0_15 */
+static int hf_rrlp_ganss_SgnList = -1; /* SeqOfGANSS_SgnElement */
+static int hf_rrlp_SeqOfGANSS_SgnElement_item = -1; /* GANSS_SgnElement */
+static int hf_rrlp_mpathDet = -1; /* MpathIndic */
+static int hf_rrlp_carrierQualityInd = -1; /* INTEGER_0_3 */
+static int hf_rrlp_codePhase1 = -1; /* INTEGER_0_2097151 */
+static int hf_rrlp_integerCodePhase = -1; /* INTEGER_0_63 */
+static int hf_rrlp_codePhaseRMSError = -1; /* INTEGER_0_63 */
+static int hf_rrlp_adr = -1; /* INTEGER_0_33554431 */
+static int hf_rrlp_privateExtensionList = -1; /* PrivateExtensionList */
+static int hf_rrlp_pcs_Extensions = -1; /* PCS_Extensions */
+static int hf_rrlp_slr_Arg_PCS_Extensions = -1; /* SLR_Arg_PCS_Extensions */
+static int hf_rrlp_PrivateExtensionList_item = -1; /* PrivateExtension */
+static int hf_rrlp_extId = -1; /* OBJECT_IDENTIFIER */
+static int hf_rrlp_extType = -1; /* T_extType */
+static int hf_rrlp_na_ESRK_Request = -1; /* NULL */
+/* named bits */
+static int hf_rrlp_GANSSPositioningMethod_gps = -1;
+static int hf_rrlp_GANSSPositioningMethod_galileo = -1;
+static int hf_rrlp_PositionData_e_otd = -1;
+static int hf_rrlp_PositionData_gps = -1;
+static int hf_rrlp_PositionData_galileo = -1;
/*--- End of included file: packet-rrlp-hf.c ---*/
-#line 66 "packet-rrlp-template.c"
+#line 64 "packet-rrlp-template.c"
/* Initialize the subtree pointers */
static gint ett_rrlp = -1;
@@ -439,18 +609,82 @@ static gint ett_rrlp_Extended_reference = -1;
static gint ett_rrlp_Rel5_MsrPosition_Req_Extension = -1;
static gint ett_rrlp_Rel5_AssistanceData_Extension = -1;
static gint ett_rrlp_Rel_5_ProtocolError_Extension = -1;
+static gint ett_rrlp_Rel7_MsrPosition_Req_Extension = -1;
+static gint ett_rrlp_GANSSPositioningMethod = -1;
+static gint ett_rrlp_GANSS_AssistData = -1;
+static gint ett_rrlp_GANSS_ControlHeader = -1;
+static gint ett_rrlp_GANSSCommonAssistData = -1;
+static gint ett_rrlp_SeqOfGANSSGenericAssistDataElement = -1;
+static gint ett_rrlp_GANSSGenericAssistDataElement = -1;
+static gint ett_rrlp_GANSSReferenceTime = -1;
+static gint ett_rrlp_GANSSRefTimeInfo = -1;
+static gint ett_rrlp_GANSSTOD_GSMTimeAssociation = -1;
+static gint ett_rrlp_GANSSRefLocation = -1;
+static gint ett_rrlp_GANSSIonosphericModel = -1;
+static gint ett_rrlp_GANSSIonosphereModel = -1;
+static gint ett_rrlp_GANSSIonoStormFlags = -1;
+static gint ett_rrlp_SeqOfGANSSTimeModel = -1;
+static gint ett_rrlp_GANSSTimeModelElement = -1;
+static gint ett_rrlp_GANSSDiffCorrections = -1;
+static gint ett_rrlp_SeqOfSgnTypeElement = -1;
+static gint ett_rrlp_SgnTypeElement = -1;
+static gint ett_rrlp_SeqOfDGANSSSgnElement = -1;
+static gint ett_rrlp_DGANSSSgnElement = -1;
+static gint ett_rrlp_GANSSNavModel = -1;
+static gint ett_rrlp_SeqOfGANSSSatelliteElement = -1;
+static gint ett_rrlp_GANSSSatelliteElement = -1;
+static gint ett_rrlp_GANSSOrbitModel = -1;
+static gint ett_rrlp_NavModel_KeplerianSet = -1;
+static gint ett_rrlp_GANSSClockModel = -1;
+static gint ett_rrlp_SeqOfStandardClockModelElement = -1;
+static gint ett_rrlp_StandardClockModelElement = -1;
+static gint ett_rrlp_GANSSRealTimeIntegrity = -1;
+static gint ett_rrlp_SeqOfBadSignalElement = -1;
+static gint ett_rrlp_BadSignalElement = -1;
+static gint ett_rrlp_GANSSDataBitAssist = -1;
+static gint ett_rrlp_SeqOf_GANSSDataBits = -1;
+static gint ett_rrlp_GANSSRefMeasurementAssist = -1;
+static gint ett_rrlp_SeqOfGANSSRefMeasurementElement = -1;
+static gint ett_rrlp_GANSSRefMeasurementElement = -1;
+static gint ett_rrlp_AdditionalDopplerFields = -1;
+static gint ett_rrlp_GANSSAlmanacModel = -1;
+static gint ett_rrlp_SeqOfGANSSAlmanacElement = -1;
+static gint ett_rrlp_GANSSAlmanacElement = -1;
+static gint ett_rrlp_Almanac_KeplerianSet = -1;
+static gint ett_rrlp_GANSSUTCModel = -1;
+static gint ett_rrlp_Rel_7_MsrPosition_Rsp_Extension = -1;
+static gint ett_rrlp_GANSSLocationInfo = -1;
+static gint ett_rrlp_PositionData = -1;
+static gint ett_rrlp_ReferenceFrame = -1;
+static gint ett_rrlp_GANSSMeasureInfo = -1;
+static gint ett_rrlp_SeqOfGANSS_MsrSetElement = -1;
+static gint ett_rrlp_GANSS_MsrSetElement = -1;
+static gint ett_rrlp_SeqOfGANSS_SgnTypeElement = -1;
+static gint ett_rrlp_GANSS_SgnTypeElement = -1;
+static gint ett_rrlp_SeqOfGANSS_SgnElement = -1;
+static gint ett_rrlp_GANSS_SgnElement = -1;
+static gint ett_rrlp_Rel7_AssistanceData_Extension = -1;
+static gint ett_rrlp_ExtensionContainer = -1;
+static gint ett_rrlp_SLR_ArgExtensionContainer = -1;
+static gint ett_rrlp_PrivateExtensionList = -1;
+static gint ett_rrlp_PrivateExtension = -1;
+static gint ett_rrlp_PCS_Extensions = -1;
+static gint ett_rrlp_SLR_Arg_PCS_Extensions = -1;
/*--- End of included file: packet-rrlp-ett.c ---*/
-#line 70 "packet-rrlp-template.c"
+#line 68 "packet-rrlp-template.c"
/* Include constants */
/*--- Included file: packet-rrlp-val.h ---*/
#line 1 "packet-rrlp-val.h"
#define maxGPSAssistanceData 40
+#define maxGANSSAssistanceData 40
+#define maxNumOfPrivateExtensions 10
+#define maxExt_GeographicalInformation 20
/*--- End of included file: packet-rrlp-val.h ---*/
-#line 73 "packet-rrlp-template.c"
+#line 71 "packet-rrlp-template.c"
@@ -459,35 +693,6 @@ static gint ett_rrlp_Rel_5_ProtocolError_Extension = -1;
static int
-dissect_rrlp_Ext_GeographicalInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 21 "rrlp.cnf"
-
-tvbuff_t *parameter_tvb = NULL;
-
- offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 20, &parameter_tvb);
-
-
- if(parameter_tvb)
- dissect_geographical_description(parameter_tvb, actx->pinfo, tree);
-
-
- return offset;
-}
-
-
-
-static int
-dissect_rrlp_ExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- NO_BOUND, NO_BOUND, NULL);
-
- return offset;
-}
-
-
-
-static int
dissect_rrlp_INTEGER_0_7(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 7U, NULL, FALSE);
@@ -662,6 +867,25 @@ dissect_rrlp_TimeSlotScheme(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
+dissect_rrlp_Ext_GeographicalInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 35 "rrlp.cnf"
+
+tvbuff_t *parameter_tvb = NULL;
+
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 1, maxExt_GeographicalInformation, &parameter_tvb);
+
+
+ if(parameter_tvb)
+ dissect_geographical_description(parameter_tvb, actx->pinfo, tree);
+
+
+ return offset;
+}
+
+
+
+static int
dissect_rrlp_BTSPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_rrlp_Ext_GeographicalInformation(tvb, offset, actx, tree, hf_index);
@@ -1777,6 +2001,81 @@ dissect_rrlp_GPS_AssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
+dissect_rrlp_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_T_extType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_open_type(tvb, offset, actx, tree, hf_index, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t PrivateExtension_sequence[] = {
+ { &hf_rrlp_extId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_OBJECT_IDENTIFIER },
+ { &hf_rrlp_extType , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_T_extType },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_PrivateExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_PrivateExtension, PrivateExtension_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t PrivateExtensionList_sequence_of[1] = {
+ { &hf_rrlp_PrivateExtensionList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_PrivateExtension },
+};
+
+static int
+dissect_rrlp_PrivateExtensionList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_PrivateExtensionList, PrivateExtensionList_sequence_of,
+ 1, maxNumOfPrivateExtensions);
+
+ return offset;
+}
+
+
+static const per_sequence_t PCS_Extensions_sequence[] = {
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_PCS_Extensions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_PCS_Extensions, PCS_Extensions_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t ExtensionContainer_sequence[] = {
+ { &hf_rrlp_privateExtensionList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_PrivateExtensionList },
+ { &hf_rrlp_pcs_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_PCS_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_ExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_ExtensionContainer, ExtensionContainer_sequence);
+
+ return offset;
+}
+
+
+
+static int
dissect_rrlp_ExpectedOTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 1250U, NULL, FALSE);
@@ -1983,6 +2282,1001 @@ dissect_rrlp_Rel5_MsrPosition_Req_Extension(tvbuff_t *tvb _U_, int offset _U_, a
}
+static const asn_namedbit GANSSPositioningMethod_bits[] = {
+ { 0, &hf_rrlp_GANSSPositioningMethod_gps, -1, -1, "gps", NULL },
+ { 1, &hf_rrlp_GANSSPositioningMethod_galileo, -1, -1, "galileo", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_rrlp_GANSSPositioningMethod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
+ 2, 16, FALSE, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_8191(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 8191U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_GANSSTOD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 86399U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_GANSSTODUncertainty(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 127U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSRefTimeInfo_sequence[] = {
+ { &hf_rrlp_ganssDay , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_8191 },
+ { &hf_rrlp_ganssTOD , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSTOD },
+ { &hf_rrlp_ganssTODUncertainty, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSTODUncertainty },
+ { &hf_rrlp_ganssTimeID , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_7 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSRefTimeInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSRefTimeInfo, GANSSRefTimeInfo_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_FrameDrift(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ -64, 63U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSTOD_GSMTimeAssociation_sequence[] = {
+ { &hf_rrlp_bcchCarrier , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BCCHCarrier },
+ { &hf_rrlp_bsic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BSIC },
+ { &hf_rrlp_frameNumber , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_FrameNumber },
+ { &hf_rrlp_timeSlot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_TimeSlot },
+ { &hf_rrlp_bitNumber , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BitNumber },
+ { &hf_rrlp_frameDrift , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_FrameDrift },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSTOD_GSMTimeAssociation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSTOD_GSMTimeAssociation, GANSSTOD_GSMTimeAssociation_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSReferenceTime_sequence[] = {
+ { &hf_rrlp_ganssRefTimeInfo, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSRefTimeInfo },
+ { &hf_rrlp_ganssTOD_GSMTimeAssociation, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSTOD_GSMTimeAssociation },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSReferenceTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSReferenceTime, GANSSReferenceTime_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSRefLocation_sequence[] = {
+ { &hf_rrlp_threeDLocation , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_Ext_GeographicalInformation },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSRefLocation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSRefLocation, GANSSRefLocation_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_4095(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 4095U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSIonosphereModel_sequence[] = {
+ { &hf_rrlp_ai0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4095 },
+ { &hf_rrlp_ai1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4095 },
+ { &hf_rrlp_ai2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4095 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSIonosphereModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSIonosphereModel, GANSSIonosphereModel_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSIonoStormFlags_sequence[] = {
+ { &hf_rrlp_ionoStormFlag1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
+ { &hf_rrlp_ionoStormFlag2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
+ { &hf_rrlp_ionoStormFlag3 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
+ { &hf_rrlp_ionoStormFlag4 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
+ { &hf_rrlp_ionoStormFlag5 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSIonoStormFlags(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSIonoStormFlags, GANSSIonoStormFlags_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSIonosphericModel_sequence[] = {
+ { &hf_rrlp_ganssIonoModel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSIonosphereModel },
+ { &hf_rrlp_ganssIonoStormFlags, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSIonoStormFlags },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSIonosphericModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSIonosphericModel, GANSSIonosphericModel_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSCommonAssistData_sequence[] = {
+ { &hf_rrlp_ganssReferenceTime, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSReferenceTime },
+ { &hf_rrlp_ganssRefLocation, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSRefLocation },
+ { &hf_rrlp_ganssIonosphericModel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSIonosphericModel },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSCommonAssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSCommonAssistData, GANSSCommonAssistData_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_TA0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ -2147483648, 2147483647U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_TA1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ -8388608, 8388607U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_TA2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ -64, 63U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSTimeModelElement_sequence[] = {
+ { &hf_rrlp_ganssTimeModelRefTime, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_65535 },
+ { &hf_rrlp_tA0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_TA0 },
+ { &hf_rrlp_tA1 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_TA1 },
+ { &hf_rrlp_tA2 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_TA2 },
+ { &hf_rrlp_gnssTOID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
+ { &hf_rrlp_weekNumber , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_8191 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSTimeModelElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSTimeModelElement, GANSSTimeModelElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfGANSSTimeModel_sequence_of[1] = {
+ { &hf_rrlp_SeqOfGANSSTimeModel_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSTimeModelElement },
+};
+
+static int
+dissect_rrlp_SeqOfGANSSTimeModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfGANSSTimeModel, SeqOfGANSSTimeModel_sequence_of,
+ 1, 7);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_119(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 119U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_GANSSSignalID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 3U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_SVID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 63U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t DGANSSSgnElement_sequence[] = {
+ { &hf_rrlp_svID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &hf_rrlp_iod , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1023 },
+ { &hf_rrlp_udre , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_3 },
+ { &hf_rrlp_pseudoRangeCor , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2047_2047 },
+ { &hf_rrlp_rangeRateCor , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M127_127 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_DGANSSSgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_DGANSSSgnElement, DGANSSSgnElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfDGANSSSgnElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfDGANSSSgnElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_DGANSSSgnElement },
+};
+
+static int
+dissect_rrlp_SeqOfDGANSSSgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfDGANSSSgnElement, SeqOfDGANSSSgnElement_sequence_of,
+ 1, 16);
+
+ return offset;
+}
+
+
+static const per_sequence_t SgnTypeElement_sequence[] = {
+ { &hf_rrlp_ganssSignalID , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSSignalID },
+ { &hf_rrlp_ganssStatusHealth, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_7 },
+ { &hf_rrlp_dganssSgnList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfDGANSSSgnElement },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_SgnTypeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SgnTypeElement, SgnTypeElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfSgnTypeElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfSgnTypeElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SgnTypeElement },
+};
+
+static int
+dissect_rrlp_SeqOfSgnTypeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfSgnTypeElement, SeqOfSgnTypeElement_sequence_of,
+ 1, 3);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSDiffCorrections_sequence[] = {
+ { &hf_rrlp_dganssRefTime , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_119 },
+ { &hf_rrlp_sgnTypeList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfSgnTypeElement },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSDiffCorrections(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSDiffCorrections, GANSSDiffCorrections_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 127U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_M7_13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ -7, 13U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_511(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 511U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_M131072_131071(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ -131072, 131071U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_M134217728_134217727(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ -134217728, 134217727U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_M512_511(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ -512, 511U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t StandardClockModelElement_sequence[] = {
+ { &hf_rrlp_stanClockTocLSB, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_511 },
+ { &hf_rrlp_stanClockAF2 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2048_2047 },
+ { &hf_rrlp_stanClockAF1 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M131072_131071 },
+ { &hf_rrlp_stanClockAF0 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M134217728_134217727 },
+ { &hf_rrlp_stanClockTgd , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M512_511 },
+ { &hf_rrlp_stanModelID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_1 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_StandardClockModelElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_StandardClockModelElement, StandardClockModelElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfStandardClockModelElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfStandardClockModelElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_StandardClockModelElement },
+};
+
+static int
+dissect_rrlp_SeqOfStandardClockModelElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfStandardClockModelElement, SeqOfStandardClockModelElement_sequence_of,
+ 1, 2);
+
+ return offset;
+}
+
+
+static const value_string rrlp_GANSSClockModel_vals[] = {
+ { 0, "standardClockModelList" },
+ { 0, NULL }
+};
+
+static const per_choice_t GANSSClockModel_choice[] = {
+ { 0, &hf_rrlp_standardClockModelList, ASN1_EXTENSION_ROOT , dissect_rrlp_SeqOfStandardClockModelElement },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSClockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSClockModel, GANSSClockModel_choice,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_33554431(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 33554431U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_67108863(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 67108863U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t NavModel_KeplerianSet_sequence[] = {
+ { &hf_rrlp_keplerToeLSB , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_511 },
+ { &hf_rrlp_keplerW , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
+ { &hf_rrlp_keplerDeltaN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_keplerM0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
+ { &hf_rrlp_keplerOmegaDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
+ { &hf_rrlp_keplerELSB , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_33554431 },
+ { &hf_rrlp_keplerIDot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8192_8191 },
+ { &hf_rrlp_keplerAPowerHalfLSB, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_67108863 },
+ { &hf_rrlp_keplerI0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
+ { &hf_rrlp_keplerOmega0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
+ { &hf_rrlp_keplerCrs , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_keplerCis , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_keplerCus , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_keplerCrc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_keplerCic , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_keplerCuc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_NavModel_KeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_NavModel_KeplerianSet, NavModel_KeplerianSet_sequence);
+
+ return offset;
+}
+
+
+static const value_string rrlp_GANSSOrbitModel_vals[] = {
+ { 0, "keplerianSet" },
+ { 0, NULL }
+};
+
+static const per_choice_t GANSSOrbitModel_choice[] = {
+ { 0, &hf_rrlp_keplerianSet , ASN1_EXTENSION_ROOT , dissect_rrlp_NavModel_KeplerianSet },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSOrbitModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSOrbitModel, GANSSOrbitModel_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSSatelliteElement_sequence[] = {
+ { &hf_rrlp_svID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &hf_rrlp_svHealth , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M7_13 },
+ { &hf_rrlp_iod , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1023 },
+ { &hf_rrlp_ganssClockModel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSClockModel },
+ { &hf_rrlp_ganssOrbitModel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSOrbitModel },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSSatelliteElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSSatelliteElement, GANSSSatelliteElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfGANSSSatelliteElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfGANSSSatelliteElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSSatelliteElement },
+};
+
+static int
+dissect_rrlp_SeqOfGANSSSatelliteElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfGANSSSatelliteElement, SeqOfGANSSSatelliteElement_sequence_of,
+ 1, 32);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSNavModel_sequence[] = {
+ { &hf_rrlp_nonBroadcastIndFlag, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1 },
+ { &hf_rrlp_toeMSB , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_31 },
+ { &hf_rrlp_eMSB , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_127 },
+ { &hf_rrlp_sqrtAMBS , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_63 },
+ { &hf_rrlp_ganssSatelliteList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSSSatelliteElement },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSNavModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSNavModel, GANSSNavModel_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t BadSignalElement_sequence[] = {
+ { &hf_rrlp_badSVID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &hf_rrlp_badSignalID , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_3 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_BadSignalElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_BadSignalElement, BadSignalElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfBadSignalElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfBadSignalElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_BadSignalElement },
+};
+
+static int
+dissect_rrlp_SeqOfBadSignalElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfBadSignalElement, SeqOfBadSignalElement_sequence_of,
+ 1, 16);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSRealTimeIntegrity_sequence[] = {
+ { &hf_rrlp_ganssBadSignalList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfBadSignalElement },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSRealTimeIntegrity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSRealTimeIntegrity, GANSSRealTimeIntegrity_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_59(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 59U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 2U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_GANSSDataBit(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 1U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOf_GANSSDataBits_sequence_of[1] = {
+ { &hf_rrlp_SeqOf_GANSSDataBits_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSDataBit },
+};
+
+static int
+dissect_rrlp_SeqOf_GANSSDataBits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOf_GANSSDataBits, SeqOf_GANSSDataBits_sequence_of,
+ 1, 1024);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSDataBitAssist_sequence[] = {
+ { &hf_rrlp_ganssTOD1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_59 },
+ { &hf_rrlp_svID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &hf_rrlp_ganssDataTypeID, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2 },
+ { &hf_rrlp_ganssDataBits , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOf_GANSSDataBits },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSDataBitAssist(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSDataBitAssist, GANSSDataBitAssist_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 4U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t AdditionalDopplerFields_sequence[] = {
+ { &hf_rrlp_doppler1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 },
+ { &hf_rrlp_dopplerUncertainty1, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_4 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_AdditionalDopplerFields(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_AdditionalDopplerFields, AdditionalDopplerFields_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSRefMeasurementElement_sequence[] = {
+ { &hf_rrlp_svID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &hf_rrlp_doppler0 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2048_2047 },
+ { &hf_rrlp_additionalDoppler, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_AdditionalDopplerFields },
+ { &hf_rrlp_codePhase , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_1022 },
+ { &hf_rrlp_intCodePhase1 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_127 },
+ { &hf_rrlp_codePhaseSearchWindow1, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_31 },
+ { &hf_rrlp_additionalAngle, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_AddionalAngleFields },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSRefMeasurementElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSRefMeasurementElement, GANSSRefMeasurementElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfGANSSRefMeasurementElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfGANSSRefMeasurementElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSRefMeasurementElement },
+};
+
+static int
+dissect_rrlp_SeqOfGANSSRefMeasurementElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfGANSSRefMeasurementElement, SeqOfGANSSRefMeasurementElement_sequence_of,
+ 1, 16);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSRefMeasurementAssist_sequence[] = {
+ { &hf_rrlp_ganssSignalID1 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_3 },
+ { &hf_rrlp_ganssRefMeasAssitList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSSRefMeasurementElement },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSRefMeasurementAssist(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSRefMeasurementAssist, GANSSRefMeasurementAssist_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_SVIDMASK(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
+ 1, 36, FALSE, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_2047(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 2047U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_M65536_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ -65536, 65535U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t Almanac_KeplerianSet_sequence[] = {
+ { &hf_rrlp_kepAlmanacE , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2047 },
+ { &hf_rrlp_kepAlmanacDeltaI, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
+ { &hf_rrlp_kepAlmanacOmegaDot, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
+ { &hf_rrlp_kepSVHealth , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_15 },
+ { &hf_rrlp_kepAlmanacAPowerHalf, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M65536_65535 },
+ { &hf_rrlp_kepAlmanacOmega0, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_kepAlmanacW , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_kepAlmanacM0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_kepAlmanacAF0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8192_8191 },
+ { &hf_rrlp_kepAlmanacAF1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M1024_1023 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_Almanac_KeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_Almanac_KeplerianSet, Almanac_KeplerianSet_sequence);
+
+ return offset;
+}
+
+
+static const value_string rrlp_GANSSAlmanacElement_vals[] = {
+ { 0, "keplerianAlmanacSet" },
+ { 0, NULL }
+};
+
+static const per_choice_t GANSSAlmanacElement_choice[] = {
+ { 0, &hf_rrlp_keplerianAlmanacSet, ASN1_EXTENSION_ROOT , dissect_rrlp_Almanac_KeplerianSet },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSAlmanacElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSAlmanacElement, GANSSAlmanacElement_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfGANSSAlmanacElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfGANSSAlmanacElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSAlmanacElement },
+};
+
+static int
+dissect_rrlp_SeqOfGANSSAlmanacElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfGANSSAlmanacElement, SeqOfGANSSAlmanacElement_sequence_of,
+ 1, 36);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSAlmanacModel_sequence[] = {
+ { &hf_rrlp_weekNumber1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
+ { &hf_rrlp_svIDMask , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVIDMASK },
+ { &hf_rrlp_toa , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_255 },
+ { &hf_rrlp_ioda , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_3 },
+ { &hf_rrlp_ganssAlmanacList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSSAlmanacElement },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSAlmanacModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSAlmanacModel, GANSSAlmanacModel_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSUTCModel_sequence[] = {
+ { &hf_rrlp_ganssUtcA1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M8388608_8388607 },
+ { &hf_rrlp_ganssUtcA0 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M2147483648_2147483647 },
+ { &hf_rrlp_ganssUtcTot , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
+ { &hf_rrlp_ganssUtcWNt , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
+ { &hf_rrlp_ganssUtcDeltaTls, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
+ { &hf_rrlp_ganssUtcWNlsf , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_255 },
+ { &hf_rrlp_ganssUtcDN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
+ { &hf_rrlp_ganssUtcDeltaTlsf, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_M128_127 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSUTCModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSUTCModel, GANSSUTCModel_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSGenericAssistDataElement_sequence[] = {
+ { &hf_rrlp_ganssID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_7 },
+ { &hf_rrlp_ganssTimeModel , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_SeqOfGANSSTimeModel },
+ { &hf_rrlp_ganssDiffCorrections, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSDiffCorrections },
+ { &hf_rrlp_ganssNavigationModel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSNavModel },
+ { &hf_rrlp_ganssRealTimeIntegrity, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSRealTimeIntegrity },
+ { &hf_rrlp_ganssDataBitAssist, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSDataBitAssist },
+ { &hf_rrlp_ganssRefMeasurementAssist, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSRefMeasurementAssist },
+ { &hf_rrlp_ganssAlmanacModel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSAlmanacModel },
+ { &hf_rrlp_ganssUTCModel , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSUTCModel },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSGenericAssistDataElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSGenericAssistDataElement, GANSSGenericAssistDataElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfGANSSGenericAssistDataElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfGANSSGenericAssistDataElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSSGenericAssistDataElement },
+};
+
+static int
+dissect_rrlp_SeqOfGANSSGenericAssistDataElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfGANSSGenericAssistDataElement, SeqOfGANSSGenericAssistDataElement_sequence_of,
+ 1, 8);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSS_ControlHeader_sequence[] = {
+ { &hf_rrlp_ganssCommonAssistData, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSCommonAssistData },
+ { &hf_rrlp_ganssGenericAssistDataList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_SeqOfGANSSGenericAssistDataElement },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSS_ControlHeader(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSS_ControlHeader, GANSS_ControlHeader_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSS_AssistData_sequence[] = {
+ { &hf_rrlp_ganss_controlHeader, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSS_ControlHeader },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSS_AssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSS_AssistData, GANSS_AssistData_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_RequiredResponseTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 1U, 128U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t Rel7_MsrPosition_Req_Extension_sequence[] = {
+ { &hf_rrlp_velocityRequested, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NULL },
+ { &hf_rrlp_ganssPositionMethod, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSPositioningMethod },
+ { &hf_rrlp_ganss_AssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSS_AssistData },
+ { &hf_rrlp_ganssCarrierPhaseMeasurementRequest, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NULL },
+ { &hf_rrlp_ganssTODGSMTimeAssociationMeasurementRequest, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NULL },
+ { &hf_rrlp_requiredResponseTime, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_RequiredResponseTime },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_Rel7_MsrPosition_Req_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_Rel7_MsrPosition_Req_Extension, Rel7_MsrPosition_Req_Extension_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t MsrPosition_Req_sequence[] = {
{ &hf_rrlp_positionInstruct, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_PositionInstruct },
{ &hf_rrlp_referenceAssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ReferenceAssistData },
@@ -1992,6 +3286,7 @@ static const per_sequence_t MsrPosition_Req_sequence[] = {
{ &hf_rrlp_extensionContainer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ExtensionContainer },
{ &hf_rrlp_rel98_MsrPosition_Req_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel98_MsrPosition_Req_Extension },
{ &hf_rrlp_rel5_MsrPosition_Req_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel5_MsrPosition_Req_Extension },
+ { &hf_rrlp_rel7_MsrPosition_Req_extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel7_MsrPosition_Req_Extension },
{ NULL, 0, 0, NULL }
};
@@ -2658,6 +3953,9 @@ static const value_string rrlp_LocErrorReason_vals[] = {
{ 8, "notProcessed" },
{ 9, "refBTSForGPSNotServingBTS" },
{ 10, "refBTSForEOTDNotServingBTS" },
+ { 11, "notEnoughGANSSSats" },
+ { 12, "ganssAssDataMissing" },
+ { 13, "refBTSForGANSSNotServingBTS" },
{ 0, NULL }
};
@@ -2665,7 +3963,7 @@ static const value_string rrlp_LocErrorReason_vals[] = {
static int
dissect_rrlp_LocErrorReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
- 11, NULL, TRUE, 0, NULL);
+ 11, NULL, TRUE, 3, NULL);
return offset;
}
@@ -2681,9 +3979,20 @@ dissect_rrlp_GPSAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
}
+
+static int
+dissect_rrlp_GANSSAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 1, maxGANSSAssistanceData, NULL);
+
+ return offset;
+}
+
+
static const per_sequence_t AdditionalAssistanceData_sequence[] = {
{ &hf_rrlp_gpsAssistanceData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GPSAssistanceData },
{ &hf_rrlp_extensionContainer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ExtensionContainer },
+ { &hf_rrlp_ganssAssistanceData, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_GANSSAssistanceData },
{ NULL, 0, 0, NULL }
};
@@ -2777,16 +4086,6 @@ dissect_rrlp_INTEGER_0_9999(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
}
-
-static int
-dissect_rrlp_INTEGER_0_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 0U, 127U, NULL, FALSE);
-
- return offset;
-}
-
-
static const per_sequence_t GPSTimeAssistanceMeasurements_sequence[] = {
{ &hf_rrlp_referenceFrameMSB, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 },
{ &hf_rrlp_gpsTowSubms , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_9999 },
@@ -2860,6 +4159,226 @@ dissect_rrlp_Rel_5_MsrPosition_Rsp_Extension(tvbuff_t *tvb _U_, int offset _U_,
}
+
+static int
+dissect_rrlp_VelocityEstimate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 4, 7, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t ReferenceFrame_sequence[] = {
+ { &hf_rrlp_referenceFN , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_65535 },
+ { &hf_rrlp_referenceFNMSB , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_63 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_ReferenceFrame(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_ReferenceFrame, ReferenceFrame_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_GANSSTODm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 3599999U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_16384(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 16384U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const asn_namedbit PositionData_bits[] = {
+ { 0, &hf_rrlp_PositionData_e_otd, -1, -1, "e-otd", NULL },
+ { 1, &hf_rrlp_PositionData_gps, -1, -1, "gps", NULL },
+ { 2, &hf_rrlp_PositionData_galileo, -1, -1, "galileo", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_rrlp_PositionData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
+ 3, 16, FALSE, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSLocationInfo_sequence[] = {
+ { &hf_rrlp_referenceFrame , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ReferenceFrame },
+ { &hf_rrlp_ganssTODm , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSTODm },
+ { &hf_rrlp_ganssTODFrac , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_16384 },
+ { &hf_rrlp_ganssTODUncertainty, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSTODUncertainty },
+ { &hf_rrlp_ganssTimeID1 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_3 },
+ { &hf_rrlp_fixType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_FixType },
+ { &hf_rrlp_posData , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_PositionData },
+ { &hf_rrlp_stationaryIndication, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_1 },
+ { &hf_rrlp_posEstimate , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rrlp_Ext_GeographicalInformation },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSLocationInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSLocationInfo, GANSSLocationInfo_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_rrlp_INTEGER_0_2097151(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 2097151U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSS_SgnElement_sequence[] = {
+ { &hf_rrlp_svID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SVID },
+ { &hf_rrlp_cNo , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 },
+ { &hf_rrlp_mpathDet , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_MpathIndic },
+ { &hf_rrlp_carrierQualityInd, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_3 },
+ { &hf_rrlp_codePhase1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_2097151 },
+ { &hf_rrlp_integerCodePhase, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_63 },
+ { &hf_rrlp_codePhaseRMSError, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_63 },
+ { &hf_rrlp_doppler , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_M32768_32767 },
+ { &hf_rrlp_adr , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_33554431 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSS_SgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSS_SgnElement, GANSS_SgnElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfGANSS_SgnElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfGANSS_SgnElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSS_SgnElement },
+};
+
+static int
+dissect_rrlp_SeqOfGANSS_SgnElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfGANSS_SgnElement, SeqOfGANSS_SgnElement_sequence_of,
+ 1, 16);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSS_SgnTypeElement_sequence[] = {
+ { &hf_rrlp_ganssSignalID2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_INTEGER_0_15 },
+ { &hf_rrlp_ganss_SgnList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSS_SgnElement },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSS_SgnTypeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSS_SgnTypeElement, GANSS_SgnTypeElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfGANSS_SgnTypeElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfGANSS_SgnTypeElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSS_SgnTypeElement },
+};
+
+static int
+dissect_rrlp_SeqOfGANSS_SgnTypeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfGANSS_SgnTypeElement, SeqOfGANSS_SgnTypeElement_sequence_of,
+ 1, 6);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSS_MsrSetElement_sequence[] = {
+ { &hf_rrlp_referenceFrame , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_ReferenceFrame },
+ { &hf_rrlp_ganssTODm , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSTODm },
+ { &hf_rrlp_deltaGNASSTOD , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_INTEGER_0_127 },
+ { &hf_rrlp_ganssTODUncertainty, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rrlp_GANSSTODUncertainty },
+ { &hf_rrlp_ganss_SgnTypeList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSS_SgnTypeElement },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSS_MsrSetElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSS_MsrSetElement, GANSS_MsrSetElement_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SeqOfGANSS_MsrSetElement_sequence_of[1] = {
+ { &hf_rrlp_SeqOfGANSS_MsrSetElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_GANSS_MsrSetElement },
+};
+
+static int
+dissect_rrlp_SeqOfGANSS_MsrSetElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SeqOfGANSS_MsrSetElement, SeqOfGANSS_MsrSetElement_sequence_of,
+ 1, 3);
+
+ return offset;
+}
+
+
+static const per_sequence_t GANSSMeasureInfo_sequence[] = {
+ { &hf_rrlp_ganssMsrSetList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rrlp_SeqOfGANSS_MsrSetElement },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_GANSSMeasureInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_GANSSMeasureInfo, GANSSMeasureInfo_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t Rel_7_MsrPosition_Rsp_Extension_sequence[] = {
+ { &hf_rrlp_velEstimate , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_VelocityEstimate },
+ { &hf_rrlp_ganssLocationInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSLocationInfo },
+ { &hf_rrlp_ganssMeasureInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSSMeasureInfo },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_Rel_7_MsrPosition_Rsp_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_Rel_7_MsrPosition_Rsp_Extension, Rel_7_MsrPosition_Rsp_Extension_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t MsrPosition_Rsp_sequence[] = {
{ &hf_rrlp_multipleSets , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_MultipleSets },
{ &hf_rrlp_referenceIdentity, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ReferenceIdentity },
@@ -2870,6 +4389,7 @@ static const per_sequence_t MsrPosition_Rsp_sequence[] = {
{ &hf_rrlp_extensionContainer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ExtensionContainer },
{ &hf_rrlp_rel_98_MsrPosition_Rsp_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel_98_MsrPosition_Rsp_Extension },
{ &hf_rrlp_rel_5_MsrPosition_Rsp_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel_5_MsrPosition_Rsp_Extension },
+ { &hf_rrlp_rel_7_MsrPosition_Rsp_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel_7_MsrPosition_Rsp_Extension },
{ NULL, 0, 0, NULL }
};
@@ -2928,6 +4448,22 @@ dissect_rrlp_Rel5_AssistanceData_Extension(tvbuff_t *tvb _U_, int offset _U_, as
}
+static const per_sequence_t Rel7_AssistanceData_Extension_sequence[] = {
+ { &hf_rrlp_ganss_AssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_GANSS_AssistData },
+ { &hf_rrlp_ganssCarrierPhaseMeasurementRequest, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NULL },
+ { &hf_rrlp_ganssTODGSMTimeAssociationMeasurementRequest, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_NULL },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_Rel7_AssistanceData_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_Rel7_AssistanceData_Extension, Rel7_AssistanceData_Extension_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t AssistanceData_sequence[] = {
{ &hf_rrlp_referenceAssistData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ReferenceAssistData },
{ &hf_rrlp_msrAssistData , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_MsrAssistData },
@@ -2937,6 +4473,7 @@ static const per_sequence_t AssistanceData_sequence[] = {
{ &hf_rrlp_extensionContainer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_ExtensionContainer },
{ &hf_rrlp_rel98_AssistanceData_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel98_AssistanceData_Extension },
{ &hf_rrlp_rel5_AssistanceData_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel5_AssistanceData_Extension },
+ { &hf_rrlp_rel7_AssistanceData_Extension, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_Rel7_AssistanceData_Extension },
{ NULL, 0, 0, NULL }
};
@@ -3035,17 +4572,44 @@ static const per_sequence_t PDU_sequence[] = {
static int
dissect_rrlp_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 10 "rrlp.cnf"
+#line 26 "rrlp.cnf"
proto_tree_add_item(tree, proto_rrlp, tvb, 0, -1, FALSE);
if (check_col(actx->pinfo->cinfo, COL_PROTOCOL))
col_append_str(actx->pinfo->cinfo, COL_PROTOCOL, "/RRLP");
- offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_rrlp_PDU, PDU_sequence);
+ return offset;
+}
+
+static const per_sequence_t SLR_Arg_PCS_Extensions_sequence[] = {
+ { &hf_rrlp_na_ESRK_Request, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rrlp_NULL },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_SLR_Arg_PCS_Extensions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SLR_Arg_PCS_Extensions, SLR_Arg_PCS_Extensions_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SLR_ArgExtensionContainer_sequence[] = {
+ { &hf_rrlp_privateExtensionList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_PrivateExtensionList },
+ { &hf_rrlp_slr_Arg_PCS_Extensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rrlp_SLR_Arg_PCS_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_rrlp_SLR_ArgExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_rrlp_SLR_ArgExtensionContainer, SLR_ArgExtensionContainer_sequence);
return offset;
}
@@ -3060,7 +4624,7 @@ static void dissect_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tre
/*--- End of included file: packet-rrlp-fn.c ---*/
-#line 76 "packet-rrlp-template.c"
+#line 74 "packet-rrlp-template.c"
/*--- proto_register_rrlp -------------------------------------------*/
@@ -3126,7 +4690,7 @@ void proto_register_rrlp(void) {
"rrlp.GPS_AssistData", HFILL }},
{ &hf_rrlp_extensionContainer,
{ "extensionContainer", "rrlp.extensionContainer",
- FT_BYTES, BASE_HEX, NULL, 0,
+ FT_NONE, BASE_NONE, NULL, 0,
"rrlp.ExtensionContainer", HFILL }},
{ &hf_rrlp_rel98_MsrPosition_Req_extension,
{ "rel98-MsrPosition-Req-extension", "rrlp.rel98_MsrPosition_Req_extension",
@@ -3136,6 +4700,10 @@ void proto_register_rrlp(void) {
{ "rel5-MsrPosition-Req-extension", "rrlp.rel5_MsrPosition_Req_extension",
FT_NONE, BASE_NONE, NULL, 0,
"rrlp.Rel5_MsrPosition_Req_Extension", HFILL }},
+ { &hf_rrlp_rel7_MsrPosition_Req_extension,
+ { "rel7-MsrPosition-Req-extension", "rrlp.rel7_MsrPosition_Req_extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.Rel7_MsrPosition_Req_Extension", HFILL }},
{ &hf_rrlp_multipleSets,
{ "multipleSets", "rrlp.multipleSets",
FT_NONE, BASE_NONE, NULL, 0,
@@ -3168,6 +4736,10 @@ void proto_register_rrlp(void) {
{ "rel-5-MsrPosition-Rsp-Extension", "rrlp.rel_5_MsrPosition_Rsp_Extension",
FT_NONE, BASE_NONE, NULL, 0,
"rrlp.Rel_5_MsrPosition_Rsp_Extension", HFILL }},
+ { &hf_rrlp_rel_7_MsrPosition_Rsp_Extension,
+ { "rel-7-MsrPosition-Rsp-Extension", "rrlp.rel_7_MsrPosition_Rsp_Extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.Rel_7_MsrPosition_Rsp_Extension", HFILL }},
{ &hf_rrlp_moreAssDataToBeSent,
{ "moreAssDataToBeSent", "rrlp.moreAssDataToBeSent",
FT_UINT32, BASE_DEC, VALS(rrlp_MoreAssDataToBeSent_vals), 0,
@@ -3180,6 +4752,10 @@ void proto_register_rrlp(void) {
{ "rel5-AssistanceData-Extension", "rrlp.rel5_AssistanceData_Extension",
FT_NONE, BASE_NONE, NULL, 0,
"rrlp.Rel5_AssistanceData_Extension", HFILL }},
+ { &hf_rrlp_rel7_AssistanceData_Extension,
+ { "rel7-AssistanceData-Extension", "rrlp.rel7_AssistanceData_Extension",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.Rel7_AssistanceData_Extension", HFILL }},
{ &hf_rrlp_errorCause,
{ "errorCause", "rrlp.errorCause",
FT_UINT32, BASE_DEC, VALS(rrlp_ErrorCodes_vals), 0,
@@ -3520,6 +5096,10 @@ void proto_register_rrlp(void) {
{ "gpsAssistanceData", "rrlp.gpsAssistanceData",
FT_BYTES, BASE_HEX, NULL, 0,
"rrlp.GPSAssistanceData", HFILL }},
+ { &hf_rrlp_ganssAssistanceData,
+ { "ganssAssistanceData", "rrlp.ganssAssistanceData",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "rrlp.GANSSAssistanceData", HFILL }},
{ &hf_rrlp_controlHeader,
{ "controlHeader", "rrlp.controlHeader",
FT_NONE, BASE_NONE, NULL, 0,
@@ -4116,9 +5696,677 @@ void proto_register_rrlp(void) {
{ "transaction-ID", "rrlp.transaction_ID",
FT_UINT32, BASE_DEC, NULL, 0,
"rrlp.INTEGER_0_262143", HFILL }},
+ { &hf_rrlp_velocityRequested,
+ { "velocityRequested", "rrlp.velocityRequested",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.NULL", HFILL }},
+ { &hf_rrlp_ganssPositionMethod,
+ { "ganssPositionMethod", "rrlp.ganssPositionMethod",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "rrlp.GANSSPositioningMethod", HFILL }},
+ { &hf_rrlp_ganss_AssistData,
+ { "ganss-AssistData", "rrlp.ganss_AssistData",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSS_AssistData", HFILL }},
+ { &hf_rrlp_ganssCarrierPhaseMeasurementRequest,
+ { "ganssCarrierPhaseMeasurementRequest", "rrlp.ganssCarrierPhaseMeasurementRequest",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.NULL", HFILL }},
+ { &hf_rrlp_ganssTODGSMTimeAssociationMeasurementRequest,
+ { "ganssTODGSMTimeAssociationMeasurementRequest", "rrlp.ganssTODGSMTimeAssociationMeasurementRequest",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.NULL", HFILL }},
+ { &hf_rrlp_requiredResponseTime,
+ { "requiredResponseTime", "rrlp.requiredResponseTime",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.RequiredResponseTime", HFILL }},
+ { &hf_rrlp_ganss_controlHeader,
+ { "ganss-controlHeader", "rrlp.ganss_controlHeader",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSS_ControlHeader", HFILL }},
+ { &hf_rrlp_ganssCommonAssistData,
+ { "ganssCommonAssistData", "rrlp.ganssCommonAssistData",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSCommonAssistData", HFILL }},
+ { &hf_rrlp_ganssGenericAssistDataList,
+ { "ganssGenericAssistDataList", "rrlp.ganssGenericAssistDataList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfGANSSGenericAssistDataElement", HFILL }},
+ { &hf_rrlp_ganssReferenceTime,
+ { "ganssReferenceTime", "rrlp.ganssReferenceTime",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSReferenceTime", HFILL }},
+ { &hf_rrlp_ganssRefLocation,
+ { "ganssRefLocation", "rrlp.ganssRefLocation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSRefLocation", HFILL }},
+ { &hf_rrlp_ganssIonosphericModel,
+ { "ganssIonosphericModel", "rrlp.ganssIonosphericModel",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSIonosphericModel", HFILL }},
+ { &hf_rrlp_SeqOfGANSSGenericAssistDataElement_item,
+ { "Item", "rrlp.SeqOfGANSSGenericAssistDataElement_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSGenericAssistDataElement", HFILL }},
+ { &hf_rrlp_ganssID,
+ { "ganssID", "rrlp.ganssID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_7", HFILL }},
+ { &hf_rrlp_ganssTimeModel,
+ { "ganssTimeModel", "rrlp.ganssTimeModel",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfGANSSTimeModel", HFILL }},
+ { &hf_rrlp_ganssDiffCorrections,
+ { "ganssDiffCorrections", "rrlp.ganssDiffCorrections",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSDiffCorrections", HFILL }},
+ { &hf_rrlp_ganssNavigationModel,
+ { "ganssNavigationModel", "rrlp.ganssNavigationModel",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSNavModel", HFILL }},
+ { &hf_rrlp_ganssRealTimeIntegrity,
+ { "ganssRealTimeIntegrity", "rrlp.ganssRealTimeIntegrity",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSRealTimeIntegrity", HFILL }},
+ { &hf_rrlp_ganssDataBitAssist,
+ { "ganssDataBitAssist", "rrlp.ganssDataBitAssist",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSDataBitAssist", HFILL }},
+ { &hf_rrlp_ganssRefMeasurementAssist,
+ { "ganssRefMeasurementAssist", "rrlp.ganssRefMeasurementAssist",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSRefMeasurementAssist", HFILL }},
+ { &hf_rrlp_ganssAlmanacModel,
+ { "ganssAlmanacModel", "rrlp.ganssAlmanacModel",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSAlmanacModel", HFILL }},
+ { &hf_rrlp_ganssUTCModel,
+ { "ganssUTCModel", "rrlp.ganssUTCModel",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSUTCModel", HFILL }},
+ { &hf_rrlp_ganssRefTimeInfo,
+ { "ganssRefTimeInfo", "rrlp.ganssRefTimeInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSRefTimeInfo", HFILL }},
+ { &hf_rrlp_ganssTOD_GSMTimeAssociation,
+ { "ganssTOD-GSMTimeAssociation", "rrlp.ganssTOD_GSMTimeAssociation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSTOD_GSMTimeAssociation", HFILL }},
+ { &hf_rrlp_ganssDay,
+ { "ganssDay", "rrlp.ganssDay",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_8191", HFILL }},
+ { &hf_rrlp_ganssTOD,
+ { "ganssTOD", "rrlp.ganssTOD",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.GANSSTOD", HFILL }},
+ { &hf_rrlp_ganssTODUncertainty,
+ { "ganssTODUncertainty", "rrlp.ganssTODUncertainty",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.GANSSTODUncertainty", HFILL }},
+ { &hf_rrlp_ganssTimeID,
+ { "ganssTimeID", "rrlp.ganssTimeID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_7", HFILL }},
+ { &hf_rrlp_frameDrift,
+ { "frameDrift", "rrlp.frameDrift",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.FrameDrift", HFILL }},
+ { &hf_rrlp_ganssIonoModel,
+ { "ganssIonoModel", "rrlp.ganssIonoModel",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSIonosphereModel", HFILL }},
+ { &hf_rrlp_ganssIonoStormFlags,
+ { "ganssIonoStormFlags", "rrlp.ganssIonoStormFlags",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSIonoStormFlags", HFILL }},
+ { &hf_rrlp_ai0,
+ { "ai0", "rrlp.ai0",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_4095", HFILL }},
+ { &hf_rrlp_ai1,
+ { "ai1", "rrlp.ai1",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_4095", HFILL }},
+ { &hf_rrlp_ai2,
+ { "ai2", "rrlp.ai2",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_4095", HFILL }},
+ { &hf_rrlp_ionoStormFlag1,
+ { "ionoStormFlag1", "rrlp.ionoStormFlag1",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_1", HFILL }},
+ { &hf_rrlp_ionoStormFlag2,
+ { "ionoStormFlag2", "rrlp.ionoStormFlag2",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_1", HFILL }},
+ { &hf_rrlp_ionoStormFlag3,
+ { "ionoStormFlag3", "rrlp.ionoStormFlag3",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_1", HFILL }},
+ { &hf_rrlp_ionoStormFlag4,
+ { "ionoStormFlag4", "rrlp.ionoStormFlag4",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_1", HFILL }},
+ { &hf_rrlp_ionoStormFlag5,
+ { "ionoStormFlag5", "rrlp.ionoStormFlag5",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_1", HFILL }},
+ { &hf_rrlp_SeqOfGANSSTimeModel_item,
+ { "Item", "rrlp.SeqOfGANSSTimeModel_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSTimeModelElement", HFILL }},
+ { &hf_rrlp_ganssTimeModelRefTime,
+ { "ganssTimeModelRefTime", "rrlp.ganssTimeModelRefTime",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_65535", HFILL }},
+ { &hf_rrlp_tA0,
+ { "tA0", "rrlp.tA0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.TA0", HFILL }},
+ { &hf_rrlp_tA1,
+ { "tA1", "rrlp.tA1",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.TA1", HFILL }},
+ { &hf_rrlp_tA2,
+ { "tA2", "rrlp.tA2",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.TA2", HFILL }},
+ { &hf_rrlp_gnssTOID,
+ { "gnssTOID", "rrlp.gnssTOID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_7", HFILL }},
+ { &hf_rrlp_weekNumber,
+ { "weekNumber", "rrlp.weekNumber",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_8191", HFILL }},
+ { &hf_rrlp_dganssRefTime,
+ { "dganssRefTime", "rrlp.dganssRefTime",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_119", HFILL }},
+ { &hf_rrlp_sgnTypeList,
+ { "sgnTypeList", "rrlp.sgnTypeList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfSgnTypeElement", HFILL }},
+ { &hf_rrlp_SeqOfSgnTypeElement_item,
+ { "Item", "rrlp.SeqOfSgnTypeElement_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.SgnTypeElement", HFILL }},
+ { &hf_rrlp_ganssSignalID,
+ { "ganssSignalID", "rrlp.ganssSignalID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.GANSSSignalID", HFILL }},
+ { &hf_rrlp_ganssStatusHealth,
+ { "ganssStatusHealth", "rrlp.ganssStatusHealth",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_7", HFILL }},
+ { &hf_rrlp_dganssSgnList,
+ { "dganssSgnList", "rrlp.dganssSgnList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfDGANSSSgnElement", HFILL }},
+ { &hf_rrlp_SeqOfDGANSSSgnElement_item,
+ { "Item", "rrlp.SeqOfDGANSSSgnElement_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.DGANSSSgnElement", HFILL }},
+ { &hf_rrlp_svID,
+ { "svID", "rrlp.svID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SVID", HFILL }},
+ { &hf_rrlp_iod,
+ { "iod", "rrlp.iod",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_1023", HFILL }},
+ { &hf_rrlp_nonBroadcastIndFlag,
+ { "nonBroadcastIndFlag", "rrlp.nonBroadcastIndFlag",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_1", HFILL }},
+ { &hf_rrlp_toeMSB,
+ { "toeMSB", "rrlp.toeMSB",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_31", HFILL }},
+ { &hf_rrlp_eMSB,
+ { "eMSB", "rrlp.eMSB",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_127", HFILL }},
+ { &hf_rrlp_sqrtAMBS,
+ { "sqrtAMBS", "rrlp.sqrtAMBS",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_63", HFILL }},
+ { &hf_rrlp_ganssSatelliteList,
+ { "ganssSatelliteList", "rrlp.ganssSatelliteList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfGANSSSatelliteElement", HFILL }},
+ { &hf_rrlp_SeqOfGANSSSatelliteElement_item,
+ { "Item", "rrlp.SeqOfGANSSSatelliteElement_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSSatelliteElement", HFILL }},
+ { &hf_rrlp_svHealth,
+ { "svHealth", "rrlp.svHealth",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M7_13", HFILL }},
+ { &hf_rrlp_ganssClockModel,
+ { "ganssClockModel", "rrlp.ganssClockModel",
+ FT_UINT32, BASE_DEC, VALS(rrlp_GANSSClockModel_vals), 0,
+ "rrlp.GANSSClockModel", HFILL }},
+ { &hf_rrlp_ganssOrbitModel,
+ { "ganssOrbitModel", "rrlp.ganssOrbitModel",
+ FT_UINT32, BASE_DEC, VALS(rrlp_GANSSOrbitModel_vals), 0,
+ "rrlp.GANSSOrbitModel", HFILL }},
+ { &hf_rrlp_keplerianSet,
+ { "keplerianSet", "rrlp.keplerianSet",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.NavModel_KeplerianSet", HFILL }},
+ { &hf_rrlp_keplerToeLSB,
+ { "keplerToeLSB", "rrlp.keplerToeLSB",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_511", HFILL }},
+ { &hf_rrlp_keplerW,
+ { "keplerW", "rrlp.keplerW",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M2147483648_2147483647", HFILL }},
+ { &hf_rrlp_keplerDeltaN,
+ { "keplerDeltaN", "rrlp.keplerDeltaN",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_keplerM0,
+ { "keplerM0", "rrlp.keplerM0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M2147483648_2147483647", HFILL }},
+ { &hf_rrlp_keplerOmegaDot,
+ { "keplerOmegaDot", "rrlp.keplerOmegaDot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M8388608_8388607", HFILL }},
+ { &hf_rrlp_keplerELSB,
+ { "keplerELSB", "rrlp.keplerELSB",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_33554431", HFILL }},
+ { &hf_rrlp_keplerIDot,
+ { "keplerIDot", "rrlp.keplerIDot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M8192_8191", HFILL }},
+ { &hf_rrlp_keplerAPowerHalfLSB,
+ { "keplerAPowerHalfLSB", "rrlp.keplerAPowerHalfLSB",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_67108863", HFILL }},
+ { &hf_rrlp_keplerI0,
+ { "keplerI0", "rrlp.keplerI0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M2147483648_2147483647", HFILL }},
+ { &hf_rrlp_keplerOmega0,
+ { "keplerOmega0", "rrlp.keplerOmega0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M2147483648_2147483647", HFILL }},
+ { &hf_rrlp_keplerCrs,
+ { "keplerCrs", "rrlp.keplerCrs",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_keplerCis,
+ { "keplerCis", "rrlp.keplerCis",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_keplerCus,
+ { "keplerCus", "rrlp.keplerCus",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_keplerCrc,
+ { "keplerCrc", "rrlp.keplerCrc",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_keplerCic,
+ { "keplerCic", "rrlp.keplerCic",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_keplerCuc,
+ { "keplerCuc", "rrlp.keplerCuc",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_standardClockModelList,
+ { "standardClockModelList", "rrlp.standardClockModelList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfStandardClockModelElement", HFILL }},
+ { &hf_rrlp_SeqOfStandardClockModelElement_item,
+ { "Item", "rrlp.SeqOfStandardClockModelElement_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.StandardClockModelElement", HFILL }},
+ { &hf_rrlp_stanClockTocLSB,
+ { "stanClockTocLSB", "rrlp.stanClockTocLSB",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_511", HFILL }},
+ { &hf_rrlp_stanClockAF2,
+ { "stanClockAF2", "rrlp.stanClockAF2",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M2048_2047", HFILL }},
+ { &hf_rrlp_stanClockAF1,
+ { "stanClockAF1", "rrlp.stanClockAF1",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M131072_131071", HFILL }},
+ { &hf_rrlp_stanClockAF0,
+ { "stanClockAF0", "rrlp.stanClockAF0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M134217728_134217727", HFILL }},
+ { &hf_rrlp_stanClockTgd,
+ { "stanClockTgd", "rrlp.stanClockTgd",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M512_511", HFILL }},
+ { &hf_rrlp_stanModelID,
+ { "stanModelID", "rrlp.stanModelID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_1", HFILL }},
+ { &hf_rrlp_ganssBadSignalList,
+ { "ganssBadSignalList", "rrlp.ganssBadSignalList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfBadSignalElement", HFILL }},
+ { &hf_rrlp_SeqOfBadSignalElement_item,
+ { "Item", "rrlp.SeqOfBadSignalElement_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.BadSignalElement", HFILL }},
+ { &hf_rrlp_badSVID,
+ { "badSVID", "rrlp.badSVID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SVID", HFILL }},
+ { &hf_rrlp_badSignalID,
+ { "badSignalID", "rrlp.badSignalID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_3", HFILL }},
+ { &hf_rrlp_ganssTOD1,
+ { "ganssTOD", "rrlp.ganssTOD",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_59", HFILL }},
+ { &hf_rrlp_ganssDataTypeID,
+ { "ganssDataTypeID", "rrlp.ganssDataTypeID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_2", HFILL }},
+ { &hf_rrlp_ganssDataBits,
+ { "ganssDataBits", "rrlp.ganssDataBits",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOf_GANSSDataBits", HFILL }},
+ { &hf_rrlp_SeqOf_GANSSDataBits_item,
+ { "Item", "rrlp.SeqOf_GANSSDataBits_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.GANSSDataBit", HFILL }},
+ { &hf_rrlp_ganssSignalID1,
+ { "ganssSignalID", "rrlp.ganssSignalID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_3", HFILL }},
+ { &hf_rrlp_ganssRefMeasAssitList,
+ { "ganssRefMeasAssitList", "rrlp.ganssRefMeasAssitList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfGANSSRefMeasurementElement", HFILL }},
+ { &hf_rrlp_SeqOfGANSSRefMeasurementElement_item,
+ { "Item", "rrlp.SeqOfGANSSRefMeasurementElement_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSRefMeasurementElement", HFILL }},
+ { &hf_rrlp_additionalDoppler,
+ { "additionalDoppler", "rrlp.additionalDoppler",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.AdditionalDopplerFields", HFILL }},
+ { &hf_rrlp_intCodePhase1,
+ { "intCodePhase", "rrlp.intCodePhase",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_127", HFILL }},
+ { &hf_rrlp_codePhaseSearchWindow1,
+ { "codePhaseSearchWindow", "rrlp.codePhaseSearchWindow",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_31", HFILL }},
+ { &hf_rrlp_additionalAngle,
+ { "additionalAngle", "rrlp.additionalAngle",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.AddionalAngleFields", HFILL }},
+ { &hf_rrlp_dopplerUncertainty1,
+ { "dopplerUncertainty", "rrlp.dopplerUncertainty",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_4", HFILL }},
+ { &hf_rrlp_weekNumber1,
+ { "weekNumber", "rrlp.weekNumber",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_255", HFILL }},
+ { &hf_rrlp_svIDMask,
+ { "svIDMask", "rrlp.svIDMask",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "rrlp.SVIDMASK", HFILL }},
+ { &hf_rrlp_toa,
+ { "toa", "rrlp.toa",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_255", HFILL }},
+ { &hf_rrlp_ioda,
+ { "ioda", "rrlp.ioda",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_3", HFILL }},
+ { &hf_rrlp_ganssAlmanacList,
+ { "ganssAlmanacList", "rrlp.ganssAlmanacList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfGANSSAlmanacElement", HFILL }},
+ { &hf_rrlp_SeqOfGANSSAlmanacElement_item,
+ { "Item", "rrlp.SeqOfGANSSAlmanacElement_item",
+ FT_UINT32, BASE_DEC, VALS(rrlp_GANSSAlmanacElement_vals), 0,
+ "rrlp.GANSSAlmanacElement", HFILL }},
+ { &hf_rrlp_keplerianAlmanacSet,
+ { "keplerianAlmanacSet", "rrlp.keplerianAlmanacSet",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.Almanac_KeplerianSet", HFILL }},
+ { &hf_rrlp_kepAlmanacE,
+ { "kepAlmanacE", "rrlp.kepAlmanacE",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_2047", HFILL }},
+ { &hf_rrlp_kepAlmanacDeltaI,
+ { "kepAlmanacDeltaI", "rrlp.kepAlmanacDeltaI",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M1024_1023", HFILL }},
+ { &hf_rrlp_kepAlmanacOmegaDot,
+ { "kepAlmanacOmegaDot", "rrlp.kepAlmanacOmegaDot",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M1024_1023", HFILL }},
+ { &hf_rrlp_kepSVHealth,
+ { "kepSVHealth", "rrlp.kepSVHealth",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_15", HFILL }},
+ { &hf_rrlp_kepAlmanacAPowerHalf,
+ { "kepAlmanacAPowerHalf", "rrlp.kepAlmanacAPowerHalf",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M65536_65535", HFILL }},
+ { &hf_rrlp_kepAlmanacOmega0,
+ { "kepAlmanacOmega0", "rrlp.kepAlmanacOmega0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_kepAlmanacW,
+ { "kepAlmanacW", "rrlp.kepAlmanacW",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_kepAlmanacM0,
+ { "kepAlmanacM0", "rrlp.kepAlmanacM0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M32768_32767", HFILL }},
+ { &hf_rrlp_kepAlmanacAF0,
+ { "kepAlmanacAF0", "rrlp.kepAlmanacAF0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M8192_8191", HFILL }},
+ { &hf_rrlp_kepAlmanacAF1,
+ { "kepAlmanacAF1", "rrlp.kepAlmanacAF1",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M1024_1023", HFILL }},
+ { &hf_rrlp_ganssUtcA1,
+ { "ganssUtcA1", "rrlp.ganssUtcA1",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M8388608_8388607", HFILL }},
+ { &hf_rrlp_ganssUtcA0,
+ { "ganssUtcA0", "rrlp.ganssUtcA0",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M2147483648_2147483647", HFILL }},
+ { &hf_rrlp_ganssUtcTot,
+ { "ganssUtcTot", "rrlp.ganssUtcTot",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_255", HFILL }},
+ { &hf_rrlp_ganssUtcWNt,
+ { "ganssUtcWNt", "rrlp.ganssUtcWNt",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_255", HFILL }},
+ { &hf_rrlp_ganssUtcDeltaTls,
+ { "ganssUtcDeltaTls", "rrlp.ganssUtcDeltaTls",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M128_127", HFILL }},
+ { &hf_rrlp_ganssUtcWNlsf,
+ { "ganssUtcWNlsf", "rrlp.ganssUtcWNlsf",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_255", HFILL }},
+ { &hf_rrlp_ganssUtcDN,
+ { "ganssUtcDN", "rrlp.ganssUtcDN",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M128_127", HFILL }},
+ { &hf_rrlp_ganssUtcDeltaTlsf,
+ { "ganssUtcDeltaTlsf", "rrlp.ganssUtcDeltaTlsf",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_M128_127", HFILL }},
+ { &hf_rrlp_velEstimate,
+ { "velEstimate", "rrlp.velEstimate",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "rrlp.VelocityEstimate", HFILL }},
+ { &hf_rrlp_ganssLocationInfo,
+ { "ganssLocationInfo", "rrlp.ganssLocationInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSLocationInfo", HFILL }},
+ { &hf_rrlp_ganssMeasureInfo,
+ { "ganssMeasureInfo", "rrlp.ganssMeasureInfo",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSSMeasureInfo", HFILL }},
+ { &hf_rrlp_referenceFrame,
+ { "referenceFrame", "rrlp.referenceFrame",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.ReferenceFrame", HFILL }},
+ { &hf_rrlp_ganssTODm,
+ { "ganssTODm", "rrlp.ganssTODm",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.GANSSTODm", HFILL }},
+ { &hf_rrlp_ganssTODFrac,
+ { "ganssTODFrac", "rrlp.ganssTODFrac",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_16384", HFILL }},
+ { &hf_rrlp_ganssTimeID1,
+ { "ganssTimeID", "rrlp.ganssTimeID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_3", HFILL }},
+ { &hf_rrlp_posData,
+ { "posData", "rrlp.posData",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "rrlp.PositionData", HFILL }},
+ { &hf_rrlp_stationaryIndication,
+ { "stationaryIndication", "rrlp.stationaryIndication",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_1", HFILL }},
+ { &hf_rrlp_referenceFN,
+ { "referenceFN", "rrlp.referenceFN",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_65535", HFILL }},
+ { &hf_rrlp_referenceFNMSB,
+ { "referenceFNMSB", "rrlp.referenceFNMSB",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_63", HFILL }},
+ { &hf_rrlp_ganssMsrSetList,
+ { "ganssMsrSetList", "rrlp.ganssMsrSetList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfGANSS_MsrSetElement", HFILL }},
+ { &hf_rrlp_SeqOfGANSS_MsrSetElement_item,
+ { "Item", "rrlp.SeqOfGANSS_MsrSetElement_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSS_MsrSetElement", HFILL }},
+ { &hf_rrlp_deltaGNASSTOD,
+ { "deltaGNASSTOD", "rrlp.deltaGNASSTOD",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_127", HFILL }},
+ { &hf_rrlp_ganss_SgnTypeList,
+ { "ganss-SgnTypeList", "rrlp.ganss_SgnTypeList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfGANSS_SgnTypeElement", HFILL }},
+ { &hf_rrlp_SeqOfGANSS_SgnTypeElement_item,
+ { "Item", "rrlp.SeqOfGANSS_SgnTypeElement_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSS_SgnTypeElement", HFILL }},
+ { &hf_rrlp_ganssSignalID2,
+ { "ganssSignalID", "rrlp.ganssSignalID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_15", HFILL }},
+ { &hf_rrlp_ganss_SgnList,
+ { "ganss-SgnList", "rrlp.ganss_SgnList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.SeqOfGANSS_SgnElement", HFILL }},
+ { &hf_rrlp_SeqOfGANSS_SgnElement_item,
+ { "Item", "rrlp.SeqOfGANSS_SgnElement_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.GANSS_SgnElement", HFILL }},
+ { &hf_rrlp_mpathDet,
+ { "mpathDet", "rrlp.mpathDet",
+ FT_UINT32, BASE_DEC, VALS(rrlp_MpathIndic_vals), 0,
+ "rrlp.MpathIndic", HFILL }},
+ { &hf_rrlp_carrierQualityInd,
+ { "carrierQualityInd", "rrlp.carrierQualityInd",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_3", HFILL }},
+ { &hf_rrlp_codePhase1,
+ { "codePhase", "rrlp.codePhase",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_2097151", HFILL }},
+ { &hf_rrlp_integerCodePhase,
+ { "integerCodePhase", "rrlp.integerCodePhase",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_63", HFILL }},
+ { &hf_rrlp_codePhaseRMSError,
+ { "codePhaseRMSError", "rrlp.codePhaseRMSError",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_63", HFILL }},
+ { &hf_rrlp_adr,
+ { "adr", "rrlp.adr",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.INTEGER_0_33554431", HFILL }},
+ { &hf_rrlp_privateExtensionList,
+ { "privateExtensionList", "rrlp.privateExtensionList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "rrlp.PrivateExtensionList", HFILL }},
+ { &hf_rrlp_pcs_Extensions,
+ { "pcs-Extensions", "rrlp.pcs_Extensions",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.PCS_Extensions", HFILL }},
+ { &hf_rrlp_slr_Arg_PCS_Extensions,
+ { "slr-Arg-PCS-Extensions", "rrlp.slr_Arg_PCS_Extensions",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.SLR_Arg_PCS_Extensions", HFILL }},
+ { &hf_rrlp_PrivateExtensionList_item,
+ { "Item", "rrlp.PrivateExtensionList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.PrivateExtension", HFILL }},
+ { &hf_rrlp_extId,
+ { "extId", "rrlp.extId",
+ FT_OID, BASE_NONE, NULL, 0,
+ "rrlp.OBJECT_IDENTIFIER", HFILL }},
+ { &hf_rrlp_extType,
+ { "extType", "rrlp.extType",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.T_extType", HFILL }},
+ { &hf_rrlp_na_ESRK_Request,
+ { "na-ESRK-Request", "rrlp.na_ESRK_Request",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "rrlp.NULL", HFILL }},
+ { &hf_rrlp_GANSSPositioningMethod_gps,
+ { "gps", "rrlp.gps",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_rrlp_GANSSPositioningMethod_galileo,
+ { "galileo", "rrlp.galileo",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_rrlp_PositionData_e_otd,
+ { "e-otd", "rrlp.e-otd",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_rrlp_PositionData_gps,
+ { "gps", "rrlp.gps",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_rrlp_PositionData_galileo,
+ { "galileo", "rrlp.galileo",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ "", HFILL }},
/*--- End of included file: packet-rrlp-hfarr.c ---*/
-#line 85 "packet-rrlp-template.c"
+#line 83 "packet-rrlp-template.c"
};
/* List of subtrees */
@@ -4223,9 +6471,70 @@ void proto_register_rrlp(void) {
&ett_rrlp_Rel5_MsrPosition_Req_Extension,
&ett_rrlp_Rel5_AssistanceData_Extension,
&ett_rrlp_Rel_5_ProtocolError_Extension,
+ &ett_rrlp_Rel7_MsrPosition_Req_Extension,
+ &ett_rrlp_GANSSPositioningMethod,
+ &ett_rrlp_GANSS_AssistData,
+ &ett_rrlp_GANSS_ControlHeader,
+ &ett_rrlp_GANSSCommonAssistData,
+ &ett_rrlp_SeqOfGANSSGenericAssistDataElement,
+ &ett_rrlp_GANSSGenericAssistDataElement,
+ &ett_rrlp_GANSSReferenceTime,
+ &ett_rrlp_GANSSRefTimeInfo,
+ &ett_rrlp_GANSSTOD_GSMTimeAssociation,
+ &ett_rrlp_GANSSRefLocation,
+ &ett_rrlp_GANSSIonosphericModel,
+ &ett_rrlp_GANSSIonosphereModel,
+ &ett_rrlp_GANSSIonoStormFlags,
+ &ett_rrlp_SeqOfGANSSTimeModel,
+ &ett_rrlp_GANSSTimeModelElement,
+ &ett_rrlp_GANSSDiffCorrections,
+ &ett_rrlp_SeqOfSgnTypeElement,
+ &ett_rrlp_SgnTypeElement,
+ &ett_rrlp_SeqOfDGANSSSgnElement,
+ &ett_rrlp_DGANSSSgnElement,
+ &ett_rrlp_GANSSNavModel,
+ &ett_rrlp_SeqOfGANSSSatelliteElement,
+ &ett_rrlp_GANSSSatelliteElement,
+ &ett_rrlp_GANSSOrbitModel,
+ &ett_rrlp_NavModel_KeplerianSet,
+ &ett_rrlp_GANSSClockModel,
+ &ett_rrlp_SeqOfStandardClockModelElement,
+ &ett_rrlp_StandardClockModelElement,
+ &ett_rrlp_GANSSRealTimeIntegrity,
+ &ett_rrlp_SeqOfBadSignalElement,
+ &ett_rrlp_BadSignalElement,
+ &ett_rrlp_GANSSDataBitAssist,
+ &ett_rrlp_SeqOf_GANSSDataBits,
+ &ett_rrlp_GANSSRefMeasurementAssist,
+ &ett_rrlp_SeqOfGANSSRefMeasurementElement,
+ &ett_rrlp_GANSSRefMeasurementElement,
+ &ett_rrlp_AdditionalDopplerFields,
+ &ett_rrlp_GANSSAlmanacModel,
+ &ett_rrlp_SeqOfGANSSAlmanacElement,
+ &ett_rrlp_GANSSAlmanacElement,
+ &ett_rrlp_Almanac_KeplerianSet,
+ &ett_rrlp_GANSSUTCModel,
+ &ett_rrlp_Rel_7_MsrPosition_Rsp_Extension,
+ &ett_rrlp_GANSSLocationInfo,
+ &ett_rrlp_PositionData,
+ &ett_rrlp_ReferenceFrame,
+ &ett_rrlp_GANSSMeasureInfo,
+ &ett_rrlp_SeqOfGANSS_MsrSetElement,
+ &ett_rrlp_GANSS_MsrSetElement,
+ &ett_rrlp_SeqOfGANSS_SgnTypeElement,
+ &ett_rrlp_GANSS_SgnTypeElement,
+ &ett_rrlp_SeqOfGANSS_SgnElement,
+ &ett_rrlp_GANSS_SgnElement,
+ &ett_rrlp_Rel7_AssistanceData_Extension,
+ &ett_rrlp_ExtensionContainer,
+ &ett_rrlp_SLR_ArgExtensionContainer,
+ &ett_rrlp_PrivateExtensionList,
+ &ett_rrlp_PrivateExtension,
+ &ett_rrlp_PCS_Extensions,
+ &ett_rrlp_SLR_Arg_PCS_Extensions,
/*--- End of included file: packet-rrlp-ettarr.c ---*/
-#line 91 "packet-rrlp-template.c"
+#line 89 "packet-rrlp-template.c"
};
diff --git a/epan/dissectors/packet-rrlp.h b/epan/dissectors/packet-rrlp.h
deleted file mode 100644
index e619485ebf..0000000000
--- a/epan/dissectors/packet-rrlp.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Do not modify this file. */
-/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
-/* .\packet-rrlp.h */
-/* ../../tools/asn2wrs.py -u -e -p rrlp -c rrlp.cnf -s packet-rrlp-template rrlp.asn */
-
-/* Input file: packet-rrlp-template.h */
-
-#line 1 "packet-rrlp-template.h"
-/* packet-rrlp.h
- * Routines for 3GPP Radio Resource LCS Protocol (RRLP) packet dissection
- * Copyright 2006, Anders Broman <anders.broman@ericsson.com>
- *
- * $Id$
- *
- * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef PACKET_RRLP_H
-#define PACKET_RRLP_H
-
-
-
-/* #include "packet-rrlp-exp.h" */
-
-#endif /* PACKET_RRLP_H */
-
-