aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2019-04-10 15:15:19 +0200
committerAnders Broman <a.broman58@gmail.com>2019-04-10 14:52:52 +0000
commited51e15cfab3432b655eea6d0f1e29866d2d7de9 (patch)
treece64848a238c5e1296717b934376b4149bf8582f
parent7abbbaac3d7a9209e98b763602f3f8188a5ff042 (diff)
LCS-AP: Update to V15.2.0 (2019-03)
Change-Id: I39e9b0871a7d5ce51872bcd44aa3c357ced5d543 Reviewed-on: https://code.wireshark.org/review/32811 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r--epan/dissectors/asn1/lcsap/LCS-AP-CommonDataTypes.asn13
-rw-r--r--epan/dissectors/asn1/lcsap/LCS-AP-Constants.asn81
-rw-r--r--epan/dissectors/asn1/lcsap/LCS-AP-Containers.asn40
-rw-r--r--epan/dissectors/asn1/lcsap/LCS-AP-IEs.asn288
-rw-r--r--epan/dissectors/asn1/lcsap/LCS-AP-PDU-Contents.asn158
-rw-r--r--epan/dissectors/asn1/lcsap/LCS-AP-PDU-Descriptions.asn98
-rw-r--r--epan/dissectors/asn1/lcsap/lcsap.cnf23
-rw-r--r--epan/dissectors/packet-lcsap.c458
8 files changed, 863 insertions, 296 deletions
diff --git a/epan/dissectors/asn1/lcsap/LCS-AP-CommonDataTypes.asn b/epan/dissectors/asn1/lcsap/LCS-AP-CommonDataTypes.asn
index 8fc9cd5dac..1fbcb32d0f 100644
--- a/epan/dissectors/asn1/lcsap/LCS-AP-CommonDataTypes.asn
+++ b/epan/dissectors/asn1/lcsap/LCS-AP-CommonDataTypes.asn
@@ -1,4 +1,4 @@
--- ETSI TS 129 171 V13.2.0 (2016-03)
+-- ETSI TS 129 171 V15.2.0 (2019-03)
-- 7.5.6 Common Definitions
-- **************************************************************
@@ -6,7 +6,7 @@
-- Common definitions
--
-- **************************************************************
-
+
LCS-AP-CommonDataTypes {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) lcs-AP (4) version1 (1) lcs-AP-CommonDataTypes (3)}
@@ -15,17 +15,18 @@ DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-Criticality ::= ENUMERATED { reject, ignore, notify }
+Criticality ::= ENUMERATED { reject, ignore, notify }
-Presence ::= ENUMERATED { optional, conditional, mandatory }
+Presence ::= ENUMERATED { optional, conditional, mandatory }
-ProcedureCode ::= INTEGER (0..255)
+ProcedureCode ::= INTEGER (0..255)
ProtocolExtensionID ::= INTEGER (0..65535)
-ProtocolIE-ID ::= INTEGER (0..65535)
+ProtocolIE-ID ::= INTEGER (0..65535)
TriggeringMessage ::= ENUMERATED {initiating-message, successful-outcome, unsuccessful-outcome, outcome}
END
+
diff --git a/epan/dissectors/asn1/lcsap/LCS-AP-Constants.asn b/epan/dissectors/asn1/lcsap/LCS-AP-Constants.asn
index 84416feb21..59de6bbbad 100644
--- a/epan/dissectors/asn1/lcsap/LCS-AP-Constants.asn
+++ b/epan/dissectors/asn1/lcsap/LCS-AP-Constants.asn
@@ -1,4 +1,4 @@
--- ETSI TS 129 171 V13.2.0 (2016-03)
+-- ETSI TS 129 171 V15.2.0 (2019-03)
-- **************************************************************
--
-- Constant definitions
@@ -20,11 +20,12 @@ BEGIN
-- **************************************************************
-id-Location-Service-Request INTEGER ::= 0
-id-Connection-Oriented-Information-Transfer INTEGER ::= 1
-id-Connectionless-Information-Transfer INTEGER ::= 2
-id-Location-Abort INTEGER ::= 3
-id-Reset INTEGER ::= 4
+id-Location-Service-Request INTEGER ::= 0
+id-Connection-Oriented-Information-Transfer INTEGER ::= 1
+id-Connectionless-Information-Transfer INTEGER ::= 2
+id-Location-Abort INTEGER ::= 3
+id-Reset INTEGER ::= 4
+id-Ciphering-Key-Data INTEGER ::= 5
-- **************************************************************
@@ -35,33 +36,36 @@ id-Reset INTEGER ::= 4
id-Accuracy-Fulfillment-Indicator INTEGER ::= 0
-id-APDU INTEGER ::= 1
-id-Correlation-ID INTEGER ::= 2
-id-Destination-ID INTEGER ::= 3
-id-E-UTRAN-Cell-Identifier INTEGER ::= 4
-id-Include-Velocity INTEGER ::= 5
-id-IMEI INTEGER ::= 6
-id-IMSI INTEGER ::= 7
-id-LCS-Client-Type INTEGER ::= 8
-id-LCS-Priority INTEGER ::= 9
-id-LCS-QOS INTEGER ::= 10
-id-LCS-Cause INTEGER ::= 11
-id-Location-Estimate INTEGER ::= 12
-id-Location-Type INTEGER ::= 13
-id-MultipleAPDUs INTEGER ::= 14
-id-Payload-Type INTEGER ::= 15
-id-Positioning-Data INTEGER ::= 16
-id-Return-Error-Request INTEGER ::= 17
-id-Return-Error-Cause INTEGER ::= 18
-id-Source-Identity INTEGER ::= 19
-id-UE-Positioning-Capability INTEGER ::= 20
-id-Velocity-Estimate INTEGER ::= 21
-id-LCS-Service-Type-ID INTEGER ::= 22
-id-Cell-Portion-ID INTEGER ::= 23
-id-Civic-Address INTEGER ::= 24
-id-Barometric-Pressure INTEGER ::= 25
+id-APDU INTEGER ::= 1
+id-Correlation-ID INTEGER ::= 2
+id-Destination-ID INTEGER ::= 3
+id-E-UTRAN-Cell-Identifier INTEGER ::= 4
+id-Include-Velocity INTEGER ::= 5
+id-IMEI INTEGER ::= 6
+id-IMSI INTEGER ::= 7
+id-LCS-Client-Type INTEGER ::= 8
+id-LCS-Priority INTEGER ::= 9
+id-LCS-QOS INTEGER ::= 10
+id-LCS-Cause INTEGER ::= 11
+id-Location-Estimate INTEGER ::= 12
+id-Location-Type INTEGER ::= 13
+id-MultipleAPDUs INTEGER ::= 14
+id-Payload-Type INTEGER ::= 15
+id-Positioning-Data INTEGER ::= 16
+id-Return-Error-Request INTEGER ::= 17
+id-Return-Error-Cause INTEGER ::= 18
+id-Source-Identity INTEGER ::= 19
+id-UE-Positioning-Capability INTEGER ::= 20
+id-Velocity-Estimate INTEGER ::= 21
+id-LCS-Service-Type-ID INTEGER ::= 22
+id-Cell-Portion-ID INTEGER ::= 23
+id-Civic-Address INTEGER ::= 24
+id-Barometric-Pressure INTEGER ::= 25
id-Additional-PositioningDataSet INTEGER ::= 26
-
+id-RAT-Type INTEGER ::= 27
+id-Ciphering-Data INTEGER ::= 28
+id-Ciphering-Data-Ack INTEGER ::= 29
+id-Ciphering-Data-Error-Report INTEGER ::= 30
@@ -78,13 +82,14 @@ id-Additional-PositioningDataSet INTEGER ::= 26
-- **************************************************************
-max-No-Of-Points INTEGER ::= 15
-max-Set INTEGER ::= 9
-max-GNSS-Set INTEGER ::= 9
-max-Add-Pos-Set INTEGER ::= 8
+max-No-Of-Points INTEGER ::= 15
+max-Set INTEGER ::= 9
+max-GNSS-Set INTEGER ::= 9
+max-Add-Pos-Set INTEGER ::= 8
+max-Cipher-Set INTEGER ::= 16
-maxProtocolExtensions INTEGER ::= 65535
-maxProtocolIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
END
diff --git a/epan/dissectors/asn1/lcsap/LCS-AP-Containers.asn b/epan/dissectors/asn1/lcsap/LCS-AP-Containers.asn
index af9aed6f2f..e9b7e61df0 100644
--- a/epan/dissectors/asn1/lcsap/LCS-AP-Containers.asn
+++ b/epan/dissectors/asn1/lcsap/LCS-AP-Containers.asn
@@ -1,4 +1,4 @@
--- ETSI TS 129 171 V13.2.0 (2016-03)
+-- ETSI TS 129 171 V15.2.0 (2019-03)
--
-- 7.5.8 Container Definitions
-- **************************************************************
@@ -39,16 +39,16 @@ FROM LCS-AP-Constants;
-- **************************************************************
LCS-AP-PROTOCOL-IES ::= CLASS {
- &id ProtocolIE-ID UNIQUE,
- &criticality Criticality DEFAULT ignore,
+ &id ProtocolIE-ID UNIQUE,
+ &criticality Criticality DEFAULT ignore,
&Value,
- &presence Presence
+ &presence Presence
}
WITH SYNTAX {
- ID &id
- CRITICALITY &criticality
- TYPE &Value
- PRESENCE &presence
+ ID &id
+ CRITICALITY &criticality
+ TYPE &Value
+ PRESENCE &presence
}
-- **************************************************************
@@ -58,16 +58,16 @@ WITH SYNTAX {
-- **************************************************************
LCS-AP-PROTOCOL-EXTENSION ::= CLASS {
- &id ProtocolExtensionID UNIQUE,
- &criticality Criticality DEFAULT ignore,
+ &id ProtocolExtensionID UNIQUE,
+ &criticality Criticality DEFAULT ignore,
&Extension,
- &presence Presence
+ &presence Presence
}
WITH SYNTAX {
- ID &id
- CRITICALITY &criticality
- EXTENSION &Extension
- PRESENCE &presence
+ ID &id
+ CRITICALITY &criticality
+ EXTENSION &Extension
+ PRESENCE &presence
}
-- **************************************************************
@@ -81,9 +81,9 @@ ProtocolIE-Container {LCS-AP-PROTOCOL-IES : IEsSetParam} ::=
ProtocolIE-Field {{IEsSetParam}}
ProtocolIE-Field {LCS-AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
- id LCS-AP-PROTOCOL-IES.&id ({IEsSetParam}),
- criticality LCS-AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
- value LCS-AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+ id LCS-AP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality LCS-AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value LCS-AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
}
-- **************************************************************
@@ -107,8 +107,8 @@ ProtocolExtensionContainer {LCS-AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
ProtocolExtensionField {{ExtensionSetParam}}
ProtocolExtensionField {LCS-AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
- id LCS-AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
- criticality LCS-AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ id LCS-AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality LCS-AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
extensionValue LCS-AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
}
diff --git a/epan/dissectors/asn1/lcsap/LCS-AP-IEs.asn b/epan/dissectors/asn1/lcsap/LCS-AP-IEs.asn
index 91752a4eac..8a621513b9 100644
--- a/epan/dissectors/asn1/lcsap/LCS-AP-IEs.asn
+++ b/epan/dissectors/asn1/lcsap/LCS-AP-IEs.asn
@@ -1,4 +1,4 @@
--- ETSI TS 129 171 V13.2.0 (2016-03)
+-- ETSI TS 129 171 V15.2.0 (2019-03)
--
-- 7.5.5 Information element definitions
-- **************************************************************
@@ -7,7 +7,6 @@
--
-- **************************************************************
-
LCS-AP-IEs {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) lcs-AP (4) version1 (1) lcs-AP-IEs (2)}
@@ -21,7 +20,8 @@ IMPORTS
max-No-Of-Points,
max-Set,
max-GNSS-Set,
- max-Add-Pos-Set
+ max-Add-Pos-Set,
+ max-Cipher-Set
FROM LCS-AP-Constants
Criticality,
@@ -38,7 +38,7 @@ FROM LCS-AP-Containers;
-- A
-APDU ::= OCTET STRING
+APDU ::= OCTET STRING
Accuracy-Fulfillment-Indicator ::= ENUMERATED {
requested-accuracy-fulfilled,
@@ -57,7 +57,7 @@ Altitude ::= INTEGER (0..65535)
Altitude-And-Direction ::= SEQUENCE {
direction-Of-Altitude Direction-Of-Altitude,
- altitude Altitude,
+ altitude Altitude,
...
}
@@ -73,20 +73,49 @@ Bearing ::= INTEGER (0..359)
-- C
-CellIdentity ::= BIT STRING (SIZE (28))
+C0 ::= BIT STRING (SIZE (1..128))
+
+CellIdentity ::= BIT STRING (SIZE (28))
+
+Cell-Portion-ID ::= INTEGER (0..255,..., 256..4095)
-Cell-Portion-ID ::= INTEGER (0..255,...)
+Ciphering-Data ::= SEQUENCE(SIZE(1..max-Cipher-Set)) OF Ciphering-Data-Set
-Civic-Address ::= OCTET STRING
+Ciphering-Data-Ack ::= SEQUENCE(SIZE(1..max-Cipher-Set)) OF Ciphering-Set-ID
-Confidence ::= INTEGER (0..100)
+Ciphering-Data-Error-Report ::= SEQUENCE(SIZE(1..max-Cipher-Set)) OF Ciphering-Data-Error-Report-Contents
+
+Ciphering-Data-Set ::= SEQUENCE {
+ ciphering-Set-ID Ciphering-Set-ID,
+ ciphering-Key Ciphering-Key,
+ c0 C0,
+ sib-Types SIB-Types,
+ validity-Start-Time Validity-Start-Time,
+ validity-Duration Validity-Duration,
+ tais-List TAIs-List,
+ ...
+ }
+
+Ciphering-Data-Error-Report-Contents ::= SEQUENCE {
+ ciphering-Set-ID Ciphering-Set-ID,
+ storage-Outcome Storage-Outcome,
+ ...
+ }
-Correlation-ID ::= OCTET STRING (SIZE (4))
+Ciphering-Set-ID ::= INTEGER (0..65535)
+
+Ciphering-Key ::= OCTET STRING (SIZE (16))
+
+Civic-Address ::= OCTET STRING
+
+Confidence ::= INTEGER (0..100)
+
+Correlation-ID ::= OCTET STRING (SIZE (4))
-- D
-DegreesLatitude ::= INTEGER (0..8388607) -- 23 bit field
+DegreesLatitude ::= INTEGER (0..8388607) -- 23 bit field
DegreesLongitude ::= INTEGER (-8388608..8388607) -- 24 bit field
@@ -97,22 +126,27 @@ Direction-Of-Altitude ::= ENUMERATED {
-- E
-E-CGI ::= SEQUENCE {
- pLMNidentity PLMN-ID,
- cell-ID CellIdentity,
- iE-Extensions ProtocolExtensionContainer { { E-CGI-ExtIEs} } OPTIONAL,
+E-CGI ::= SEQUENCE {
+ pLMNidentity PLMN-ID,
+ cell-ID CellIdentity,
+ iE-Extensions ProtocolExtensionContainer { { E-CGI-ExtIEs} } OPTIONAL,
...}
E-CGI-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
...
}
+Coverage-Level ::= ENUMERATED {
+ extendedcoverage,
+ ...
+}
+
Ellipsoid-Point-With-Uncertainty-Ellipse ::= SEQUENCE {
geographical-Coordinates Geographical-Coordinates,
- uncertainty-Ellipse Uncertainty-Ellipse,
- confidence Confidence,
- iE-Extensions ProtocolExtensionContainer { { Ellipsoid-Point-With-Uncertainty-Ellipse-ExtIEs} } OPTIONAL,
+ uncertainty-Ellipse Uncertainty-Ellipse,
+ confidence Confidence,
+ iE-Extensions ProtocolExtensionContainer { { Ellipsoid-Point-With-Uncertainty-Ellipse-ExtIEs} } OPTIONAL,
...}
Ellipsoid-Point-With-Uncertainty-Ellipse-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
@@ -122,8 +156,8 @@ Ellipsoid-Point-With-Uncertainty-Ellipse-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
Ellipsoid-Point-With-Altitude ::= SEQUENCE {
geographical-Coordinates Geographical-Coordinates,
- altitude-And-Direction Altitude-And-Direction,
- iE-Extensions ProtocolExtensionContainer { { Ellipsoid-Point-With-Altitude-ExtIEs} } OPTIONAL,
+ altitude-And-Direction Altitude-And-Direction,
+ iE-Extensions ProtocolExtensionContainer { { Ellipsoid-Point-With-Altitude-ExtIEs} } OPTIONAL,
...}
Ellipsoid-Point-With-Altitude-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
@@ -133,11 +167,11 @@ Ellipsoid-Point-With-Altitude-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
Ellipsoid-Point-With-Altitude-And-Uncertainty-Ellipsoid ::= SEQUENCE {
geographical-Coordinates Geographical-Coordinates,
- altitude-And-Direction Altitude-And-Direction,
- uncertainty-Ellipse Uncertainty-Ellipse,
- uncertainty-Altitude Uncertainty-Altitude,
- confidence Confidence,
- iE-Extensions ProtocolExtensionContainer { { Ellipsoid-Point-With-Altitude-And-Uncertainty-Ellipsoid-ExtIEs} } OPTIONAL,
+ altitude-And-Direction Altitude-And-Direction,
+ uncertainty-Ellipse Uncertainty-Ellipse,
+ uncertainty-Altitude Uncertainty-Altitude,
+ confidence Confidence,
+ iE-Extensions ProtocolExtensionContainer { { Ellipsoid-Point-With-Altitude-And-Uncertainty-Ellipsoid-ExtIEs} } OPTIONAL,
...}
Ellipsoid-Point-With-Altitude-And-Uncertainty-Ellipsoid-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
@@ -145,14 +179,14 @@ Ellipsoid-Point-With-Altitude-And-Uncertainty-Ellipsoid-ExtIEs LCS-AP-PROTOCOL-E
}
-Ellipsoid-Arc ::= SEQUENCE {
+Ellipsoid-Arc ::= SEQUENCE {
geographical-Coordinates Geographical-Coordinates,
- inner-Radius Inner-Radius,
- uncertainty-Radius Uncertainty-Code,
- offset-Angle Angle,
- included-Angle Angle,
- confidence Confidence,
- iE-Extensions ProtocolExtensionContainer { { Ellipsoid-Arc-ExtIEs} } OPTIONAL,
+ inner-Radius Inner-Radius,
+ uncertainty-Radius Uncertainty-Code,
+ offset-Angle Angle,
+ included-Angle Angle,
+ confidence Confidence,
+ iE-Extensions ProtocolExtensionContainer { { Ellipsoid-Arc-ExtIEs} } OPTIONAL,
...
}
@@ -161,10 +195,12 @@ Ellipsoid-Arc-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
}
-ENB-ID ::= CHOICE {
- macro-eNB-ID Macro-eNB-ID,
- home-eNB-ID Home-eNB-ID,
- ...
+ENB-ID ::= CHOICE {
+ macro-eNB-ID Macro-eNB-ID,
+ home-eNB-ID Home-eNB-ID,
+ ...,
+ short-macro-eNB-ID Short-Macro-eNB-ID,
+ long-macro-eNB-ID Long-Macro-eNB-ID
}
@@ -175,22 +211,22 @@ E-SMLC-ID ::= INTEGER (0..255)
-- F
-- G
-Geographical-Area ::= CHOICE {
- point Point,
- point-With-Uncertainty Point-With-Uncertainty,
- ellipsoidPoint-With-Uncertainty-Ellipse Ellipsoid-Point-With-Uncertainty-Ellipse,
- polygon Polygon,
- ellipsoid-Point-With-Altitude Ellipsoid-Point-With-Altitude,
+Geographical-Area ::= CHOICE {
+ point Point,
+ point-With-Uncertainty Point-With-Uncertainty,
+ ellipsoidPoint-With-Uncertainty-Ellipse Ellipsoid-Point-With-Uncertainty-Ellipse,
+ polygon Polygon,
+ ellipsoid-Point-With-Altitude Ellipsoid-Point-With-Altitude,
ellipsoid-Point-With-Altitude-And-Uncertainty-Ellipsoid Ellipsoid-Point-With-Altitude-And-Uncertainty-Ellipsoid,
- ellipsoid-Arc Ellipsoid-Arc,
+ ellipsoid-Arc Ellipsoid-Arc,
...
}
Geographical-Coordinates ::= SEQUENCE {
- latitudeSign LatitudeSign,
- degreesLatitude DegreesLatitude,
- degreesLongitude DegreesLongitude,
- iE-Extensions ProtocolExtensionContainer { {Geographical-Coordinates-ExtIEs} } OPTIONAL,
+ latitudeSign LatitudeSign,
+ degreesLatitude DegreesLatitude,
+ degreesLongitude DegreesLongitude,
+ iE-Extensions ProtocolExtensionContainer { {Geographical-Coordinates-ExtIEs} } OPTIONAL,
...
}
@@ -200,8 +236,8 @@ Geographical-Coordinates-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
Global-eNB-ID ::= SEQUENCE {
- pLMN-ID PLMN-ID,
- eNB-ID ENB-ID
+ pLMN-ID PLMN-ID,
+ eNB-ID ENB-ID
}
@@ -219,14 +255,14 @@ Horizontal-Accuracy ::= INTEGER (0..127)
Horizontal-Speed-And-Bearing ::= SEQUENCE {
- bearing INTEGER (0..359),
- horizontal-Speed INTEGER (0..2047)
+ bearing INTEGER (0..359),
+ horizontal-Speed INTEGER (0..2047)
}
Horizontal-Velocity ::= SEQUENCE {
- horizontal-Speed-And-Bearing Horizontal-Speed-And-Bearing,
- iE-Extensions ProtocolExtensionContainer { { Horizontal-Velocity-ExtIEs} } OPTIONAL,
+ horizontal-Speed-And-Bearing Horizontal-Speed-And-Bearing,
+ iE-Extensions ProtocolExtensionContainer { { Horizontal-Velocity-ExtIEs} } OPTIONAL,
...
}
@@ -234,10 +270,10 @@ Horizontal-Velocity-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
...
}
-Horizontal-With-Vertical-Velocity ::= SEQUENCE {
+Horizontal-With-Vertical-Velocity ::= SEQUENCE {
horizontal-Speed-And-Bearing Horizontal-Speed-And-Bearing,
- vertical-Velocity Vertical-Velocity,
- iE-Extensions ProtocolExtensionContainer { { Horizontal-With-Vertical-Velocity-ExtIEs} } OPTIONAL,
+ vertical-Velocity Vertical-Velocity,
+ iE-Extensions ProtocolExtensionContainer { { Horizontal-With-Vertical-Velocity-ExtIEs} } OPTIONAL,
...
}
@@ -245,10 +281,10 @@ Horizontal-With-Vertical-Velocity-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
...
}
-Horizontal-Velocity-With-Uncertainty ::= SEQUENCE {
- horizontal-Speed-And-Bearing Horizontal-Speed-And-Bearing,
- uncertainty-Speed INTEGER (0..255),
- iE-Extensions ProtocolExtensionContainer { { Horizontal-Velocity-With-Uncertainty-ExtIEs} } OPTIONAL,
+Horizontal-Velocity-With-Uncertainty ::= SEQUENCE {
+ horizontal-Speed-And-Bearing Horizontal-Speed-And-Bearing,
+ uncertainty-Speed INTEGER (0..255),
+ iE-Extensions ProtocolExtensionContainer { { Horizontal-Velocity-With-Uncertainty-ExtIEs} } OPTIONAL,
...
}
@@ -258,10 +294,10 @@ Horizontal-Velocity-With-Uncertainty-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
Horizontal-With-Vertical-Velocity-And-Uncertainty ::= SEQUENCE {
horizontal-Speed-And-Bearing Horizontal-Speed-And-Bearing,
- vertical-Velocity Vertical-Velocity,
+ vertical-Velocity Vertical-Velocity,
horizontal-Uncertainty-Speed INTEGER (0..255),
- vertical-Uncertainty-Speed INTEGER (0..255),
- iE-Extensions ProtocolExtensionContainer { { Horizontal-With-Vertical-Velocity-And-Uncertainty-ExtIEs} } OPTIONAL,
+ vertical-Uncertainty-Speed INTEGER (0..255),
+ iE-Extensions ProtocolExtensionContainer { { Horizontal-With-Vertical-Velocity-And-Uncertainty-ExtIEs} } OPTIONAL,
...
}
@@ -272,9 +308,9 @@ Horizontal-With-Vertical-Velocity-And-Uncertainty-ExtIEs LCS-AP-PROTOCOL-EXTENSI
-- I
-IMSI ::= OCTET STRING (SIZE (3..8))
+IMSI ::= OCTET STRING (SIZE (3..8))
-IMEI ::= OCTET STRING (SIZE (8))
+IMEI ::= OCTET STRING (SIZE (8))
Include-Velocity ::= ENUMERATED {
@@ -284,34 +320,35 @@ Include-Velocity ::= ENUMERATED {
}
-Inner-Radius ::= INTEGER (0..65535) -- 16 bit field
+Inner-Radius ::= INTEGER (0..65535) -- 16 bit field
-- J
-- K
-- L
-LatitudeSign ::= ENUMERATED {
+LatitudeSign ::= ENUMERATED {
north,
south
}
-Location-Type ::= ENUMERATED {
+Location-Type ::= ENUMERATED {
geographic-Information,
assistance-Information,
- ...
+ ...,
+ last-known-location
}
-LCS-Cause ::= CHOICE {
+LCS-Cause ::= CHOICE {
radio-Network-Layer Radio-Network-Layer-Cause,
-transport-Layer Transport-Layer-Cause,
-protocol Protocol-Cause,
-misc Misc-Cause
+transport-Layer Transport-Layer-Cause,
+protocol Protocol-Cause,
+misc Misc-Cause
}
-LCS-Client-Type ::= ENUMERATED {
+LCS-Client-Type ::= ENUMERATED {
emergency-Services,
value-Added-Services,
pLMN-Operator-Services,
@@ -324,19 +361,20 @@ LCS-Client-Type ::= ENUMERATED {
}
-LCS-Priority ::= OCTET STRING (SIZE (1))
+LCS-Priority ::= OCTET STRING (SIZE (1))
-LCS-QoS ::= SEQUENCE {
- horizontal-Accuracy Horizontal-Accuracy OPTIONAL,
- vertical-Requested Vertical-Requested OPTIONAL,
- vertical-Accuracy Vertical-Accuracy OPTIONAL,
- response-Time Response-Time OPTIONAL,
+LCS-QoS ::= SEQUENCE {
+ horizontal-Accuracy Horizontal-Accuracy OPTIONAL,
+ vertical-Requested Vertical-Requested OPTIONAL,
+ vertical-Accuracy Vertical-Accuracy OPTIONAL,
+ response-Time Response-Time OPTIONAL,
...
}
LCS-Service-Type-ID ::= INTEGER (0..127)
+Long-Macro-eNB-ID ::= BIT STRING (SIZE (21))
-- M
@@ -344,10 +382,11 @@ Macro-eNB-ID ::= BIT STRING (SIZE (20))
Message-Identifier ::= BIT STRING (SIZE (16))
-Misc-Cause ::= ENUMERATED {
+Misc-Cause ::= ENUMERATED {
processing-Overload,
hardware-Failure,
o-And-M-Intervention,
+ ciphering-key-data-lost,
unspecified,
...
}
@@ -357,9 +396,9 @@ MultipleAPDUs ::= SEQUENCE (SIZE (1.. 3)) OF APDU
-- N
-Network-Element ::= CHOICE {
-global-eNB-ID Global-eNB-ID,
-e-SMLC-ID E-SMLC-ID
+Network-Element ::= CHOICE {
+global-eNB-ID Global-eNB-ID,
+e-SMLC-ID E-SMLC-ID
}
-- O
@@ -376,9 +415,9 @@ lPPa,
PLMN-ID ::= TBCD-STRING
-Point ::= SEQUENCE {
+Point ::= SEQUENCE {
geographical-Coordinates Geographical-Coordinates,
- iE-Extensions ProtocolExtensionContainer { {Point-ExtIEs} } OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Point-ExtIEs} } OPTIONAL,
...
}
@@ -387,10 +426,10 @@ Point-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
}
-Point-With-Uncertainty ::= SEQUENCE {
+Point-With-Uncertainty ::= SEQUENCE {
geographical-Coordinates Geographical-Coordinates,
- uncertainty-Code Uncertainty-Code,
- iE-Extensions ProtocolExtensionContainer { {Point-With-Uncertainty-ExtIEs} } OPTIONAL,
+ uncertainty-Code Uncertainty-Code,
+ iE-Extensions ProtocolExtensionContainer { {Point-With-Uncertainty-ExtIEs} } OPTIONAL,
...}
Point-With-Uncertainty-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
@@ -401,9 +440,9 @@ Polygon ::= SEQUENCE (SIZE (1..max-No-Of-Points)) OF Polygon-Point
Polygon-Point ::= SEQUENCE {
- geographical-Coordinates Geographical-Coordinates,
- iE-Extensions ProtocolExtensionContainer { {Polygon-Point-ExtIEs} } OPTIONAL,
- ...
+ geographical-Coordinates Geographical-Coordinates,
+ iE-Extensions ProtocolExtensionContainer { {Polygon-Point-ExtIEs} } OPTIONAL,
+ ...
}
Polygon-Point-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
@@ -411,15 +450,15 @@ Polygon-Point-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
}
-Positioning-Data ::= SEQUENCE {
- positioning-Data-Set Positioning-Data-Set OPTIONAL,
+Positioning-Data ::= SEQUENCE {
+ positioning-Data-Set Positioning-Data-Set OPTIONAL,
gNSS-Positioning-Data-Set GNSS-Positioning-Data-Set OPTIONAL,
- iE-Extensions ProtocolExtensionContainer { { Positioning-Data-ExtIEs} } OPTIONAL,
- ...
+ iE-Extensions ProtocolExtensionContainer { { Positioning-Data-ExtIEs} } OPTIONAL,
+ ...
}
Positioning-Data-ExtIEs LCS-AP-PROTOCOL-EXTENSION ::= {
- { ID id-Additional-PositioningDataSet CRITICALITY ignore EXTENSION Additional-PositioningDataSet PRESENCE optional },
+ { ID id-Additional-PositioningDataSet CRITICALITY ignore EXTENSION Additional-PositioningDataSet PRESENCE optional },
...
}
@@ -427,7 +466,7 @@ Positioning-Data-Set ::= SEQUENCE (SIZE (1..max-Set)) OF Positioning-Method-And
Positioning-Method-And-Usage ::= OCTET STRING (SIZE (1))
-Protocol-Cause ::= ENUMERATED {
+Protocol-Cause ::= ENUMERATED {
transfer-Syntax-Error,
abstract-Syntax-Error-Reject,
abstract-Syntax-Error-Ignore-And-Notify,
@@ -441,12 +480,19 @@ abstract-Syntax-Error,
-- Q
-- R
-Radio-Network-Layer-Cause ::= ENUMERATED {
+Radio-Network-Layer-Cause ::= ENUMERATED {
unspecified,
...
}
-Response-Time ::= ENUMERATED {
+RAT-Type ::= ENUMERATED {
+ lte-wb,
+ nb-iot,
+ ...,
+ lte-m
+}
+
+Response-Time ::= ENUMERATED {
low-Delay(0),
delay-Tolerant(1),
...
@@ -467,11 +513,23 @@ congestion,
}
-- S
+
+Short-Macro-eNB-ID ::= BIT STRING (SIZE (18))
+
+SIB-Types ::= OCTET STRING (SIZE (4))
+
+Storage-Outcome ::= ENUMERATED {
+successful,
+failed
+}
+
-- T
+TAIs-List ::= OCTET STRING (SIZE (7..97))
+
TBCD-STRING ::= OCTET STRING (SIZE (3))
-Transport-Layer-Cause ::= ENUMERATED {
+Transport-Layer-Cause ::= ENUMERATED {
tranport-Resource-Unavailable,
unspecified,
...
@@ -483,28 +541,32 @@ Uncertainty-Altitude ::= INTEGER (0..127)
Uncertainty-Code ::= INTEGER (0..127)
-Uncertainty-Ellipse ::= SEQUENCE {
- uncertainty-SemiMajor Uncertainty-Code,
- uncertainty-SemiMinor Uncertainty-Code,
- orientation-Major-Axis Orientation-Major-Axis
+Uncertainty-Ellipse ::= SEQUENCE {
+ uncertainty-SemiMajor Uncertainty-Code,
+ uncertainty-SemiMinor Uncertainty-Code,
+ orientation-Major-Axis Orientation-Major-Axis
}
-UE-Positioning-Capability ::= SEQUENCE {
- lPP BOOLEAN,
+UE-Positioning-Capability ::= SEQUENCE {
+ lPP BOOLEAN,
...
}
-- V
+Validity-Duration ::= INTEGER (0..65535)
+
+Validity-Start-Time ::= OCTET STRING (SIZE (4))
+
Velocity-Estimate ::= CHOICE {
- horizontal-Velocity Horizontal-Velocity,
- horizontal-With-Vertical-Velocity Horizontal-With-Vertical-Velocity,
- horizontal-Velocity-With-Uncertainty Horizontal-Velocity-With-Uncertainty,
+ horizontal-Velocity Horizontal-Velocity,
+ horizontal-With-Vertical-Velocity Horizontal-With-Vertical-Velocity,
+ horizontal-Velocity-With-Uncertainty Horizontal-Velocity-With-Uncertainty,
horizontal-With-Vertical-Velocity-And-Uncertainty Horizontal-With-Vertical-Velocity-And-Uncertainty,
...
}
-Vertical-Requested ::= ENUMERATED {
+Vertical-Requested ::= ENUMERATED {
vertical-coordinate-Is-Not-Requested(0),
vertical-coordinate-Is-Requested(1)
}
@@ -512,8 +574,8 @@ Vertical-Requested ::= ENUMERATED {
Vertical-Accuracy ::= INTEGER (0..127)
Vertical-Velocity ::= SEQUENCE {
- vertical-Speed INTEGER (0..255),
- vertical-Speed-Direction Vertical-Speed-Direction
+ vertical-Speed INTEGER (0..255),
+ vertical-Speed-Direction Vertical-Speed-Direction
}
Vertical-Speed-Direction ::= ENUMERATED {
diff --git a/epan/dissectors/asn1/lcsap/LCS-AP-PDU-Contents.asn b/epan/dissectors/asn1/lcsap/LCS-AP-PDU-Contents.asn
index 9fdccfb360..b6765b154f 100644
--- a/epan/dissectors/asn1/lcsap/LCS-AP-PDU-Contents.asn
+++ b/epan/dissectors/asn1/lcsap/LCS-AP-PDU-Contents.asn
@@ -1,4 +1,4 @@
--- ETSI TS 129 171 V13.2.0 (2016-03)
+-- ETSI TS 129 171 V15.2.0 (2019-03)
--
-- 7.5.4 PDU definitions
-- **************************************************************
@@ -27,15 +27,19 @@ IMPORTS
Accuracy-Fulfillment-Indicator,
Barometric-Pressure,
Cell-Portion-ID,
+ Ciphering-Data,
+ Ciphering-Data-Ack,
+ Ciphering-Data-Error-Report,
Civic-Address,
Correlation-ID,
+ Coverage-Level,
E-CGI,
Geographical-Area,
IMSI,
IMEI,
Include-Velocity,
LCS-Cause,
- LCS-Client-Type,
+ LCS-Client-Type,
LCS-Service-Type-ID,
LCS-Priority,
LCS-QoS,
@@ -44,6 +48,7 @@ IMPORTS
Network-Element,
Payload-Type,
Positioning-Data,
+ RAT-Type,
Return-Error-Type,
Return-Error-Cause,
UE-Positioning-Capability,
@@ -60,8 +65,12 @@ FROM LCS-AP-Containers
id-APDU,
id-Barometric-Pressure,
id-Cell-Portion-ID,
+ id-Ciphering-Data,
+ id-Ciphering-Data-Ack,
+ id-Ciphering-Data-Error-Report,
id-Civic-Address,
id-Correlation-ID,
+ id-Coverage-Level,
id-Destination-ID,
id-E-UTRAN-Cell-Identifier,
id-Include-Velocity,
@@ -70,13 +79,14 @@ FROM LCS-AP-Containers
id-LCS-Client-Type,
id-LCS-Priority,
id-LCS-QOS,
- id-LCS-Cause,
+ id-LCS-Cause,
id-LCS-Service-Type-ID,
id-Location-Estimate,
id-Location-Type,
id-MultipleAPDUs,
id-Payload-Type,
id-Positioning-Data,
+ id-RAT-Type,
id-Return-Error-Request,
id-Return-Error-Cause,
id-Source-Identity,
@@ -92,28 +102,30 @@ FROM LCS-AP-Constants;
-- **************************************************************
Location-Request ::= SEQUENCE {
- protocolIEs ProtocolIE-Container { { Location-Request-IEs} },
- protocolExtensions ProtocolExtensionContainer { { Location-Request-Extensions} } OPTIONAL,
+ protocolIEs ProtocolIE-Container { { Location-Request-IEs} },
+ protocolExtensions ProtocolExtensionContainer { { Location-Request-Extensions} } OPTIONAL,
...
}
Location-Request-IEs LCS-AP-PROTOCOL-IES ::= {
- { ID id-Correlation-ID CRITICALITY reject TYPE Correlation-ID PRESENCE mandatory } |
- { ID id-Location-Type CRITICALITY reject TYPE Location-Type PRESENCE mandatory } |
- { ID id-E-UTRAN-Cell-Identifier CRITICALITY ignore TYPE E-CGI PRESENCE mandatory } |
- { ID id-LCS-Client-Type CRITICALITY reject TYPE LCS-Client-Type PRESENCE optional } |
- { ID id-LCS-Priority CRITICALITY reject TYPE LCS-Priority PRESENCE optional } |
- { ID id-LCS-QOS CRITICALITY reject TYPE LCS-QoS PRESENCE optional } |
+ { ID id-Correlation-ID CRITICALITY reject TYPE Correlation-ID PRESENCE mandatory } |
+ { ID id-Location-Type CRITICALITY reject TYPE Location-Type PRESENCE mandatory } |
+ { ID id-E-UTRAN-Cell-Identifier CRITICALITY ignore TYPE E-CGI PRESENCE mandatory } |
+ { ID id-LCS-Client-Type CRITICALITY reject TYPE LCS-Client-Type PRESENCE optional } |
+ { ID id-LCS-Priority CRITICALITY reject TYPE LCS-Priority PRESENCE optional } |
+ { ID id-LCS-QOS CRITICALITY reject TYPE LCS-QoS PRESENCE optional } |
{ ID id-UE-Positioning-Capability CRITICALITY reject TYPE UE-Positioning-Capability PRESENCE optional } |
- { ID id-Include-Velocity CRITICALITY reject TYPE Include-Velocity PRESENCE optional } |
- { ID id-IMSI CRITICALITY ignore TYPE IMSI PRESENCE optional } |
- { ID id-IMEI CRITICALITY ignore TYPE IMEI PRESENCE optional } |
- { ID id-MultipleAPDUs CRITICALITY reject TYPE MultipleAPDUs PRESENCE optional } ,
+ { ID id-Include-Velocity CRITICALITY reject TYPE Include-Velocity PRESENCE optional } |
+ { ID id-IMSI CRITICALITY ignore TYPE IMSI PRESENCE optional } |
+ { ID id-IMEI CRITICALITY ignore TYPE IMEI PRESENCE optional } |
+ { ID id-MultipleAPDUs CRITICALITY reject TYPE MultipleAPDUs PRESENCE optional } |
+ { ID id-RAT-Type CRITICALITY ignore TYPE RAT-Type PRESENCE optional } |
+ { ID id-Coverage-Level CRITICALITY ignore TYPE Coverage-Level PRESENCE optional},
...
}
Location-Request-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
- { ID id-LCS-Service-Type-ID CRITICALITY ignore EXTENSION LCS-Service-Type-ID PRESENCE optional },
+ { ID id-LCS-Service-Type-ID CRITICALITY ignore EXTENSION LCS-Service-Type-ID PRESENCE optional },
...
}
@@ -125,27 +137,28 @@ Location-Request-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
-- **************************************************************
Location-Response ::= SEQUENCE {
- protocolIEs ProtocolIE-Container { {Location-Response-IEs} },
- protocolExtensions ProtocolExtensionContainer { {Location-Response-Extensions} } OPTIONAL,
+ protocolIEs ProtocolIE-Container { {Location-Response-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {Location-Response-Extensions} } OPTIONAL,
...
}
Location-Response-IEs LCS-AP-PROTOCOL-IES ::= {
- { ID id-Correlation-ID CRITICALITY reject TYPE Correlation-ID PRESENCE mandatory } |
- { ID id-Location-Estimate CRITICALITY reject TYPE Geographical-Area PRESENCE optional } |
- { ID id-Positioning-Data CRITICALITY reject TYPE Positioning-Data PRESENCE optional } |
- { ID id-Velocity-Estimate CRITICALITY reject TYPE Velocity-Estimate PRESENCE optional } |
+ { ID id-Correlation-ID CRITICALITY reject TYPE Correlation-ID PRESENCE mandatory } |
+ { ID id-Location-Estimate CRITICALITY reject TYPE Geographical-Area PRESENCE optional } |
+ { ID id-Positioning-Data CRITICALITY reject TYPE Positioning-Data PRESENCE optional } |
+ { ID id-Velocity-Estimate CRITICALITY reject TYPE Velocity-Estimate PRESENCE optional } |
{ ID id-Accuracy-Fulfillment-Indicator CRITICALITY reject TYPE Accuracy-Fulfillment-Indicator PRESENCE optional } |
- { ID id-LCS-Cause CRITICALITY ignore TYPE LCS-Cause PRESENCE optional } ,
+ { ID id-LCS-Cause CRITICALITY ignore TYPE LCS-Cause PRESENCE optional } ,
...
}
Location-Response-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
-{ ID id-E-UTRAN-Cell-Identifier CRITICALITY ignore EXTENSION E-CGI PRESENCE optional },
-{ ID id-Cell-Portion-ID CRITICALITY ignore EXTENSION Cell-Portion-ID PRESENCE optional } |
-{ ID id-Civic-Address CRITICALITY ignore EXTENSION Civic-Address PRESENCE optional } |
-{ ID id-Barometric-Pressure CRITICALITY ignore EXTENSION Barometric-Pressure PRESENCE optional },
+{ ID id-E-UTRAN-Cell-Identifier CRITICALITY ignore EXTENSION E-CGI PRESENCE optional } |
+{ ID id-Cell-Portion-ID CRITICALITY ignore EXTENSION Cell-Portion-ID PRESENCE optional } |
+{ ID id-Civic-Address CRITICALITY ignore EXTENSION Civic-Address PRESENCE optional } |
+{ ID id-Barometric-Pressure CRITICALITY ignore EXTENSION Barometric-Pressure PRESENCE optional } |
+{ ID id-Coverage-Level CRITICALITY ignore EXTENSION Coverage-Level PRESENCE optional},
...
}
@@ -156,14 +169,14 @@ Location-Response-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
-- **************************************************************
Location-Abort-Request ::= SEQUENCE {
- protocolIEs ProtocolIE-Container { {Location-Abort-Request-IEs} },
- protocolExtensions ProtocolExtensionContainer { {Location-Abort-Request-Extensions} } OPTIONAL,
+ protocolIEs ProtocolIE-Container { {Location-Abort-Request-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {Location-Abort-Request-Extensions} } OPTIONAL,
...
}
Location-Abort-Request-IEs LCS-AP-PROTOCOL-IES ::= {
- { ID id-Correlation-ID CRITICALITY reject TYPE Correlation-ID PRESENCE mandatory } |
- { ID id-LCS-Cause CRITICALITY ignore TYPE LCS-Cause PRESENCE mandatory } ,
+ { ID id-Correlation-ID CRITICALITY reject TYPE Correlation-ID PRESENCE mandatory } |
+ { ID id-LCS-Cause CRITICALITY ignore TYPE LCS-Cause PRESENCE mandatory } ,
...
}
@@ -178,15 +191,15 @@ Location-Abort-Request-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
-- **************************************************************
Connection-Oriented-Information ::= SEQUENCE {
- protocolIEs ProtocolIE-Container { {Connection-Oriented-Information-IEs} },
- protocolExtensions ProtocolExtensionContainer { {Connection-Oriented-Information-Extensions} } OPTIONAL,
+ protocolIEs ProtocolIE-Container { {Connection-Oriented-Information-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {Connection-Oriented-Information-Extensions} } OPTIONAL,
...
}
Connection-Oriented-Information-IEs LCS-AP-PROTOCOL-IES ::= {
- { ID id-Correlation-ID CRITICALITY reject TYPE Correlation-ID PRESENCE optional } |
- { ID id-Payload-Type CRITICALITY reject TYPE Payload-Type PRESENCE optional } |
- { ID id-APDU CRITICALITY reject TYPE APDU PRESENCE optional } ,
+ { ID id-Correlation-ID CRITICALITY reject TYPE Correlation-ID PRESENCE optional } |
+ { ID id-Payload-Type CRITICALITY reject TYPE Payload-Type PRESENCE optional } |
+ { ID id-APDU CRITICALITY reject TYPE APDU PRESENCE optional } ,
...
}
@@ -201,17 +214,17 @@ Connection-Oriented-Information-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
-- **************************************************************
Connectionless-Information ::= SEQUENCE {
- protocolIEs ProtocolIE-Container { {Connectionless-Information-IEs} },
- protocolExtensions ProtocolExtensionContainer { {Connectionless-Information-Extensions} } OPTIONAL,
+ protocolIEs ProtocolIE-Container { {Connectionless-Information-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {Connectionless-Information-Extensions} } OPTIONAL,
...
}
Connectionless-Information-IEs LCS-AP-PROTOCOL-IES ::= {
- { ID id-Source-Identity CRITICALITY reject TYPE Network-Element PRESENCE mandatory } |
- { ID id-Destination-ID CRITICALITY reject TYPE Network-Element PRESENCE mandatory } |
- { ID id-APDU CRITICALITY reject TYPE APDU PRESENCE mandatory } |
- { ID id-Return-Error-Request CRITICALITY reject TYPE Return-Error-Type PRESENCE optional } |
- { ID id-Return-Error-Cause CRITICALITY ignore TYPE Return-Error-Cause PRESENCE optional } ,
+ { ID id-Source-Identity CRITICALITY reject TYPE Network-Element PRESENCE mandatory } |
+ { ID id-Destination-ID CRITICALITY reject TYPE Network-Element PRESENCE mandatory } |
+ { ID id-APDU CRITICALITY reject TYPE APDU PRESENCE mandatory } |
+ { ID id-Return-Error-Request CRITICALITY reject TYPE Return-Error-Type PRESENCE optional } |
+ { ID id-Return-Error-Cause CRITICALITY ignore TYPE Return-Error-Cause PRESENCE optional } ,
...
}
@@ -227,13 +240,13 @@ Connectionless-Information-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
-- **************************************************************
Reset-Request ::= SEQUENCE {
- protocolIEs ProtocolIE-Container { {Reset-Request-IEs} },
- protocolExtensions ProtocolExtensionContainer { {Reset-Request-Extensions} } OPTIONAL,
+ protocolIEs ProtocolIE-Container { {Reset-Request-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {Reset-Request-Extensions} } OPTIONAL,
...
}
Reset-Request-IEs LCS-AP-PROTOCOL-IES ::= {
- { ID id-LCS-Cause CRITICALITY ignore TYPE LCS-Cause PRESENCE mandatory } ,
+ { ID id-LCS-Cause CRITICALITY ignore TYPE LCS-Cause PRESENCE mandatory } ,
...
}
@@ -249,9 +262,9 @@ Reset-Request-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
--
-- **************************************************************
-Reset-Acknowledge ::= SEQUENCE {
- protocolIEs ProtocolIE-Container { { Reset-Acknowledge-IEs} },
- protocolExtensions ProtocolExtensionContainer { { Reset-Acknowledge-Extensions} } OPTIONAL,
+Reset-Acknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { Reset-Acknowledge-IEs} },
+ protocolExtensions ProtocolExtensionContainer { { Reset-Acknowledge-Extensions} } OPTIONAL,
...
}
@@ -264,4 +277,51 @@ Reset-Acknowledge-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
}
+-- **************************************************************
+--
+-- Ciphering-Key-Data
+--
+-- **************************************************************
+
+Ciphering-Key-Data ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Ciphering-Key-Data-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {Ciphering-Key-Data-Extensions} } OPTIONAL,
+ ...
+}
+
+Ciphering-Key-Data-IEs LCS-AP-PROTOCOL-IES ::= {
+ { ID id-Ciphering-Data CRITICALITY reject TYPE Ciphering-Data PRESENCE mandatory } ,
+ ...
+}
+
+
+Ciphering-Key-Data-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Ciphering-Key-Data
+--
+-- **************************************************************
+
+Ciphering-Key-Data-Result ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Ciphering-Key-Data-Result-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {Ciphering-Key-Data-Result-Extensions} } OPTIONAL,
+ ...
+}
+
+Ciphering-Key-Data-Result-IEs LCS-AP-PROTOCOL-IES ::= {
+ { ID id-Ciphering-Data-Ack CRITICALITY reject TYPE Ciphering-Data-Ack PRESENCE conditional } ,
+ { ID id-Ciphering-Data-Error-Report CRITICALITY reject TYPE Ciphering-Data-Error-Report PRESENCE conditional } ,
+ ...
+}
+
+
+Ciphering-Key-Data-Result-Extensions LCS-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
END
diff --git a/epan/dissectors/asn1/lcsap/LCS-AP-PDU-Descriptions.asn b/epan/dissectors/asn1/lcsap/LCS-AP-PDU-Descriptions.asn
index f0f71eed9f..c6138a8608 100644
--- a/epan/dissectors/asn1/lcsap/LCS-AP-PDU-Descriptions.asn
+++ b/epan/dissectors/asn1/lcsap/LCS-AP-PDU-Descriptions.asn
@@ -1,4 +1,4 @@
--- ETSI TS 129 171 V13.2.0 (2016-03)
+-- ETSI TS 129 171 V15.2.0 (2019-03)
--
-- 7.5.3 Elementary procedure definitions
-- **************************************************************
@@ -33,14 +33,17 @@ FROM LCS-AP-CommonDataTypes
Connection-Oriented-Information,
Connectionless-Information,
Reset-Request,
- Reset-Acknowledge
+ Reset-Acknowledge,
+ Ciphering-Key-Data,
+ Ciphering-Key-Data-Result
FROM LCS-AP-PDU-Contents
id-Location-Service-Request,
id-Connection-Oriented-Information-Transfer,
id-Connectionless-Information-Transfer,
id-Location-Abort,
- id-Reset
+ id-Reset,
+ id-Ciphering-Key-Data
FROM LCS-AP-Constants;
-- **************************************************************
@@ -50,18 +53,18 @@ FROM LCS-AP-Constants;
-- **************************************************************
LCS-AP-ELEMENTARY-PROCEDURE ::= CLASS {
- &InitiatingMessage ,
- &SuccessfulOutcome OPTIONAL,
- &UnsuccessfulOutcome OPTIONAL,
- &procedureCode ProcedureCode UNIQUE,
- &criticality Criticality DEFAULT ignore
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &UnsuccessfulOutcome OPTIONAL,
+ &procedureCode ProcedureCode UNIQUE,
+ &criticality Criticality DEFAULT ignore
}
WITH SYNTAX {
- INITIATING MESSAGE &InitiatingMessage
- [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
[UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
- PROCEDURE CODE &procedureCode
- [CRITICALITY &criticality]
+ PROCEDURE CODE &procedureCode
+ [CRITICALITY &criticality]
}
-- **************************************************************
@@ -78,21 +81,21 @@ LCS-AP-PDU ::= CHOICE {
}
InitiatingMessage ::= SEQUENCE {
- procedureCode LCS-AP-ELEMENTARY-PROCEDURE.&procedureCode ({LCS-AP-ELEMENTARY-PROCEDURES}),
- criticality LCS-AP-ELEMENTARY-PROCEDURE.&criticality ({LCS-AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
- value LCS-AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({LCS-AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+ procedureCode LCS-AP-ELEMENTARY-PROCEDURE.&procedureCode ({LCS-AP-ELEMENTARY-PROCEDURES}),
+ criticality LCS-AP-ELEMENTARY-PROCEDURE.&criticality ({LCS-AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value LCS-AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({LCS-AP-ELEMENTARY-PROCEDURES}{@procedureCode})
}
SuccessfulOutcome ::= SEQUENCE {
- procedureCode LCS-AP-ELEMENTARY-PROCEDURE.&procedureCode ({LCS-AP-ELEMENTARY-PROCEDURES}),
- criticality LCS-AP-ELEMENTARY-PROCEDURE.&criticality ({LCS-AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
- value LCS-AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({LCS-AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+ procedureCode LCS-AP-ELEMENTARY-PROCEDURE.&procedureCode ({LCS-AP-ELEMENTARY-PROCEDURES}),
+ criticality LCS-AP-ELEMENTARY-PROCEDURE.&criticality ({LCS-AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value LCS-AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({LCS-AP-ELEMENTARY-PROCEDURES}{@procedureCode})
}
UnsuccessfulOutcome ::= SEQUENCE {
- procedureCode LCS-AP-ELEMENTARY-PROCEDURE.&procedureCode ({LCS-AP-ELEMENTARY-PROCEDURES}),
- criticality LCS-AP-ELEMENTARY-PROCEDURE.&criticality ({LCS-AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
- value LCS-AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({LCS-AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+ procedureCode LCS-AP-ELEMENTARY-PROCEDURE.&procedureCode ({LCS-AP-ELEMENTARY-PROCEDURES}),
+ criticality LCS-AP-ELEMENTARY-PROCEDURE.&criticality ({LCS-AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value LCS-AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({LCS-AP-ELEMENTARY-PROCEDURES}{@procedureCode})
}
-- **************************************************************
@@ -108,10 +111,11 @@ LCS-AP-ELEMENTARY-PROCEDURES LCS-AP-ELEMENTARY-PROCEDURE ::= {
}
LCS-AP-ELEMENTARY-PROCEDURES-CLASS-1 LCS-AP-ELEMENTARY-PROCEDURE ::= {
- location-Service-Request |
- connectionless-Information-Transfer |
- location-Abort |
- reset ,
+ location-Service-Request |
+ connectionless-Information-Transfer |
+ location-Abort |
+ reset ,
+ ciphering-Key-Data ,
...
}
@@ -130,38 +134,46 @@ LCS-AP-ELEMENTARY-PROCEDURES-CLASS-2 LCS-AP-ELEMENTARY-PROCEDURE ::= {
location-Service-Request LCS-AP-ELEMENTARY-PROCEDURE ::= {
- INITIATING MESSAGE Location-Request
- SUCCESSFUL OUTCOME Location-Response
+ INITIATING MESSAGE Location-Request
+ SUCCESSFUL OUTCOME Location-Response
UNSUCCESSFUL OUTCOME Location-Response
- PROCEDURE CODE id-Location-Service-Request
- CRITICALITY reject
+ PROCEDURE CODE id-Location-Service-Request
+ CRITICALITY reject
}
connection-Oriented-Information-Transfer LCS-AP-ELEMENTARY-PROCEDURE ::= {
- INITIATING MESSAGE Connection-Oriented-Information
- PROCEDURE CODE id-Connection-Oriented-Information-Transfer
- CRITICALITY reject
+ INITIATING MESSAGE Connection-Oriented-Information
+ PROCEDURE CODE id-Connection-Oriented-Information-Transfer
+ CRITICALITY reject
}
connectionless-Information-Transfer LCS-AP-ELEMENTARY-PROCEDURE ::= {
- INITIATING MESSAGE Connectionless-Information
+ INITIATING MESSAGE Connectionless-Information
UNSUCCESSFUL OUTCOME Connectionless-Information
- PROCEDURE CODE id-Connectionless-Information-Transfer
- CRITICALITY reject
+ PROCEDURE CODE id-Connectionless-Information-Transfer
+ CRITICALITY reject
}
location-Abort LCS-AP-ELEMENTARY-PROCEDURE ::= {
- INITIATING MESSAGE Location-Abort-Request
- SUCCESSFUL OUTCOME Location-Response
- PROCEDURE CODE id-Location-Abort
- CRITICALITY reject
+ INITIATING MESSAGE Location-Abort-Request
+ SUCCESSFUL OUTCOME Location-Response
+ PROCEDURE CODE id-Location-Abort
+ CRITICALITY reject
}
reset LCS-AP-ELEMENTARY-PROCEDURE ::= {
- INITIATING MESSAGE Reset-Request
- SUCCESSFUL OUTCOME Reset-Acknowledge
- PROCEDURE CODE id-Reset
- CRITICALITY reject
+ INITIATING MESSAGE Reset-Request
+ SUCCESSFUL OUTCOME Reset-Acknowledge
+ PROCEDURE CODE id-Reset
+ CRITICALITY reject
+}
+
+Ciphering-Key-Data LCS-AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Ciphering-Key-Data
+ SUCCESSFUL OUTCOME Ciphering-Key-Data-Result
+ UNSUCCESSFUL OUTCOME Ciphering-Key-Data-Result
+ PROCEDURE CODE id-Ciphering-Key-Data
+ CRITICALITY reject
}
END
diff --git a/epan/dissectors/asn1/lcsap/lcsap.cnf b/epan/dissectors/asn1/lcsap/lcsap.cnf
index f69759604c..174537c238 100644
--- a/epan/dissectors/asn1/lcsap/lcsap.cnf
+++ b/epan/dissectors/asn1/lcsap/lcsap.cnf
@@ -19,6 +19,7 @@ ProtocolIE-ID
#.NO_EMIT
TBCD-STRING
+Coverage-Level
#.OMIT_ASSIGNMENT
# Get rid of unused code warnings
@@ -262,6 +263,7 @@ id-Connection-Oriented-Information-Transfer ProcedureCode
id-Connectionless-Information-Transfer ProcedureCode
id-Location-Abort ProcedureCode
id-Reset ProcedureCode
+id-Ciphering-Key-Data ProcedureCode
# ProtocolIE-ID
id-Correlation-ID ProtocolIE-ID
@@ -287,10 +289,14 @@ id-Location-Estimate ProtocolIE-ID
id-Source-Identity ProtocolIE-ID
id-Destination-ID ProtocolIE-ID
id-LCS-Service-Type-ID ProtocolIE-ID
-id-Additional-PositioningDataSet ProtocolIE-ID
-id-Barometric-Pressure ProtocolIE-ID
id-Cell-Portion-ID ProtocolIE-ID
id-Civic-Address ProtocolIE-ID
+id-Barometric-Pressure ProtocolIE-ID
+id-Additional-PositioningDataSet ProtocolIE-ID
+id-RAT-Type ProtocolIE-ID
+id-Ciphering-Data ProtocolIE-ID
+id-Ciphering-Data-Ack ProtocolIE-ID
+id-Ciphering-Data-Error-Report ProtocolIE-ID
#.REGISTER
@@ -317,11 +323,16 @@ Return-Error-Cause N lcsap.ies id-Return-Error-Cause
Network-Element N lcsap.ies id-Source-Identity
UE-Positioning-Capability N lcsap.ies id-UE-Positioning-Capability
Velocity-Estimate N lcsap.ies id-Velocity-Estimate
+Barometric-Pressure N lcsap.extension id-Barometric-Pressure
+Additional-PositioningDataSet N lcsap.extension id-Additional-PositioningDataSet
+RAT-Type N lcsap.ies id-RAT-Type
+Ciphering-Data N lcsap.ies id-Ciphering-Data
+Ciphering-Data-Ack N lcsap.ies id-Ciphering-Data-Ack
+Ciphering-Data-Error-Report N lcsap.ies id-Ciphering-Data-Error-Report
+
#LCS-AP-PROTOCOL-EXTENSION
LCS-Service-Type-ID N lcsap.extension id-LCS-Service-Type-ID
-Additional-PositioningDataSet N lcsap.extension id-Additional-PositioningDataSet
-Barometric-Pressure N lcsap.extension id-Barometric-Pressure
Cell-Portion-ID N lcsap.extension id-Cell-Portion-ID
Civic-Address N lcsap.extension id-Civic-Address
E-CGI N lcsap.extension id-E-UTRAN-Cell-Identifier
@@ -342,6 +353,10 @@ Location-Response N lcsap.proc.sout id-Location-Abort
Reset-Request N lcsap.proc.imsg id-Reset
Reset-Acknowledge N lcsap.proc.sout id-Reset
+Ciphering-Key-Data N lcsap.proc.imsg id-Ciphering-Key-Data
+Ciphering-Key-Data-Result N lcsap.proc.sout id-Ciphering-Key-Data
+Ciphering-Key-Data-Result N lcsap.proc.uout id-Ciphering-Key-Data
+
#.TYPE_ATTR
diff --git a/epan/dissectors/packet-lcsap.c b/epan/dissectors/packet-lcsap.c
index 0c535a941b..f7690e7172 100644
--- a/epan/dissectors/packet-lcsap.c
+++ b/epan/dissectors/packet-lcsap.c
@@ -57,6 +57,7 @@ void proto_reg_handoff_lcsap(void);
#define max_Set 9
#define max_GNSS_Set 9
#define max_Add_Pos_Set 8
+#define max_Cipher_Set 16
#define maxProtocolExtensions 65535
#define maxProtocolIEs 65535
@@ -65,7 +66,8 @@ typedef enum _ProcedureCode_enum {
id_Connection_Oriented_Information_Transfer = 1,
id_Connectionless_Information_Transfer = 2,
id_Location_Abort = 3,
- id_Reset = 4
+ id_Reset = 4,
+ id_Ciphering_Key_Data = 5
} ProcedureCode_enum;
typedef enum _ProtocolIE_ID_enum {
@@ -95,7 +97,11 @@ typedef enum _ProtocolIE_ID_enum {
id_Cell_Portion_ID = 23,
id_Civic_Address = 24,
id_Barometric_Pressure = 25,
- id_Additional_PositioningDataSet = 26
+ id_Additional_PositioningDataSet = 26,
+ id_RAT_Type = 27,
+ id_Ciphering_Data = 28,
+ id_Ciphering_Data_Ack = 29,
+ id_Ciphering_Data_Error_Report = 30
} ProtocolIE_ID_enum;
/*--- End of included file: packet-lcsap-val.h ---*/
@@ -117,6 +123,9 @@ static int hf_lcsap_Accuracy_Fulfillment_Indicator_PDU = -1; /* Accuracy_Fulfil
static int hf_lcsap_Additional_PositioningDataSet_PDU = -1; /* Additional_PositioningDataSet */
static int hf_lcsap_Barometric_Pressure_PDU = -1; /* Barometric_Pressure */
static int hf_lcsap_Cell_Portion_ID_PDU = -1; /* Cell_Portion_ID */
+static int hf_lcsap_Ciphering_Data_PDU = -1; /* Ciphering_Data */
+static int hf_lcsap_Ciphering_Data_Ack_PDU = -1; /* Ciphering_Data_Ack */
+static int hf_lcsap_Ciphering_Data_Error_Report_PDU = -1; /* Ciphering_Data_Error_Report */
static int hf_lcsap_Civic_Address_PDU = -1; /* Civic_Address */
static int hf_lcsap_lcsap_Correlation_ID_PDU = -1; /* Correlation_ID */
static int hf_lcsap_E_CGI_PDU = -1; /* E_CGI */
@@ -134,6 +143,7 @@ static int hf_lcsap_MultipleAPDUs_PDU = -1; /* MultipleAPDUs */
static int hf_lcsap_Network_Element_PDU = -1; /* Network_Element */
static int hf_lcsap_Payload_Type_PDU = -1; /* Payload_Type */
static int hf_lcsap_lcsap_Positioning_Data_PDU = -1; /* Positioning_Data */
+static int hf_lcsap_RAT_Type_PDU = -1; /* RAT_Type */
static int hf_lcsap_Return_Error_Type_PDU = -1; /* Return_Error_Type */
static int hf_lcsap_Return_Error_Cause_PDU = -1; /* Return_Error_Cause */
static int hf_lcsap_UE_Positioning_Capability_PDU = -1; /* UE_Positioning_Capability */
@@ -145,6 +155,8 @@ static int hf_lcsap_Connection_Oriented_Information_PDU = -1; /* Connection_Ori
static int hf_lcsap_Connectionless_Information_PDU = -1; /* Connectionless_Information */
static int hf_lcsap_Reset_Request_PDU = -1; /* Reset_Request */
static int hf_lcsap_Reset_Acknowledge_PDU = -1; /* Reset_Acknowledge */
+static int hf_lcsap_Ciphering_Key_Data_PDU = -1; /* Ciphering_Key_Data */
+static int hf_lcsap_Ciphering_Key_Data_Result_PDU = -1; /* Ciphering_Key_Data_Result */
static int hf_lcsap_LCS_AP_PDU_PDU = -1; /* LCS_AP_PDU */
static int hf_lcsap_ProtocolIE_Container_item = -1; /* ProtocolIE_Field */
static int hf_lcsap_id = -1; /* ProtocolIE_ID */
@@ -156,6 +168,17 @@ static int hf_lcsap_extensionValue = -1; /* T_extensionValue */
static int hf_lcsap_Additional_PositioningDataSet_item = -1; /* Additional_PositioningMethodAndUsage */
static int hf_lcsap_direction_Of_Altitude = -1; /* Direction_Of_Altitude */
static int hf_lcsap_altitude = -1; /* Altitude */
+static int hf_lcsap_Ciphering_Data_item = -1; /* Ciphering_Data_Set */
+static int hf_lcsap_Ciphering_Data_Ack_item = -1; /* Ciphering_Set_ID */
+static int hf_lcsap_Ciphering_Data_Error_Report_item = -1; /* Ciphering_Data_Error_Report_Contents */
+static int hf_lcsap_ciphering_Set_ID = -1; /* Ciphering_Set_ID */
+static int hf_lcsap_ciphering_Key = -1; /* Ciphering_Key */
+static int hf_lcsap_c0 = -1; /* C0 */
+static int hf_lcsap_sib_Types = -1; /* SIB_Types */
+static int hf_lcsap_validity_Start_Time = -1; /* Validity_Start_Time */
+static int hf_lcsap_validity_Duration = -1; /* Validity_Duration */
+static int hf_lcsap_tais_List = -1; /* TAIs_List */
+static int hf_lcsap_storage_Outcome = -1; /* Storage_Outcome */
static int hf_lcsap_pLMNidentity = -1; /* PLMN_ID */
static int hf_lcsap_cell_ID = -1; /* CellIdentity */
static int hf_lcsap_iE_Extensions = -1; /* ProtocolExtensionContainer */
@@ -170,6 +193,8 @@ static int hf_lcsap_offset_Angle = -1; /* Angle */
static int hf_lcsap_included_Angle = -1; /* Angle */
static int hf_lcsap_macro_eNB_ID = -1; /* Macro_eNB_ID */
static int hf_lcsap_home_eNB_ID = -1; /* Home_eNB_ID */
+static int hf_lcsap_short_macro_eNB_ID = -1; /* Short_Macro_eNB_ID */
+static int hf_lcsap_long_macro_eNB_ID = -1; /* Long_Macro_eNB_ID */
static int hf_lcsap_point = -1; /* Point */
static int hf_lcsap_point_With_Uncertainty = -1; /* Point_With_Uncertainty */
static int hf_lcsap_ellipsoidPoint_With_Uncertainty_Ellipse = -1; /* Ellipsoid_Point_With_Uncertainty_Ellipse */
@@ -244,6 +269,11 @@ static gint ett_lcsap_ProtocolExtensionContainer = -1;
static gint ett_lcsap_ProtocolExtensionField = -1;
static gint ett_lcsap_Additional_PositioningDataSet = -1;
static gint ett_lcsap_Altitude_And_Direction = -1;
+static gint ett_lcsap_Ciphering_Data = -1;
+static gint ett_lcsap_Ciphering_Data_Ack = -1;
+static gint ett_lcsap_Ciphering_Data_Error_Report = -1;
+static gint ett_lcsap_Ciphering_Data_Set = -1;
+static gint ett_lcsap_Ciphering_Data_Error_Report_Contents = -1;
static gint ett_lcsap_E_CGI = -1;
static gint ett_lcsap_Ellipsoid_Point_With_Uncertainty_Ellipse = -1;
static gint ett_lcsap_Ellipsoid_Point_With_Altitude = -1;
@@ -280,6 +310,8 @@ static gint ett_lcsap_Connection_Oriented_Information = -1;
static gint ett_lcsap_Connectionless_Information = -1;
static gint ett_lcsap_Reset_Request = -1;
static gint ett_lcsap_Reset_Acknowledge = -1;
+static gint ett_lcsap_Ciphering_Key_Data = -1;
+static gint ett_lcsap_Ciphering_Key_Data_Result = -1;
static gint ett_lcsap_LCS_AP_PDU = -1;
static gint ett_lcsap_InitiatingMessage = -1;
static gint ett_lcsap_SuccessfulOutcome = -1;
@@ -434,6 +466,7 @@ static const value_string lcsap_ProcedureCode_vals[] = {
{ id_Connectionless_Information_Transfer, "id-Connectionless-Information-Transfer" },
{ id_Location_Abort, "id-Location-Abort" },
{ id_Reset, "id-Reset" },
+ { id_Ciphering_Key_Data, "id-Ciphering-Key-Data" },
{ 0, NULL }
};
@@ -443,7 +476,7 @@ dissect_lcsap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &ProcedureCode, FALSE);
-#line 99 "./asn1/lcsap/lcsap.cnf"
+#line 100 "./asn1/lcsap/lcsap.cnf"
{
guint8 tmp = tvb_get_guint8(tvb, 0);
@@ -502,6 +535,10 @@ static const value_string lcsap_ProtocolIE_ID_vals[] = {
{ id_Civic_Address, "id-Civic-Address" },
{ id_Barometric_Pressure, "id-Barometric-Pressure" },
{ id_Additional_PositioningDataSet, "id-Additional-PositioningDataSet" },
+ { id_RAT_Type, "id-RAT-Type" },
+ { id_Ciphering_Data, "id-Ciphering-Data" },
+ { id_Ciphering_Data_Ack, "id-Ciphering-Data-Ack" },
+ { id_Ciphering_Data_Error_Report, "id-Ciphering-Data-Error-Report" },
{ 0, NULL }
};
@@ -511,7 +548,7 @@ dissect_lcsap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 65535U, &ProtocolIE_ID, FALSE);
-#line 51 "./asn1/lcsap/lcsap.cnf"
+#line 52 "./asn1/lcsap/lcsap.cnf"
if (tree) {
proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(lcsap_ProtocolIE_ID_vals), "unknown (%d)"));
}
@@ -601,7 +638,7 @@ dissect_lcsap_ProtocolExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1
static int
dissect_lcsap_APDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 72 "./asn1/lcsap/lcsap.cnf"
+#line 73 "./asn1/lcsap/lcsap.cnf"
tvbuff_t *parameter_tvb=NULL;
@@ -738,6 +775,16 @@ dissect_lcsap_Barometric_Pressure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
+dissect_lcsap_C0(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, 128, FALSE, NULL, 0, NULL, NULL);
+
+ return offset;
+}
+
+
+
+static int
dissect_lcsap_CellIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
28, 28, FALSE, NULL, 0, NULL, NULL);
@@ -758,8 +805,161 @@ dissect_lcsap_Cell_Portion_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
+dissect_lcsap_Ciphering_Set_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 65535U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_lcsap_Ciphering_Key(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 16, 16, FALSE, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_lcsap_SIB_Types(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 4, 4, FALSE, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_lcsap_Validity_Start_Time(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 4, 4, FALSE, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_lcsap_Validity_Duration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 65535U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_lcsap_TAIs_List(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,
+ 7, 97, FALSE, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t Ciphering_Data_Set_sequence[] = {
+ { &hf_lcsap_ciphering_Set_ID, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lcsap_Ciphering_Set_ID },
+ { &hf_lcsap_ciphering_Key , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lcsap_Ciphering_Key },
+ { &hf_lcsap_c0 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lcsap_C0 },
+ { &hf_lcsap_sib_Types , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lcsap_SIB_Types },
+ { &hf_lcsap_validity_Start_Time, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lcsap_Validity_Start_Time },
+ { &hf_lcsap_validity_Duration, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lcsap_Validity_Duration },
+ { &hf_lcsap_tais_List , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lcsap_TAIs_List },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lcsap_Ciphering_Data_Set(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_lcsap_Ciphering_Data_Set, Ciphering_Data_Set_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t Ciphering_Data_sequence_of[1] = {
+ { &hf_lcsap_Ciphering_Data_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lcsap_Ciphering_Data_Set },
+};
+
+static int
+dissect_lcsap_Ciphering_Data(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_lcsap_Ciphering_Data, Ciphering_Data_sequence_of,
+ 1, max_Cipher_Set, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t Ciphering_Data_Ack_sequence_of[1] = {
+ { &hf_lcsap_Ciphering_Data_Ack_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lcsap_Ciphering_Set_ID },
+};
+
+static int
+dissect_lcsap_Ciphering_Data_Ack(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_lcsap_Ciphering_Data_Ack, Ciphering_Data_Ack_sequence_of,
+ 1, max_Cipher_Set, FALSE);
+
+ return offset;
+}
+
+
+static const value_string lcsap_Storage_Outcome_vals[] = {
+ { 0, "successful" },
+ { 1, "failed" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_lcsap_Storage_Outcome(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 2, NULL, FALSE, 0, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t Ciphering_Data_Error_Report_Contents_sequence[] = {
+ { &hf_lcsap_ciphering_Set_ID, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lcsap_Ciphering_Set_ID },
+ { &hf_lcsap_storage_Outcome, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lcsap_Storage_Outcome },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lcsap_Ciphering_Data_Error_Report_Contents(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_lcsap_Ciphering_Data_Error_Report_Contents, Ciphering_Data_Error_Report_Contents_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t Ciphering_Data_Error_Report_sequence_of[1] = {
+ { &hf_lcsap_Ciphering_Data_Error_Report_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lcsap_Ciphering_Data_Error_Report_Contents },
+};
+
+static int
+dissect_lcsap_Ciphering_Data_Error_Report(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_lcsap_Ciphering_Data_Error_Report, Ciphering_Data_Error_Report_sequence_of,
+ 1, max_Cipher_Set, FALSE);
+
+ return offset;
+}
+
+
+
+static int
dissect_lcsap_Civic_Address(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 239 "./asn1/lcsap/lcsap.cnf"
+#line 240 "./asn1/lcsap/lcsap.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -808,7 +1008,7 @@ dissect_lcsap_Correlation_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_lcsap_DegreesLatitude(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 199 "./asn1/lcsap/lcsap.cnf"
+#line 200 "./asn1/lcsap/lcsap.cnf"
gint32 degrees;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
@@ -825,7 +1025,7 @@ dissect_lcsap_DegreesLatitude(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_lcsap_DegreesLongitude(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 207 "./asn1/lcsap/lcsap.cnf"
+#line 208 "./asn1/lcsap/lcsap.cnf"
gint32 degrees;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
@@ -843,7 +1043,7 @@ dissect_lcsap_DegreesLongitude(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_lcsap_PLMN_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 151 "./asn1/lcsap/lcsap.cnf"
+#line 152 "./asn1/lcsap/lcsap.cnf"
tvbuff_t *parameter_tvb=NULL;
proto_tree *subtree;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -877,6 +1077,7 @@ dissect_lcsap_E_CGI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
}
+
static const value_string lcsap_LatitudeSign_vals[] = {
{ 0, "north" },
{ 1, "south" },
@@ -913,7 +1114,7 @@ dissect_lcsap_Geographical_Coordinates(tvbuff_t *tvb _U_, int offset _U_, asn1_c
static int
dissect_lcsap_Uncertainty_Code(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 191 "./asn1/lcsap/lcsap.cnf"
+#line 192 "./asn1/lcsap/lcsap.cnf"
guint32 uncertainty_code;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
@@ -1065,15 +1266,39 @@ dissect_lcsap_Home_eNB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
}
+
+static int
+dissect_lcsap_Short_Macro_eNB_ID(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,
+ 18, 18, FALSE, NULL, 0, NULL, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_lcsap_Long_Macro_eNB_ID(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,
+ 21, 21, FALSE, NULL, 0, NULL, NULL);
+
+ return offset;
+}
+
+
static const value_string lcsap_ENB_ID_vals[] = {
{ 0, "macro-eNB-ID" },
{ 1, "home-eNB-ID" },
+ { 2, "short-macro-eNB-ID" },
+ { 3, "long-macro-eNB-ID" },
{ 0, NULL }
};
static const per_choice_t ENB_ID_choice[] = {
{ 0, &hf_lcsap_macro_eNB_ID , ASN1_EXTENSION_ROOT , dissect_lcsap_Macro_eNB_ID },
{ 1, &hf_lcsap_home_eNB_ID , ASN1_EXTENSION_ROOT , dissect_lcsap_Home_eNB_ID },
+ { 2, &hf_lcsap_short_macro_eNB_ID, ASN1_NOT_EXTENSION_ROOT, dissect_lcsap_Short_Macro_eNB_ID },
+ { 3, &hf_lcsap_long_macro_eNB_ID, ASN1_NOT_EXTENSION_ROOT, dissect_lcsap_Long_Macro_eNB_ID },
{ 0, NULL, 0, NULL }
};
@@ -1207,7 +1432,7 @@ dissect_lcsap_Global_eNB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_lcsap_GNSS_Positioning_Method_And_Usage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 177 "./asn1/lcsap/lcsap.cnf"
+#line 178 "./asn1/lcsap/lcsap.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -1244,7 +1469,7 @@ dissect_lcsap_GNSS_Positioning_Data_Set(tvbuff_t *tvb _U_, int offset _U_, asn1_
static int
dissect_lcsap_Horizontal_Accuracy(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 225 "./asn1/lcsap/lcsap.cnf"
+#line 226 "./asn1/lcsap/lcsap.cnf"
guint32 uncertainty_code;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 127U, &uncertainty_code, FALSE);
@@ -1252,7 +1477,7 @@ dissect_lcsap_Horizontal_Accuracy(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
-#line 229 "./asn1/lcsap/lcsap.cnf"
+#line 230 "./asn1/lcsap/lcsap.cnf"
proto_item_append_text(actx->created_item, " (%.1f m)", 10 * (pow(1.1, (double)uncertainty_code) - 1));
@@ -1404,7 +1629,7 @@ dissect_lcsap_Horizontal_With_Vertical_Velocity_And_Uncertainty(tvbuff_t *tvb _U
static int
dissect_lcsap_IMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 215 "./asn1/lcsap/lcsap.cnf"
+#line 216 "./asn1/lcsap/lcsap.cnf"
tvbuff_t *imsi_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3, 8, FALSE, &imsi_tvb);
@@ -1451,6 +1676,7 @@ dissect_lcsap_Include_Velocity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static const value_string lcsap_Location_Type_vals[] = {
{ 0, "geographic-Information" },
{ 1, "assistance-Information" },
+ { 2, "last-known-location" },
{ 0, NULL }
};
@@ -1458,7 +1684,7 @@ static const value_string lcsap_Location_Type_vals[] = {
static int
dissect_lcsap_Location_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
- 2, NULL, TRUE, 0, NULL);
+ 2, NULL, TRUE, 1, NULL);
return offset;
}
@@ -1520,7 +1746,8 @@ static const value_string lcsap_Misc_Cause_vals[] = {
{ 0, "processing-Overload" },
{ 1, "hardware-Failure" },
{ 2, "o-And-M-Intervention" },
- { 3, "unspecified" },
+ { 3, "ciphering-key-data-lost" },
+ { 4, "unspecified" },
{ 0, NULL }
};
@@ -1528,7 +1755,7 @@ static const value_string lcsap_Misc_Cause_vals[] = {
static int
dissect_lcsap_Misc_Cause(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,
- 4, NULL, TRUE, 0, NULL);
+ 5, NULL, TRUE, 0, NULL);
return offset;
}
@@ -1611,7 +1838,7 @@ dissect_lcsap_Vertical_Requested(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_lcsap_Vertical_Accuracy(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 232 "./asn1/lcsap/lcsap.cnf"
+#line 233 "./asn1/lcsap/lcsap.cnf"
guint32 vertical_uncertainty;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 127U, &vertical_uncertainty, FALSE);
@@ -1619,7 +1846,7 @@ dissect_lcsap_Vertical_Accuracy(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
-#line 236 "./asn1/lcsap/lcsap.cnf"
+#line 237 "./asn1/lcsap/lcsap.cnf"
proto_item_append_text(actx->created_item, " (%.1f m)", 45 * (pow(1.025, (double)vertical_uncertainty) - 1));
@@ -1725,7 +1952,7 @@ dissect_lcsap_Payload_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_lcsap_Positioning_Method_And_Usage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 165 "./asn1/lcsap/lcsap.cnf"
+#line 166 "./asn1/lcsap/lcsap.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -1775,6 +2002,23 @@ dissect_lcsap_Positioning_Data(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
}
+static const value_string lcsap_RAT_Type_vals[] = {
+ { 0, "lte-wb" },
+ { 1, "nb-iot" },
+ { 2, "lte-m" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_lcsap_RAT_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 2, NULL, TRUE, 1, NULL);
+
+ return offset;
+}
+
+
static const value_string lcsap_Return_Error_Type_vals[] = {
{ 0, "yes" },
{ 1, "no" },
@@ -1927,7 +2171,7 @@ static const per_sequence_t Connectionless_Information_sequence[] = {
static int
dissect_lcsap_Connectionless_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 68 "./asn1/lcsap/lcsap.cnf"
+#line 69 "./asn1/lcsap/lcsap.cnf"
PayloadType = 1; /* LPPa */
@@ -1969,6 +2213,36 @@ dissect_lcsap_Reset_Acknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
}
+static const per_sequence_t Ciphering_Key_Data_sequence[] = {
+ { &hf_lcsap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lcsap_ProtocolIE_Container },
+ { &hf_lcsap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lcsap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lcsap_Ciphering_Key_Data(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_lcsap_Ciphering_Key_Data, Ciphering_Key_Data_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t Ciphering_Key_Data_Result_sequence[] = {
+ { &hf_lcsap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lcsap_ProtocolIE_Container },
+ { &hf_lcsap_protocolExtensions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lcsap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lcsap_Ciphering_Key_Data_Result(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_lcsap_Ciphering_Key_Data_Result, Ciphering_Key_Data_Result_sequence);
+
+ return offset;
+}
+
+
static int
dissect_lcsap_InitiatingMessage_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
@@ -2109,6 +2383,30 @@ static int dissect_Cell_Portion_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_
offset += 7; offset >>= 3;
return offset;
}
+static int dissect_Ciphering_Data_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_lcsap_Ciphering_Data(tvb, offset, &asn1_ctx, tree, hf_lcsap_Ciphering_Data_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_Ciphering_Data_Ack_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_lcsap_Ciphering_Data_Ack(tvb, offset, &asn1_ctx, tree, hf_lcsap_Ciphering_Data_Ack_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_Ciphering_Data_Error_Report_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_lcsap_Ciphering_Data_Error_Report(tvb, offset, &asn1_ctx, tree, hf_lcsap_Ciphering_Data_Error_Report_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
static int dissect_Civic_Address_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
@@ -2245,6 +2543,14 @@ int dissect_lcsap_Positioning_Data_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_
offset += 7; offset >>= 3;
return offset;
}
+static int dissect_RAT_Type_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_lcsap_RAT_Type(tvb, offset, &asn1_ctx, tree, hf_lcsap_RAT_Type_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
static int dissect_Return_Error_Type_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
@@ -2333,6 +2639,22 @@ static int dissect_Reset_Acknowledge_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _
offset += 7; offset >>= 3;
return offset;
}
+static int dissect_Ciphering_Key_Data_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_lcsap_Ciphering_Key_Data(tvb, offset, &asn1_ctx, tree, hf_lcsap_Ciphering_Key_Data_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_Ciphering_Key_Data_Result_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_lcsap_Ciphering_Key_Data_Result(tvb, offset, &asn1_ctx, tree, hf_lcsap_Ciphering_Key_Data_Result_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
static int dissect_LCS_AP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
@@ -2429,9 +2751,13 @@ proto_reg_handoff_lcsap(void)
dissector_add_uint("lcsap.ies", id_Source_Identity, create_dissector_handle(dissect_Network_Element_PDU, proto_lcsap));
dissector_add_uint("lcsap.ies", id_UE_Positioning_Capability, create_dissector_handle(dissect_UE_Positioning_Capability_PDU, proto_lcsap));
dissector_add_uint("lcsap.ies", id_Velocity_Estimate, create_dissector_handle(dissect_Velocity_Estimate_PDU, proto_lcsap));
- dissector_add_uint("lcsap.extension", id_LCS_Service_Type_ID, create_dissector_handle(dissect_LCS_Service_Type_ID_PDU, proto_lcsap));
- dissector_add_uint("lcsap.extension", id_Additional_PositioningDataSet, create_dissector_handle(dissect_Additional_PositioningDataSet_PDU, proto_lcsap));
dissector_add_uint("lcsap.extension", id_Barometric_Pressure, create_dissector_handle(dissect_Barometric_Pressure_PDU, proto_lcsap));
+ dissector_add_uint("lcsap.extension", id_Additional_PositioningDataSet, create_dissector_handle(dissect_Additional_PositioningDataSet_PDU, proto_lcsap));
+ dissector_add_uint("lcsap.ies", id_RAT_Type, create_dissector_handle(dissect_RAT_Type_PDU, proto_lcsap));
+ dissector_add_uint("lcsap.ies", id_Ciphering_Data, create_dissector_handle(dissect_Ciphering_Data_PDU, proto_lcsap));
+ dissector_add_uint("lcsap.ies", id_Ciphering_Data_Ack, create_dissector_handle(dissect_Ciphering_Data_Ack_PDU, proto_lcsap));
+ dissector_add_uint("lcsap.ies", id_Ciphering_Data_Error_Report, create_dissector_handle(dissect_Ciphering_Data_Error_Report_PDU, proto_lcsap));
+ dissector_add_uint("lcsap.extension", id_LCS_Service_Type_ID, create_dissector_handle(dissect_LCS_Service_Type_ID_PDU, proto_lcsap));
dissector_add_uint("lcsap.extension", id_Cell_Portion_ID, create_dissector_handle(dissect_Cell_Portion_ID_PDU, proto_lcsap));
dissector_add_uint("lcsap.extension", id_Civic_Address, create_dissector_handle(dissect_Civic_Address_PDU, proto_lcsap));
dissector_add_uint("lcsap.extension", id_E_UTRAN_Cell_Identifier, create_dissector_handle(dissect_E_CGI_PDU, proto_lcsap));
@@ -2445,6 +2771,9 @@ proto_reg_handoff_lcsap(void)
dissector_add_uint("lcsap.proc.sout", id_Location_Abort, create_dissector_handle(dissect_Location_Response_PDU, proto_lcsap));
dissector_add_uint("lcsap.proc.imsg", id_Reset, create_dissector_handle(dissect_Reset_Request_PDU, proto_lcsap));
dissector_add_uint("lcsap.proc.sout", id_Reset, create_dissector_handle(dissect_Reset_Acknowledge_PDU, proto_lcsap));
+ dissector_add_uint("lcsap.proc.imsg", id_Ciphering_Key_Data, create_dissector_handle(dissect_Ciphering_Key_Data_PDU, proto_lcsap));
+ dissector_add_uint("lcsap.proc.sout", id_Ciphering_Key_Data, create_dissector_handle(dissect_Ciphering_Key_Data_Result_PDU, proto_lcsap));
+ dissector_add_uint("lcsap.proc.uout", id_Ciphering_Key_Data, create_dissector_handle(dissect_Ciphering_Key_Data_Result_PDU, proto_lcsap));
/*--- End of included file: packet-lcsap-dis-tab.c ---*/
@@ -2516,6 +2845,18 @@ void proto_register_lcsap(void) {
{ "Cell-Portion-ID", "lcsap.Cell_Portion_ID",
FT_UINT32, BASE_DEC, NULL, 0,
NULL, HFILL }},
+ { &hf_lcsap_Ciphering_Data_PDU,
+ { "Ciphering-Data", "lcsap.Ciphering_Data",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lcsap_Ciphering_Data_Ack_PDU,
+ { "Ciphering-Data-Ack", "lcsap.Ciphering_Data_Ack",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lcsap_Ciphering_Data_Error_Report_PDU,
+ { "Ciphering-Data-Error-Report", "lcsap.Ciphering_Data_Error_Report",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
{ &hf_lcsap_Civic_Address_PDU,
{ "Civic-Address", "lcsap.Civic_Address",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -2584,6 +2925,10 @@ void proto_register_lcsap(void) {
{ "Positioning-Data", "lcsap.Positioning_Data_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_lcsap_RAT_Type_PDU,
+ { "RAT-Type", "lcsap.RAT_Type",
+ FT_UINT32, BASE_DEC, VALS(lcsap_RAT_Type_vals), 0,
+ NULL, HFILL }},
{ &hf_lcsap_Return_Error_Type_PDU,
{ "Return-Error-Type", "lcsap.Return_Error_Type",
FT_UINT32, BASE_DEC, VALS(lcsap_Return_Error_Type_vals), 0,
@@ -2628,6 +2973,14 @@ void proto_register_lcsap(void) {
{ "Reset-Acknowledge", "lcsap.Reset_Acknowledge_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_lcsap_Ciphering_Key_Data_PDU,
+ { "Ciphering-Key-Data", "lcsap.Ciphering_Key_Data_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lcsap_Ciphering_Key_Data_Result_PDU,
+ { "Ciphering-Key-Data-Result", "lcsap.Ciphering_Key_Data_Result_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_lcsap_LCS_AP_PDU_PDU,
{ "LCS-AP-PDU", "lcsap.LCS_AP_PDU",
FT_UINT32, BASE_DEC, VALS(lcsap_LCS_AP_PDU_vals), 0,
@@ -2672,6 +3025,50 @@ void proto_register_lcsap(void) {
{ "altitude", "lcsap.altitude",
FT_UINT32, BASE_DEC, NULL, 0,
NULL, HFILL }},
+ { &hf_lcsap_Ciphering_Data_item,
+ { "Ciphering-Data-Set", "lcsap.Ciphering_Data_Set_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lcsap_Ciphering_Data_Ack_item,
+ { "Ciphering-Set-ID", "lcsap.Ciphering_Set_ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lcsap_Ciphering_Data_Error_Report_item,
+ { "Ciphering-Data-Error-Report-Contents", "lcsap.Ciphering_Data_Error_Report_Contents_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lcsap_ciphering_Set_ID,
+ { "ciphering-Set-ID", "lcsap.ciphering_Set_ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lcsap_ciphering_Key,
+ { "ciphering-Key", "lcsap.ciphering_Key",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lcsap_c0,
+ { "c0", "lcsap.c0",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lcsap_sib_Types,
+ { "sib-Types", "lcsap.sib_Types",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lcsap_validity_Start_Time,
+ { "validity-Start-Time", "lcsap.validity_Start_Time",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lcsap_validity_Duration,
+ { "validity-Duration", "lcsap.validity_Duration",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lcsap_tais_List,
+ { "tais-List", "lcsap.tais_List",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lcsap_storage_Outcome,
+ { "storage-Outcome", "lcsap.storage_Outcome",
+ FT_UINT32, BASE_DEC, VALS(lcsap_Storage_Outcome_vals), 0,
+ NULL, HFILL }},
{ &hf_lcsap_pLMNidentity,
{ "pLMNidentity", "lcsap.pLMNidentity",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -2728,6 +3125,14 @@ void proto_register_lcsap(void) {
{ "home-eNB-ID", "lcsap.home_eNB_ID",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_lcsap_short_macro_eNB_ID,
+ { "short-macro-eNB-ID", "lcsap.short_macro_eNB_ID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lcsap_long_macro_eNB_ID,
+ { "long-macro-eNB-ID", "lcsap.long_macro_eNB_ID",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_lcsap_point,
{ "point", "lcsap.point_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -2968,6 +3373,11 @@ void proto_register_lcsap(void) {
&ett_lcsap_ProtocolExtensionField,
&ett_lcsap_Additional_PositioningDataSet,
&ett_lcsap_Altitude_And_Direction,
+ &ett_lcsap_Ciphering_Data,
+ &ett_lcsap_Ciphering_Data_Ack,
+ &ett_lcsap_Ciphering_Data_Error_Report,
+ &ett_lcsap_Ciphering_Data_Set,
+ &ett_lcsap_Ciphering_Data_Error_Report_Contents,
&ett_lcsap_E_CGI,
&ett_lcsap_Ellipsoid_Point_With_Uncertainty_Ellipse,
&ett_lcsap_Ellipsoid_Point_With_Altitude,
@@ -3004,6 +3414,8 @@ void proto_register_lcsap(void) {
&ett_lcsap_Connectionless_Information,
&ett_lcsap_Reset_Request,
&ett_lcsap_Reset_Acknowledge,
+ &ett_lcsap_Ciphering_Key_Data,
+ &ett_lcsap_Ciphering_Key_Data_Result,
&ett_lcsap_LCS_AP_PDU,
&ett_lcsap_InitiatingMessage,
&ett_lcsap_SuccessfulOutcome,