aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorPascal Quantin <pascal.quantin@gmail.com>2018-01-18 22:37:39 +0100
committerAnders Broman <a.broman58@gmail.com>2018-01-19 04:06:32 +0000
commitecced16299baab9d3066308c577577b8422a0eb0 (patch)
treef677b75e90f01a8b7a6ef8c148e7da685948674b /epan
parent0870d4665d17ce2e7a1fe53362fb89fb0231be38 (diff)
S1AP: upgrade dissector to v15.0.0
Change-Id: I2c2a0f8093678769427ff4303ad41a5c97bdd05c Reviewed-on: https://code.wireshark.org/review/25379 Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com> Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn2
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-Constants.asn24
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-Containers.asn2
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-IEs.asn185
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn87
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn17
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn2
-rw-r--r--epan/dissectors/asn1/s1ap/packet-s1ap-template.c59
-rw-r--r--epan/dissectors/asn1/s1ap/s1ap.cnf105
-rw-r--r--epan/dissectors/packet-s1ap.c1087
10 files changed, 1424 insertions, 146 deletions
diff --git a/epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn b/epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn
index 9d151502c5..43406618e3 100644
--- a/epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn
+++ b/epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.413 V14.4.0 (2017-09)
+-- 3GPP TS 36.413 V15.0.0 (2017-12)
-- 9.3.5 Common Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/s1ap/S1AP-Constants.asn b/epan/dissectors/asn1/s1ap/S1AP-Constants.asn
index 70118989fa..c4f2468721 100644
--- a/epan/dissectors/asn1/s1ap/S1AP-Constants.asn
+++ b/epan/dissectors/asn1/s1ap/S1AP-Constants.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.413 V14.4.0 (2017-09)
+-- 3GPP TS 36.413 V15.0.0 (2017-12)
-- 9.3.6 Constant Definitions
-- **************************************************************
--
@@ -95,6 +95,7 @@ id-RetrieveUEInformation ProcedureCode ::= 58
id-UEInformationTransfer ProcedureCode ::= 59
id-eNBCPRelocationIndication ProcedureCode ::= 60
id-MMECPRelocationIndication ProcedureCode ::= 61
+id-SecondaryRATReport ProcedureCode ::= 62
-- **************************************************************
--
@@ -147,6 +148,12 @@ maxEARFCN INTEGER ::= 262143
maxnoofMBSFNAreaMDT INTEGER ::= 8
maxnoofRecommendedCells INTEGER ::= 16
maxnoofRecommendedENBs INTEGER ::= 16
+maxnooftimeperiods INTEGER ::= 2
+maxnoofCellIDforQMC INTEGER ::= 32
+maxnoofTAforQMC INTEGER ::= 8
+maxnoofPLMNforQMC INTEGER ::= 16
+
+
-- **************************************************************
--
@@ -421,5 +428,20 @@ id-EnhancedCoverageRestricted ProtocolIE-ID ::= 251
id-UE-Level-QoS-Parameters ProtocolIE-ID ::= 252
id-DL-CP-SecurityInformation ProtocolIE-ID ::= 253
id-UL-CP-SecurityInformation ProtocolIE-ID ::= 254
+id-extended-e-RAB-MaximumBitrateDL ProtocolIE-ID ::= 255
+id-extended-e-RAB-MaximumBitrateUL ProtocolIE-ID ::= 256
+id-extended-e-RAB-GuaranteedBitrateDL ProtocolIE-ID ::= 257
+id-extended-e-RAB-GuaranteedBitrateUL ProtocolIE-ID ::= 258
+id-extended-uEaggregateMaximumBitRateDL ProtocolIE-ID ::= 259
+id-extended-uEaggregateMaximumBitRateUL ProtocolIE-ID ::= 260
+id-NRrestriction ProtocolIE-ID ::= 261
+id-UEAppLayerMeasConfig ProtocolIE-ID ::= 262
+id-UE-Application-Layer-Measurement-Capability ProtocolIE-ID ::= 263
+id-SecondaryRATusageReportList ProtocolIE-ID ::= 264
+id-SecondaryRATusageReportItem ProtocolIE-ID ::= 265
+id-HandoverFlag ProtocolIE-ID ::= 266
+id-E-RABUsageReportItem ProtocolIE-ID ::= 267
+id-SecondaryRATusageDataRequst ProtocolIE-ID ::= 268
+id-NRUESecurityCapabilities ProtocolIE-ID ::= 269
END
diff --git a/epan/dissectors/asn1/s1ap/S1AP-Containers.asn b/epan/dissectors/asn1/s1ap/S1AP-Containers.asn
index c994c97ed5..3504bdccf4 100644
--- a/epan/dissectors/asn1/s1ap/S1AP-Containers.asn
+++ b/epan/dissectors/asn1/s1ap/S1AP-Containers.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.413 V14.4.0 (2017-09)
+-- 3GPP TS 36.413 V15.0.0 (2017-12)
-- 9.3.7 Container Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/s1ap/S1AP-IEs.asn b/epan/dissectors/asn1/s1ap/S1AP-IEs.asn
index 859c43eb6e..7ebe86fd34 100644
--- a/epan/dissectors/asn1/s1ap/S1AP-IEs.asn
+++ b/epan/dissectors/asn1/s1ap/S1AP-IEs.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.413 V14.4.0 (2017-09)
+-- 3GPP TS 36.413 V15.0.0 (2017-12)
-- 9.3.4 Information Element Definitions
-- **************************************************************
--
@@ -36,6 +36,7 @@ IMPORTS
id-eNBIndirectX2TransportLayerAddresses,
id-Muting-Availability-Indication,
id-Muting-Pattern-Information,
+ id-NRrestriction,
id-Synchronisation-Information,
id-uE-HistoryInformationFromTheUE,
id-LoggedMBSFNMDT,
@@ -49,6 +50,15 @@ IMPORTS
id-M6Configuration,
id-M7Configuration,
id-RAT-Type,
+ id-extended-e-RAB-MaximumBitrateDL,
+ id-extended-e-RAB-MaximumBitrateUL,
+ id-extended-e-RAB-GuaranteedBitrateDL,
+ id-extended-e-RAB-GuaranteedBitrateUL,
+ id-extended-uEaggregateMaximumBitRateDL,
+ id-extended-uEaggregateMaximumBitRateUL,
+ id-SecondaryRATusageReportItem,
+ id-E-RABUsageReportItem,
+ id-UEAppLayerMeasConfig,
maxnoofCSGs,
maxnoofE-RABs,
maxnoofErrors,
@@ -82,7 +92,11 @@ IMPORTS
maxEARFCN,
maxnoofCellsineNB,
maxnoofRecommendedCells,
- maxnoofRecommendedENBs
+ maxnoofRecommendedENBs,
+ maxnooftimeperiods,
+ maxnoofCellIDforQMC,
+ maxnoofTAforQMC,
+ maxnoofPLMNforQMC
@@ -122,6 +136,15 @@ AreaScopeOfMDT ::= CHOICE {
tAIBased TAIBasedMDT
}
+
+AreaScopeOfQMC ::= CHOICE {
+ cellBased CellBasedQMC,
+ tABased TABasedQMC,
+ tAIBased TAIBasedQMC,
+ pLMNAreaBased PLMNAreaBasedQMC,
+ ...
+}
+
AllocationAndRetentionPriority ::= SEQUENCE {
priorityLevel PriorityLevel,
pre-emptionCapability Pre-emptionCapability,
@@ -399,6 +422,18 @@ CellBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF EUTRAN-CGI
+CellBasedQMC::= SEQUENCE {
+ cellIdListforQMC CellIdListforQMC,
+ iE-Extensions ProtocolExtensionContainer { {CellBasedQMC-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellBasedQMC-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellIdListforQMC ::= SEQUENCE (SIZE(1..maxnoofCellIDforQMC)) OF EUTRAN-CGI
+
Cdma2000PDU ::= OCTET STRING
Cdma2000RATType ::= ENUMERATED {
@@ -793,6 +828,26 @@ E-RABLevelQoSParameters ::= SEQUENCE {
...
}
+E-RABUsageReportList ::= SEQUENCE (SIZE(1..maxnooftimeperiods)) OF ProtocolIE-SingleContainer { {E-RABUsageReportItemIEs} }
+
+E-RABUsageReportItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABUsageReportItem CRITICALITY ignore TYPE E-RABUsageReportItem PRESENCE mandatory },
+ ...
+}
+
+E-RABUsageReportItem ::= SEQUENCE {
+ startTimestamp OCTET STRING (SIZE(4)),
+ endTimestamp OCTET STRING (SIZE(4)),
+ usageCountUL INTEGER,
+ usageCountDL INTEGER,
+ iE-Extensions ProtocolExtensionContainer { { E-RABUsageReportItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABUsageReportItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
E-RABQoSParameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
...
}
@@ -849,6 +904,8 @@ ExpectedHOInterval ::= ENUMERATED {
...
}
+ExtendedBitRate ::= INTEGER (10000000001..4000000000000, ...)
+
ExtendedRNC-ID ::= INTEGER (4096..65535)
ExtendedRepetitionPeriod ::= INTEGER (4096..131071)
@@ -910,8 +967,12 @@ GBR-QosInformation ::= SEQUENCE {
}
GBR-QosInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
- ...
-}
+-- Extension for maximum bitrate > 10G bps --
+ { ID id-extended-e-RAB-MaximumBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}|
+ { ID id-extended-e-RAB-MaximumBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}|
+ { ID id-extended-e-RAB-GuaranteedBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}|
+ { ID id-extended-e-RAB-GuaranteedBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional},
+ ...}
GTP-TEID ::= OCTET STRING (SIZE (4))
@@ -941,6 +1002,12 @@ GWContextReleaseIndication ::= ENUMERATED {
-- H
+HandoverFlag ::= ENUMERATED {
+ handoverPreparation,
+ ...
+}
+
+
HandoverRestrictionList ::= SEQUENCE {
servingPLMN PLMNidentity,
equivalentPLMNs EPLMNs OPTIONAL,
@@ -952,6 +1019,7 @@ HandoverRestrictionList ::= SEQUENCE {
}
HandoverRestrictionList-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-NRrestriction CRITICALITY ignore EXTENSION NRrestriction PRESENCE optional},
...
}
@@ -1327,6 +1395,25 @@ NextPagingAreaScope ::= ENUMERATED {
...
}
+NRencryptionAlgorithms ::= BIT STRING (SIZE (16,...))
+NRintegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...))
+
+NRrestriction ::= ENUMERATED {
+ nRrestricted,
+ ...
+}
+
+NRUESecurityCapabilities ::= SEQUENCE {
+ nRencryptionAlgorithms NRencryptionAlgorithms,
+ nRintegrityProtectionAlgorithms NRintegrityProtectionAlgorithms,
+ iE-Extensions ProtocolExtensionContainer { { NRUESecurityCapabilities-ExtIEs} } OPTIONAL,
+...
+}
+
+NRUESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
NumberofBroadcastRequest ::= INTEGER (0..65535)
NumberOfBroadcasts ::= INTEGER (0..65535)
@@ -1423,6 +1510,18 @@ M1PeriodicReporting-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
PLMNidentity ::= TBCD-STRING
+PLMNAreaBasedQMC ::= SEQUENCE {
+ plmnListforQMC PLMNListforQMC,
+ iE-Extensions ProtocolExtensionContainer { {PLMNAreaBasedQMC-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PLMNAreaBasedQMC-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PLMNListforQMC ::= SEQUENCE (SIZE(1..maxnoofPLMNforQMC)) OF PLMNidentity
+
Port-Number ::= OCTET STRING (SIZE (2))
Pre-emptionCapability ::= ENUMERATED {
@@ -1653,6 +1752,36 @@ SecurityContext-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
...
}
+SecondaryRATType ::= ENUMERATED {
+ nR,
+ ...
+}
+
+
+SecondaryRATusageDataRequst ::= ENUMERATED {
+ requested,
+ ...
+}
+
+SecondaryRATusageReportList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {SecondaryRATusageReportItemIEs} }
+
+SecondaryRATusageReportItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SecondaryRATusageReportItem CRITICALITY ignore TYPE SecondaryRATusageReportItem PRESENCE mandatory },
+ ...
+}
+
+SecondaryRATusageReportItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ secondaryRATType SecondaryRATType,
+ e-RABUsageReportList E-RABUsageReportList,
+ iE-Extensions ProtocolExtensionContainer { { SecondaryRATusageReportItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SecondaryRATusageReportItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
SerialNumber ::= BIT STRING (SIZE (16))
SONInformation ::= CHOICE{
@@ -1910,6 +2039,30 @@ TABasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC
+TABasedQMC ::= SEQUENCE {
+ tAListforQMC TAListforQMC,
+ iE-Extensions ProtocolExtensionContainer { {TABasedQMC-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TABasedQMC-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAC
+
+TAIBasedQMC ::= SEQUENCE {
+ tAIListforQMC TAIListforQMC,
+ iE-Extensions ProtocolExtensionContainer { {TAIBasedQMC-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAIBasedQMC-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAIListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAI
+
CompletedCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CompletedCellinTAI-Item
CompletedCellinTAI-Item ::= SEQUENCE{
@@ -2016,7 +2169,9 @@ traceCollectionEntityIPAddress TransportLayerAddress,
TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
-- Extension for Rel-10 to support MDT --
- { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional },
+ { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional }|
+-- Extension for Rel-15 to support QMC –
+ { ID id-UEAppLayerMeasConfig CRITICALITY ignore EXTENSION UEAppLayerMeasConfig PRESENCE optional },
...
}
@@ -2063,6 +2218,20 @@ UEAggregateMaximumBitrate ::= SEQUENCE {
}
UEAggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extension for maximum bitrate > 10G bps --
+ { ID id-extended-uEaggregateMaximumBitRateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}|
+ { ID id-extended-uEaggregateMaximumBitRateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional},
+ ...
+}
+
+UEAppLayerMeasConfig ::= SEQUENCE {
+ containerForAppLayerMeasConfig OCTET STRING (SIZE(1..1000)),
+ areaScopeOfQMC AreaScopeOfQMC,
+ iE-Extensions ProtocolExtensionContainer { {UEAppLayerMeasConfig-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEAppLayerMeasConfig-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
...
}
@@ -2177,6 +2346,12 @@ UEUserPlaneCIoTSupportIndicator ::= ENUMERATED {
...
}
+UE-Application-Layer-Measurement-Capability ::= BIT STRING (SIZE (8))
+
+-- First bit: QoE Measurement
+
+-- Note that undefined bits are considered as a spare bit and spare bits shall be set to 0 by the transmitter and shall be ignored by the receiver.
+
-- V
VoiceSupportMatchIndicator ::= ENUMERATED {
diff --git a/epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn b/epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn
index eb49702899..72be202bc1 100644
--- a/epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn
+++ b/epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.413 V14.4.0 (2017-09)
+-- 3GPP TS 36.413 V15.0.0 (2017-12)
-- 9.3.3 PDU Definitions
-- **************************************************************
--
@@ -163,7 +163,12 @@ IMPORTS
Coverage-Level,
EnhancedCoverageRestricted,
DL-CP-SecurityInformation,
- UL-CP-SecurityInformation
+ UL-CP-SecurityInformation,
+ SecondaryRATusageDataRequst,
+ SecondaryRATusageReportList,
+ HandoverFlag,
+ NRUESecurityCapabilities,
+ UE-Application-Layer-Measurement-Capability
@@ -397,7 +402,12 @@ FROM S1AP-Containers
id-EnhancedCoverageRestricted,
id-UE-Level-QoS-Parameters,
id-DL-CP-SecurityInformation,
- id-UL-CP-SecurityInformation
+ id-UL-CP-SecurityInformation,
+ id-SecondaryRATusageDataRequst,
+ id-SecondaryRATusageReportList,
+ id-HandoverFlag,
+ id-NRUESecurityCapabilities,
+ id-UE-Application-Layer-Measurement-Capability
FROM S1AP-Constants;
@@ -559,7 +569,8 @@ HandoverRequestIEs S1AP-PROTOCOL-IES ::= {
{ ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}|
{ ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}|
{ ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}|
- { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional},
+ { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}|
+ { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional},
...
}
@@ -728,7 +739,8 @@ PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= {
-- Extension for Release 11 to support BBAI --
{ ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}|
{ ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}|
- { ID id-RRC-Resume-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE optional },
+ { ID id-RRC-Resume-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE optional }|
+ { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional},
...
}
@@ -776,7 +788,8 @@ PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
{ ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}|
{ ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}|
{ ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}|
- { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional},
+ { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}|
+ { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional},
...
}
@@ -976,7 +989,8 @@ E-RABModifyRequestIEs S1AP-PROTOCOL-IES ::= {
{ ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
{ ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
{ ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }|
- { ID id-E-RABToBeModifiedListBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedListBearerModReq PRESENCE mandatory },
+ { ID id-E-RABToBeModifiedListBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedListBearerModReq PRESENCE mandatory }|
+ { ID id-SecondaryRATusageDataRequst CRITICALITY ignore TYPE SecondaryRATusageDataRequst PRESENCE optional },
...
}
@@ -1019,7 +1033,8 @@ E-RABModifyResponseIEs S1AP-PROTOCOL-IES ::= {
{ ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
{ ID id-E-RABModifyListBearerModRes CRITICALITY ignore TYPE E-RABModifyListBearerModRes PRESENCE optional }|
{ ID id-E-RABFailedToModifyList CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
- { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
+ { ID id-SecondaryRATusageReportList CRITICALITY ignore TYPE SecondaryRATusageReportList PRESENCE optional },
...
}
@@ -1090,7 +1105,8 @@ E-RABReleaseResponseIEs S1AP-PROTOCOL-IES ::= {
{ ID id-E-RABFailedToReleaseList CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
-- Extension for Release 12 to support User Location Information --
- { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional },
+ { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }|
+ { ID id-SecondaryRATusageReportList CRITICALITY ignore TYPE SecondaryRATusageReportList PRESENCE optional },
...
}
@@ -1137,7 +1153,8 @@ E-RABReleaseIndicationIEs S1AP-PROTOCOL-IES ::= {
{ ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
{ ID id-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }|
-- Extension for Release 12 to support User Location Information --
- { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional },
+ { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }|
+ { ID id-SecondaryRATusageReportList CRITICALITY ignore TYPE SecondaryRATusageReportList PRESENCE optional },
...
}
-- **************************************************************
@@ -1183,7 +1200,8 @@ InitialContextSetupRequestIEs S1AP-PROTOCOL-IES ::= {
{ ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}|
{ ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}|
{ ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}|
- { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional},
+ { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}|
+ { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional},
...
}
@@ -1349,10 +1367,11 @@ UEContextReleaseRequest ::= SEQUENCE {
}
UEContextReleaseRequest-IEs S1AP-PROTOCOL-IES ::= {
- { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
- { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
- { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
- { ID id-GWContextReleaseIndication CRITICALITY reject TYPE GWContextReleaseIndication PRESENCE optional },
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-GWContextReleaseIndication CRITICALITY reject TYPE GWContextReleaseIndication PRESENCE optional }|
+ { ID id-SecondaryRATusageReportList CRITICALITY ignore TYPE SecondaryRATusageReportList PRESENCE optional },
...
}
@@ -1393,7 +1412,8 @@ UEContextReleaseComplete-IEs S1AP-PROTOCOL-IES ::= {
-- Extension for Release 13 to support Paging Optimisation
{ ID id-InformationOnRecommendedCellsAndENBsForPaging CRITICALITY ignore TYPE InformationOnRecommendedCellsAndENBsForPaging PRESENCE optional}|
-- Extension for Release 13 to support coverage enhancement paging -
- { ID id-CellIdentifierAndCELevelForCECapableUEs CRITICALITY ignore TYPE CellIdentifierAndCELevelForCECapableUEs PRESENCE optional},
+ { ID id-CellIdentifierAndCELevelForCECapableUEs CRITICALITY ignore TYPE CellIdentifierAndCELevelForCECapableUEs PRESENCE optional}|
+ { ID id-SecondaryRATusageReportList CRITICALITY ignore TYPE SecondaryRATusageReportList PRESENCE optional },
...
}
@@ -1430,7 +1450,8 @@ UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= {
{ ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}|
{ ID id-SRVCCOperationNotPossible CRITICALITY ignore TYPE SRVCCOperationNotPossible PRESENCE optional}|
{ ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}|
- { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional},
+ { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}|
+ { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional},
...
}
-- **************************************************************
@@ -1575,7 +1596,8 @@ InitialUEMessage-IEs S1AP-PROTOCOL-IES ::= {
{ ID id-UE-Usage-Type CRITICALITY ignore TYPE UE-Usage-Type PRESENCE optional}|
{ ID id-CE-mode-B-SupportIndicator CRITICALITY ignore TYPE CE-mode-B-SupportIndicator PRESENCE optional}|
{ ID id-DCN-ID CRITICALITY ignore TYPE DCN-ID PRESENCE optional}|
- { ID id-Coverage-Level CRITICALITY ignore TYPE Coverage-Level PRESENCE optional},
+ { ID id-Coverage-Level CRITICALITY ignore TYPE Coverage-Level PRESENCE optional}|
+ { ID id-UE-Application-Layer-Measurement-Capability CRITICALITY ignore TYPE UE-Application-Layer-Measurement-Capability PRESENCE optional},
...
}
@@ -2028,7 +2050,8 @@ UECapabilityInfoIndicationIEs S1AP-PROTOCOL-IES ::= {
{ ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
{ ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
{ ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE mandatory}|
- { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional},
+ { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional}|
+ { ID id-UE-Application-Layer-Measurement-Capability CRITICALITY ignore TYPE UE-Application-Layer-Measurement-Capability PRESENCE optional},
...
}
@@ -2629,7 +2652,8 @@ E-RABModificationIndicationIEs S1AP-PROTOCOL-IES ::= {
{ ID id-E-RABNotToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABNotToBeModifiedListBearerModInd PRESENCE optional}|
{ ID id-CSGMembershipInfo CRITICALITY reject TYPE CSGMembershipInfo PRESENCE optional}|
-- Extension for Release 11 to support BBAI --
- { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional},
+ { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}|
+ { ID id-SecondaryRATusageReportList CRITICALITY ignore TYPE SecondaryRATusageReportList PRESENCE optional },
...
}
@@ -2790,7 +2814,8 @@ UEContextSuspendRequestIEs S1AP-PROTOCOL-IES ::= {
{ ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
{ ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
{ ID id-InformationOnRecommendedCellsAndENBsForPaging CRITICALITY ignore TYPE InformationOnRecommendedCellsAndENBsForPaging PRESENCE optional}|
- { ID id-CellIdentifierAndCELevelForCECapableUEs CRITICALITY ignore TYPE CellIdentifierAndCELevelForCECapableUEs PRESENCE optional},
+ { ID id-CellIdentifierAndCELevelForCECapableUEs CRITICALITY ignore TYPE CellIdentifierAndCELevelForCECapableUEs PRESENCE optional}|
+ { ID id-SecondaryRATusageReportList CRITICALITY ignore TYPE SecondaryRATusageReportList PRESENCE optional },
...
}
@@ -3007,4 +3032,24 @@ MMECPRelocationIndicationIEs S1AP-PROTOCOL-IES ::= {
...
}
+
+-- **************************************************************
+--
+-- Secondary RAT Report
+--
+-- **************************************************************
+
+SecondaryRATReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { SecondaryRATReportIEs} },
+ ...
+}
+
+SecondaryRATReportIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-SecondaryRATusageReportList CRITICALITY ignore TYPE SecondaryRATusageReportList PRESENCE optional}|
+ { ID id-HandoverFlag CRITICALITY ignore TYPE HandoverFlag PRESENCE optional},
+ ...
+}
+
END
diff --git a/epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn b/epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn
index af677ce9a7..bab664ed51 100644
--- a/epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn
+++ b/epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.413 V14.4.0 (2017-09)
+-- 3GPP TS 36.413 V15.0.0 (2017-12)
-- 9.3.2 Elementary Procedure Definitions
-- **************************************************************
--
@@ -116,7 +116,8 @@ FROM S1AP-CommonDataTypes
RetrieveUEInformation,
UEInformationTransfer,
ENBCPRelocationIndication,
- MMECPRelocationIndication
+ MMECPRelocationIndication,
+ SecondaryRATReport
FROM S1AP-PDU-Contents
@@ -182,7 +183,8 @@ FROM S1AP-PDU-Contents
id-RetrieveUEInformation,
id-UEInformationTransfer,
id-eNBCPRelocationIndication,
- id-MMECPRelocationIndication
+ id-MMECPRelocationIndication,
+ id-SecondaryRATReport
FROM S1AP-Constants;
@@ -320,7 +322,8 @@ S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= {
retrieveUEInformation |
uEInformationTransfer |
eNBCPRelocationIndication |
- mMECPRelocationIndication
+ mMECPRelocationIndication |
+ secondaryRATReport
}
-- **************************************************************
@@ -729,5 +732,11 @@ mMECPRelocationIndication S1AP-ELEMENTARY-PROCEDURE ::= {
CRITICALITY reject
}
+secondaryRATReport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SecondaryRATReport
+ PROCEDURE CODE id-SecondaryRATReport
+ CRITICALITY ignore
+}
+
END
diff --git a/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn b/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn
index 693510b059..0ec2c80ab5 100644
--- a/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn
+++ b/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.413 V14.4.0 (2017-09)
+-- 3GPP TS 36.413 V15.0.0 (2017-12)
-- B.2 ASN.1 definition
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/s1ap/packet-s1ap-template.c b/epan/dissectors/asn1/s1ap/packet-s1ap-template.c
index 54107edc9c..ac6e600889 100644
--- a/epan/dissectors/asn1/s1ap/packet-s1ap-template.c
+++ b/epan/dissectors/asn1/s1ap/packet-s1ap-template.c
@@ -22,7 +22,7 @@
*
* Based on the RANAP dissector
*
- * References: 3GPP TS 36.413 V14.4.0 (2017-09)
+ * References: 3GPP TS 36.413 V15.0.0 (2017-12)
*/
#include "config.h"
@@ -49,6 +49,7 @@
#include "packet-gsm_map.h"
#include "packet-cell_broadcast.h"
#include "packet-gsm_a_common.h"
+#include "packet-ntp.h"
#define PNAME "S1 Application Protocol"
#define PSNAME "S1AP"
@@ -104,6 +105,16 @@ static int hf_s1ap_measurementsToActivate_M7 = -1;
static int hf_s1ap_MDT_Location_Info_GNSS = -1;
static int hf_s1ap_MDT_Location_Info_E_CID = -1;
static int hf_s1ap_MDT_Location_Info_Reserved = -1;
+static int hf_s1ap_NRencryptionAlgorithms_NEA1 = -1;
+static int hf_s1ap_NRencryptionAlgorithms_NEA2 = -1;
+static int hf_s1ap_NRencryptionAlgorithms_NEA3 = -1;
+static int hf_s1ap_NRencryptionAlgorithms_Reserved = -1;
+static int hf_s1ap_NRintegrityProtectionAlgorithms_NIA1 = -1;
+static int hf_s1ap_NRintegrityProtectionAlgorithms_NIA2 = -1;
+static int hf_s1ap_NRintegrityProtectionAlgorithms_NIA3 = -1;
+static int hf_s1ap_NRintegrityProtectionAlgorithms_Reserved = -1;
+static int hf_s1ap_UE_Application_Layer_Measurement_Capability_QoE_Measurement = -1;
+static int hf_s1ap_UE_Application_Layer_Measurement_Capability_Reserved = -1;
#include "packet-s1ap-hf.c"
/* Initialize the subtree pointers */
@@ -136,6 +147,9 @@ static int ett_s1ap_MeasurementsToActivate = -1;
static int ett_s1ap_MDT_Location_Info = -1;
static int ett_s1ap_IMSI = -1;
static int ett_s1ap_NASSecurityParameters = -1;
+static int ett_s1ap_NRencryptionAlgorithms = -1;
+static int ett_s1ap_NRintegrityProtectionAlgorithms = -1;
+static int ett_s1ap_UE_Application_Layer_Measurement_Capability = -1;
#include "packet-s1ap-ett.c"
static expert_field ei_s1ap_number_pages_le15 = EI_INIT;
@@ -615,6 +629,46 @@ void proto_register_s1ap(void) {
{ "Reserved", "s1ap.MDT_Location_Info.Reserved",
FT_UINT8, BASE_HEX, NULL, 0x3f,
NULL, HFILL }},
+ { &hf_s1ap_NRencryptionAlgorithms_NEA1,
+ { "128-NEA1", "s1ap.NRencryptionAlgorithms.NEA1",
+ FT_BOOLEAN, 16, TFS(&tfs_supported_not_supported), 0x8000,
+ NULL, HFILL }},
+ { &hf_s1ap_NRencryptionAlgorithms_NEA2,
+ { "128-NEA2", "s1ap.NRencryptionAlgorithms.NEA2",
+ FT_BOOLEAN, 16, TFS(&tfs_supported_not_supported), 0x4000,
+ NULL, HFILL }},
+ { &hf_s1ap_NRencryptionAlgorithms_NEA3,
+ { "128-NEA3", "s1ap.NRencryptionAlgorithms.NEA3",
+ FT_BOOLEAN, 16, TFS(&tfs_supported_not_supported), 0x2000,
+ NULL, HFILL }},
+ { &hf_s1ap_NRencryptionAlgorithms_Reserved,
+ { "Reserved", "s1ap.NRencryptionAlgorithms.Reserved",
+ FT_UINT16, BASE_HEX, NULL, 0x1fff,
+ NULL, HFILL }},
+ { &hf_s1ap_NRintegrityProtectionAlgorithms_NIA1,
+ { "128-NIA1", "s1ap.NRintegrityProtectionAlgorithms.NIA1",
+ FT_BOOLEAN, 16, TFS(&tfs_supported_not_supported), 0x8000,
+ NULL, HFILL }},
+ { &hf_s1ap_NRintegrityProtectionAlgorithms_NIA2,
+ { "128-NIA2", "s1ap.NRintegrityProtectionAlgorithms.NIA2",
+ FT_BOOLEAN, 16, TFS(&tfs_supported_not_supported), 0x4000,
+ NULL, HFILL }},
+ { &hf_s1ap_NRintegrityProtectionAlgorithms_NIA3,
+ { "128-NIA3", "s1ap.NRintegrityProtectionAlgorithms.NIA3",
+ FT_BOOLEAN, 16, TFS(&tfs_supported_not_supported), 0x2000,
+ NULL, HFILL }},
+ { &hf_s1ap_NRintegrityProtectionAlgorithms_Reserved,
+ { "Reserved", "s1ap.NRintegrityProtectionAlgorithms.Reserved",
+ FT_UINT16, BASE_HEX, NULL, 0x1fff,
+ NULL, HFILL }},
+ { &hf_s1ap_UE_Application_Layer_Measurement_Capability_QoE_Measurement,
+ { "QoE Measurement", "s1ap.UE_Application_Layer_Measurement_Capability.QoE_Measurement",
+ FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x80,
+ NULL, HFILL }},
+ { &hf_s1ap_UE_Application_Layer_Measurement_Capability_Reserved,
+ { "Reserved", "s1ap.UE_Application_Layer_Measurement_Capability.Reserved",
+ FT_UINT8, BASE_HEX, NULL, 0x7f,
+ NULL, HFILL }},
#include "packet-s1ap-hfarr.c"
};
@@ -649,6 +703,9 @@ void proto_register_s1ap(void) {
&ett_s1ap_MDT_Location_Info,
&ett_s1ap_IMSI,
&ett_s1ap_NASSecurityParameters,
+ &ett_s1ap_NRencryptionAlgorithms,
+ &ett_s1ap_NRintegrityProtectionAlgorithms,
+ &ett_s1ap_UE_Application_Layer_Measurement_Capability,
#include "packet-s1ap-ettarr.c"
};
diff --git a/epan/dissectors/asn1/s1ap/s1ap.cnf b/epan/dissectors/asn1/s1ap/s1ap.cnf
index eaa3f7939b..51c7fb5efe 100644
--- a/epan/dissectors/asn1/s1ap/s1ap.cnf
+++ b/epan/dissectors/asn1/s1ap/s1ap.cnf
@@ -958,6 +958,76 @@ ExpectedActivityPeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
#.TYPE_ATTR
ExpectedIdlePeriod DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+#.FN_BODY E-RABUsageReportItem/startTimestamp VAL_PTR = &timestamp_tvb
+ tvbuff_t *timestamp_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR E-RABUsageReportItem/startTimestamp
+ if (timestamp_tvb) {
+ proto_item_append_text(actx->created_item, " (%s)", tvb_ntp_fmt_ts_sec(timestamp_tvb, 0));
+ }
+
+#.FN_BODY E-RABUsageReportItem/endTimestamp VAL_PTR = &timestamp_tvb
+ tvbuff_t *timestamp_tvb = NULL;
+%(DEFAULT_BODY)s
+
+#.FN_FTR E-RABUsageReportItem/endTimestamp
+ if (timestamp_tvb) {
+ proto_item_append_text(actx->created_item, " (%s)", tvb_ntp_fmt_ts_sec(timestamp_tvb, 0));
+ }
+
+#.TYPE_ATTR
+E-RABUsageReportItem/usageCountUL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_octet_octets
+
+#.TYPE_ATTR
+E-RABUsageReportItem/usageCountDL DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_octet_octets
+
+#.TYPE_ATTR
+ExtendedBitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec
+
+#.FN_BODY NRencryptionAlgorithms VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb) {
+ const gint *fields[] = {
+ &hf_s1ap_NRencryptionAlgorithms_NEA1,
+ &hf_s1ap_NRencryptionAlgorithms_NEA2,
+ &hf_s1ap_NRencryptionAlgorithms_NEA3,
+ &hf_s1ap_NRencryptionAlgorithms_Reserved,
+ NULL
+ };
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_NRencryptionAlgorithms);
+ proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 2, fields, ENC_BIG_ENDIAN);
+ }
+
+#.FN_BODY NRintegrityProtectionAlgorithms VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb) {
+ const gint *fields[] = {
+ &hf_s1ap_NRintegrityProtectionAlgorithms_NIA1,
+ &hf_s1ap_NRintegrityProtectionAlgorithms_NIA2,
+ &hf_s1ap_NRintegrityProtectionAlgorithms_NIA3,
+ &hf_s1ap_NRintegrityProtectionAlgorithms_Reserved,
+ NULL
+ };
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_NRintegrityProtectionAlgorithms);
+ proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 2, fields, ENC_BIG_ENDIAN);
+ }
+
+#.FN_BODY UE-Application-Layer-Measurement-Capability VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if(parameter_tvb){
+ const gint *fields[] = {
+ &hf_s1ap_UE_Application_Layer_Measurement_Capability_QoE_Measurement,
+ &hf_s1ap_UE_Application_Layer_Measurement_Capability_Reserved,
+ NULL
+ };
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_UE_Application_Layer_Measurement_Capability);
+ proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 1, fields, ENC_BIG_ENDIAN);
+ }
+
#.TYPE_ATTR
TAC TYPE = FT_UINT16 DISPLAY = BASE_DEC_HEX
#.FN_BODY TAC VAL_PTR = &parameter_tvb HF_INDEX = -1
@@ -1149,6 +1219,7 @@ id-RetrieveUEInformation ProcedureCode
id-UEInformationTransfer ProcedureCode
id-eNBCPRelocationIndication ProcedureCode
id-MMECPRelocationIndication ProcedureCode
+id-SecondaryRATReport ProcedureCode
# ProtocolIE-ID
id-MME-UE-S1AP-ID ProtocolIE-ID
@@ -1388,6 +1459,21 @@ id-EnhancedCoverageRestricted ProtocolIE-ID
id-UE-Level-QoS-Parameters ProtocolIE-ID
id-DL-CP-SecurityInformation ProtocolIE-ID
id-UL-CP-SecurityInformation ProtocolIE-ID
+id-extended-e-RAB-MaximumBitrateDL ProtocolIE-ID
+id-extended-e-RAB-MaximumBitrateUL ProtocolIE-ID
+id-extended-e-RAB-GuaranteedBitrateDL ProtocolIE-ID
+id-extended-e-RAB-GuaranteedBitrateUL ProtocolIE-ID
+id-extended-uEaggregateMaximumBitRateDL ProtocolIE-ID
+id-extended-uEaggregateMaximumBitRateUL ProtocolIE-ID
+id-NRrestriction ProtocolIE-ID
+id-UEAppLayerMeasConfig ProtocolIE-ID
+id-UE-Application-Layer-Measurement-Capability ProtocolIE-ID
+id-SecondaryRATusageReportList ProtocolIE-ID
+id-SecondaryRATusageReportItem ProtocolIE-ID
+id-HandoverFlag ProtocolIE-ID
+id-E-RABUsageReportItem ProtocolIE-ID
+id-SecondaryRATusageDataRequst ProtocolIE-ID
+id-NRUESecurityCapabilities ProtocolIE-ID
#.END
#.REGISTER
@@ -1593,6 +1679,13 @@ ServedDCNs N s1ap.ies id-ServedDCNs
DL-CP-SecurityInformation N s1ap.ies id-DL-CP-SecurityInformation
E-RABLevelQoSParameters N s1ap.ies id-UE-Level-QoS-Parameters
UL-CP-SecurityInformation N s1ap.ies id-UL-CP-SecurityInformation
+E-RABUsageReportItem N s1ap.ies id-E-RABUsageReportItem
+SecondaryRATusageReportItem N s1ap.ies id-SecondaryRATusageReportItem
+NRUESecurityCapabilities N s1ap.ies id-NRUESecurityCapabilities
+SecondaryRATusageDataRequst N s1ap.ies id-SecondaryRATusageDataRequst
+SecondaryRATusageReportList N s1ap.ies id-SecondaryRATusageReportList
+UE-Application-Layer-Measurement-Capability N s1ap.ies id-UE-Application-Layer-Measurement-Capability
+HandoverFlag N s1ap.ies id-HandoverFlag
#S1AP-PROTOCOL-IES-PAIR
#RAB-SetupOrModifyItemFirst N s1ap.ies.pair.first id-RAB-SetupOrModifyItem
@@ -1635,6 +1728,14 @@ M6Configuration N s1ap.extension id-M6Configuration
M7Configuration N s1ap.extension id-M7Configuration
RAT-Type N s1ap.extension id-RAT-Type
BearerType N s1ap.extension id-BearerType
+ExtendedBitRate N s1ap.extension id-extended-e-RAB-MaximumBitrateDL
+ExtendedBitRate N s1ap.extension id-extended-e-RAB-MaximumBitrateUL
+ExtendedBitRate N s1ap.extension id-extended-e-RAB-GuaranteedBitrateDL
+ExtendedBitRate N s1ap.extension id-extended-e-RAB-GuaranteedBitrateUL
+NRrestriction N s1ap.extension id-NRrestriction
+UEAppLayerMeasConfig N s1ap.extension id-UEAppLayerMeasConfig
+ExtendedBitRate N s1ap.extension id-extended-uEaggregateMaximumBitRateDL
+ExtendedBitRate N s1ap.extension id-extended-uEaggregateMaximumBitRateUL
#S1AP-ELEMENTARY-PROCEDURE
HandoverRequired N s1ap.proc.imsg id-HandoverPreparation
@@ -1791,6 +1892,8 @@ ENBCPRelocationIndication N s1ap.proc.imsg id-eNBCPRelocationIndic
MMECPRelocationIndication N s1ap.proc.imsg id-MMECPRelocationIndication
+SecondaryRATReport N s1ap.proc.imsg id-SecondaryRATReport
+
#.FN_HDR HandoverRequired
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequired");
@@ -1976,6 +2079,8 @@ MMECPRelocationIndication N s1ap.proc.imsg id-MMECPRelocationIndic
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBCPRelocationIndication");
#.FN_HDR MMECPRelocationIndication
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMECPRelocationIndication");
+#.FN_HDR SecondaryRATReport
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SecondaryRATReport");
#.END
# Whenever a Cause appears, look up the reason and show it in the Info column
diff --git a/epan/dissectors/packet-s1ap.c b/epan/dissectors/packet-s1ap.c
index 2023a55972..5e7eea1e2c 100644
--- a/epan/dissectors/packet-s1ap.c
+++ b/epan/dissectors/packet-s1ap.c
@@ -30,7 +30,7 @@
*
* Based on the RANAP dissector
*
- * References: 3GPP TS 36.413 V14.4.0 (2017-09)
+ * References: 3GPP TS 36.413 V15.0.0 (2017-12)
*/
#include "config.h"
@@ -57,6 +57,7 @@
#include "packet-gsm_map.h"
#include "packet-cell_broadcast.h"
#include "packet-gsm_a_common.h"
+#include "packet-ntp.h"
#define PNAME "S1 Application Protocol"
#define PSNAME "S1AP"
@@ -114,6 +115,10 @@ static dissector_handle_t bssgp_handle;
#define maxnoofMBSFNAreaMDT 8
#define maxnoofRecommendedCells 16
#define maxnoofRecommendedENBs 16
+#define maxnooftimeperiods 2
+#define maxnoofCellIDforQMC 32
+#define maxnoofTAforQMC 8
+#define maxnoofPLMNforQMC 16
#define maxnoofIRATReportingCells 128
#define maxnoofcandidateCells 16
#define maxnoofCellineNB 256
@@ -180,7 +185,8 @@ typedef enum _ProcedureCode_enum {
id_RetrieveUEInformation = 58,
id_UEInformationTransfer = 59,
id_eNBCPRelocationIndication = 60,
- id_MMECPRelocationIndication = 61
+ id_MMECPRelocationIndication = 61,
+ id_SecondaryRATReport = 62
} ProcedureCode_enum;
typedef enum _ProtocolIE_ID_enum {
@@ -438,7 +444,22 @@ typedef enum _ProtocolIE_ID_enum {
id_EnhancedCoverageRestricted = 251,
id_UE_Level_QoS_Parameters = 252,
id_DL_CP_SecurityInformation = 253,
- id_UL_CP_SecurityInformation = 254
+ id_UL_CP_SecurityInformation = 254,
+ id_extended_e_RAB_MaximumBitrateDL = 255,
+ id_extended_e_RAB_MaximumBitrateUL = 256,
+ id_extended_e_RAB_GuaranteedBitrateDL = 257,
+ id_extended_e_RAB_GuaranteedBitrateUL = 258,
+ id_extended_uEaggregateMaximumBitRateDL = 259,
+ id_extended_uEaggregateMaximumBitRateUL = 260,
+ id_NRrestriction = 261,
+ id_UEAppLayerMeasConfig = 262,
+ id_UE_Application_Layer_Measurement_Capability = 263,
+ id_SecondaryRATusageReportList = 264,
+ id_SecondaryRATusageReportItem = 265,
+ id_HandoverFlag = 266,
+ id_E_RABUsageReportItem = 267,
+ id_SecondaryRATusageDataRequst = 268,
+ id_NRUESecurityCapabilities = 269
} ProtocolIE_ID_enum;
typedef enum _RAT_Type_enum {
@@ -446,7 +467,7 @@ typedef enum _RAT_Type_enum {
} RAT_Type_enum;
/*--- End of included file: packet-s1ap-val.h ---*/
-#line 68 "./asn1/s1ap/packet-s1ap-template.c"
+#line 69 "./asn1/s1ap/packet-s1ap-template.c"
/* Initialize the protocol and registered fields */
static int proto_s1ap = -1;
@@ -486,6 +507,16 @@ static int hf_s1ap_measurementsToActivate_M7 = -1;
static int hf_s1ap_MDT_Location_Info_GNSS = -1;
static int hf_s1ap_MDT_Location_Info_E_CID = -1;
static int hf_s1ap_MDT_Location_Info_Reserved = -1;
+static int hf_s1ap_NRencryptionAlgorithms_NEA1 = -1;
+static int hf_s1ap_NRencryptionAlgorithms_NEA2 = -1;
+static int hf_s1ap_NRencryptionAlgorithms_NEA3 = -1;
+static int hf_s1ap_NRencryptionAlgorithms_Reserved = -1;
+static int hf_s1ap_NRintegrityProtectionAlgorithms_NIA1 = -1;
+static int hf_s1ap_NRintegrityProtectionAlgorithms_NIA2 = -1;
+static int hf_s1ap_NRintegrityProtectionAlgorithms_NIA3 = -1;
+static int hf_s1ap_NRintegrityProtectionAlgorithms_Reserved = -1;
+static int hf_s1ap_UE_Application_Layer_Measurement_Capability_QoE_Measurement = -1;
+static int hf_s1ap_UE_Application_Layer_Measurement_Capability_Reserved = -1;
/*--- Included file: packet-s1ap-hf.c ---*/
#line 1 "./asn1/s1ap/packet-s1ap-hf.c"
@@ -537,14 +568,17 @@ static int hf_s1ap_E_RABInformationListItem_PDU = -1; /* E_RABInformationListIt
static int hf_s1ap_E_RABList_PDU = -1; /* E_RABList */
static int hf_s1ap_E_RABItem_PDU = -1; /* E_RABItem */
static int hf_s1ap_E_RABLevelQoSParameters_PDU = -1; /* E_RABLevelQoSParameters */
+static int hf_s1ap_E_RABUsageReportItem_PDU = -1; /* E_RABUsageReportItem */
static int hf_s1ap_EUTRAN_CGI_PDU = -1; /* EUTRAN_CGI */
static int hf_s1ap_EUTRANRoundTripDelayEstimationInfo_PDU = -1; /* EUTRANRoundTripDelayEstimationInfo */
static int hf_s1ap_ExpectedUEBehaviour_PDU = -1; /* ExpectedUEBehaviour */
+static int hf_s1ap_ExtendedBitRate_PDU = -1; /* ExtendedBitRate */
static int hf_s1ap_ExtendedRepetitionPeriod_PDU = -1; /* ExtendedRepetitionPeriod */
static int hf_s1ap_Extended_UEIdentityIndexValue_PDU = -1; /* Extended_UEIdentityIndexValue */
static int hf_s1ap_GUMMEI_PDU = -1; /* GUMMEI */
static int hf_s1ap_GUMMEIType_PDU = -1; /* GUMMEIType */
static int hf_s1ap_GWContextReleaseIndication_PDU = -1; /* GWContextReleaseIndication */
+static int hf_s1ap_HandoverFlag_PDU = -1; /* HandoverFlag */
static int hf_s1ap_HandoverRestrictionList_PDU = -1; /* HandoverRestrictionList */
static int hf_s1ap_HandoverType_PDU = -1; /* HandoverType */
static int hf_s1ap_Masked_IMEISV_PDU = -1; /* Masked_IMEISV */
@@ -580,6 +614,8 @@ static int hf_s1ap_NASSecurityParameterstoE_UTRAN_PDU = -1; /* NASSecurityParam
static int hf_s1ap_NB_IoT_DefaultPagingDRX_PDU = -1; /* NB_IoT_DefaultPagingDRX */
static int hf_s1ap_NB_IoT_Paging_eDRXInformation_PDU = -1; /* NB_IoT_Paging_eDRXInformation */
static int hf_s1ap_NB_IoT_UEIdentityIndexValue_PDU = -1; /* NB_IoT_UEIdentityIndexValue */
+static int hf_s1ap_NRrestriction_PDU = -1; /* NRrestriction */
+static int hf_s1ap_NRUESecurityCapabilities_PDU = -1; /* NRUESecurityCapabilities */
static int hf_s1ap_NumberofBroadcastRequest_PDU = -1; /* NumberofBroadcastRequest */
static int hf_s1ap_OverloadResponse_PDU = -1; /* OverloadResponse */
static int hf_s1ap_Paging_eDRXInformation_PDU = -1; /* Paging_eDRXInformation */
@@ -602,6 +638,9 @@ static int hf_s1ap_ECGIListForRestart_PDU = -1; /* ECGIListForRestart */
static int hf_s1ap_Routing_ID_PDU = -1; /* Routing_ID */
static int hf_s1ap_SecurityKey_PDU = -1; /* SecurityKey */
static int hf_s1ap_SecurityContext_PDU = -1; /* SecurityContext */
+static int hf_s1ap_SecondaryRATusageDataRequst_PDU = -1; /* SecondaryRATusageDataRequst */
+static int hf_s1ap_SecondaryRATusageReportList_PDU = -1; /* SecondaryRATusageReportList */
+static int hf_s1ap_SecondaryRATusageReportItem_PDU = -1; /* SecondaryRATusageReportItem */
static int hf_s1ap_SerialNumber_PDU = -1; /* SerialNumber */
static int hf_s1ap_SONInformationReport_PDU = -1; /* SONInformationReport */
static int hf_s1ap_SONConfigurationTransfer_PDU = -1; /* SONConfigurationTransfer */
@@ -631,6 +670,7 @@ static int hf_s1ap_TrafficLoadReductionIndication_PDU = -1; /* TrafficLoadReduc
static int hf_s1ap_TunnelInformation_PDU = -1; /* TunnelInformation */
static int hf_s1ap_TAIListForRestart_PDU = -1; /* TAIListForRestart */
static int hf_s1ap_UEAggregateMaximumBitrate_PDU = -1; /* UEAggregateMaximumBitrate */
+static int hf_s1ap_UEAppLayerMeasConfig_PDU = -1; /* UEAppLayerMeasConfig */
static int hf_s1ap_UE_RetentionInformation_PDU = -1; /* UE_RetentionInformation */
static int hf_s1ap_UE_S1AP_IDs_PDU = -1; /* UE_S1AP_IDs */
static int hf_s1ap_UE_associatedLogicalS1_ConnectionItem_PDU = -1; /* UE_associatedLogicalS1_ConnectionItem */
@@ -646,6 +686,7 @@ static int hf_s1ap_UE_Usage_Type_PDU = -1; /* UE_Usage_Type */
static int hf_s1ap_UL_CP_SecurityInformation_PDU = -1; /* UL_CP_SecurityInformation */
static int hf_s1ap_UserLocationInformation_PDU = -1; /* UserLocationInformation */
static int hf_s1ap_UEUserPlaneCIoTSupportIndicator_PDU = -1; /* UEUserPlaneCIoTSupportIndicator */
+static int hf_s1ap_UE_Application_Layer_Measurement_Capability_PDU = -1; /* UE_Application_Layer_Measurement_Capability */
static int hf_s1ap_VoiceSupportMatchIndicator_PDU = -1; /* VoiceSupportMatchIndicator */
static int hf_s1ap_V2XServicesAuthorized_PDU = -1; /* V2XServicesAuthorized */
static int hf_s1ap_WarningAreaList_PDU = -1; /* WarningAreaList */
@@ -790,6 +831,7 @@ static int hf_s1ap_RetrieveUEInformation_PDU = -1; /* RetrieveUEInformation */
static int hf_s1ap_UEInformationTransfer_PDU = -1; /* UEInformationTransfer */
static int hf_s1ap_ENBCPRelocationIndication_PDU = -1; /* ENBCPRelocationIndication */
static int hf_s1ap_MMECPRelocationIndication_PDU = -1; /* MMECPRelocationIndication */
+static int hf_s1ap_SecondaryRATReport_PDU = -1; /* SecondaryRATReport */
static int hf_s1ap_S1AP_PDU_PDU = -1; /* S1AP_PDU */
static int hf_s1ap_s1ap_SONtransferApplicationIdentity_PDU = -1; /* SONtransferApplicationIdentity */
static int hf_s1ap_s1ap_SONtransferRequestContainer_PDU = -1; /* SONtransferRequestContainer */
@@ -815,6 +857,10 @@ static int hf_s1ap_cellBased = -1; /* CellBasedMDT */
static int hf_s1ap_tABased = -1; /* TABasedMDT */
static int hf_s1ap_pLMNWide = -1; /* NULL */
static int hf_s1ap_tAIBased = -1; /* TAIBasedMDT */
+static int hf_s1ap_cellBased_01 = -1; /* CellBasedQMC */
+static int hf_s1ap_tABased_01 = -1; /* TABasedQMC */
+static int hf_s1ap_tAIBased_01 = -1; /* TAIBasedQMC */
+static int hf_s1ap_pLMNAreaBased = -1; /* PLMNAreaBasedQMC */
static int hf_s1ap_priorityLevel = -1; /* PriorityLevel */
static int hf_s1ap_pre_emptionCapability = -1; /* Pre_emptionCapability */
static int hf_s1ap_pre_emptionVulnerability = -1; /* Pre_emptionVulnerability */
@@ -850,6 +896,8 @@ static int hf_s1ap_CellID_Broadcast_item = -1; /* CellID_Broadcast_Item */
static int hf_s1ap_CellID_Cancelled_item = -1; /* CellID_Cancelled_Item */
static int hf_s1ap_cellIdListforMDT = -1; /* CellIdListforMDT */
static int hf_s1ap_CellIdListforMDT_item = -1; /* EUTRAN_CGI */
+static int hf_s1ap_cellIdListforQMC = -1; /* CellIdListforQMC */
+static int hf_s1ap_CellIdListforQMC_item = -1; /* EUTRAN_CGI */
static int hf_s1ap_cdma2000OneXMEID = -1; /* Cdma2000OneXMEID */
static int hf_s1ap_cdma2000OneXMSI = -1; /* Cdma2000OneXMSI */
static int hf_s1ap_cdma2000OneXPilot = -1; /* Cdma2000OneXPilot */
@@ -906,6 +954,11 @@ static int hf_s1ap_cause = -1; /* Cause */
static int hf_s1ap_qCI = -1; /* QCI */
static int hf_s1ap_allocationRetentionPriority = -1; /* AllocationAndRetentionPriority */
static int hf_s1ap_gbrQosInformation = -1; /* GBR_QosInformation */
+static int hf_s1ap_E_RABUsageReportList_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_s1ap_startTimestamp = -1; /* T_startTimestamp */
+static int hf_s1ap_endTimestamp = -1; /* T_endTimestamp */
+static int hf_s1ap_usageCountUL = -1; /* INTEGER */
+static int hf_s1ap_usageCountDL = -1; /* INTEGER */
static int hf_s1ap_cell_ID = -1; /* CellIdentity */
static int hf_s1ap_expectedActivity = -1; /* ExpectedUEActivityBehaviour */
static int hf_s1ap_expectedHOInterval = -1; /* ExpectedHOInterval */
@@ -974,6 +1027,8 @@ static int hf_s1ap_muting_pattern_period = -1; /* T_muting_pattern_period */
static int hf_s1ap_muting_pattern_offset = -1; /* INTEGER_0_10239_ */
static int hf_s1ap_nB_IoT_paging_eDRX_Cycle = -1; /* NB_IoT_Paging_eDRX_Cycle */
static int hf_s1ap_nB_IoT_pagingTimeWindow = -1; /* NB_IoT_PagingTimeWindow */
+static int hf_s1ap_nRencryptionAlgorithms = -1; /* NRencryptionAlgorithms */
+static int hf_s1ap_nRintegrityProtectionAlgorithms = -1; /* NRintegrityProtectionAlgorithms */
static int hf_s1ap_overloadAction = -1; /* OverloadAction */
static int hf_s1ap_pagingAttemptCount = -1; /* PagingAttemptCount */
static int hf_s1ap_intendedNumberOfPagingAttempts = -1; /* IntendedNumberOfPagingAttempts */
@@ -982,6 +1037,8 @@ static int hf_s1ap_paging_eDRX_Cycle = -1; /* Paging_eDRX_Cycle */
static int hf_s1ap_pagingTimeWindow = -1; /* PagingTimeWindow */
static int hf_s1ap_reportInterval = -1; /* ReportIntervalMDT */
static int hf_s1ap_reportAmount = -1; /* ReportAmountMDT */
+static int hf_s1ap_plmnListforQMC = -1; /* PLMNListforQMC */
+static int hf_s1ap_PLMNListforQMC_item = -1; /* PLMNidentity */
static int hf_s1ap_proSeDirectDiscovery = -1; /* ProSeDirectDiscovery */
static int hf_s1ap_proSeDirectCommunication = -1; /* ProSeDirectCommunication */
static int hf_s1ap_recommendedCellList = -1; /* RecommendedCellList */
@@ -1003,6 +1060,9 @@ static int hf_s1ap_uE_RLF_Report_Container_for_extended_bands = -1; /* UE_RLF_R
static int hf_s1ap_ECGIListForRestart_item = -1; /* EUTRAN_CGI */
static int hf_s1ap_nextHopChainingCount = -1; /* INTEGER_0_7 */
static int hf_s1ap_nextHopParameter = -1; /* SecurityKey */
+static int hf_s1ap_SecondaryRATusageReportList_item = -1; /* ProtocolIE_SingleContainer */
+static int hf_s1ap_secondaryRATType = -1; /* SecondaryRATType */
+static int hf_s1ap_e_RABUsageReportList = -1; /* E_RABUsageReportList */
static int hf_s1ap_sONInformationRequest = -1; /* SONInformationRequest */
static int hf_s1ap_sONInformationReply = -1; /* SONInformationReply */
static int hf_s1ap_sONInformation_Extension = -1; /* SONInformation_Extension */
@@ -1042,6 +1102,10 @@ static int hf_s1ap_TAI_Cancelled_item = -1; /* TAI_Cancelled_Item */
static int hf_s1ap_cancelledCellinTAI = -1; /* CancelledCellinTAI */
static int hf_s1ap_tAListforMDT = -1; /* TAListforMDT */
static int hf_s1ap_TAListforMDT_item = -1; /* TAC */
+static int hf_s1ap_tAListforQMC = -1; /* TAListforQMC */
+static int hf_s1ap_TAListforQMC_item = -1; /* TAC */
+static int hf_s1ap_tAIListforQMC = -1; /* TAIListforQMC */
+static int hf_s1ap_TAIListforQMC_item = -1; /* TAI */
static int hf_s1ap_CompletedCellinTAI_item = -1; /* CompletedCellinTAI_Item */
static int hf_s1ap_cGI = -1; /* CGI */
static int hf_s1ap_rNC_ID = -1; /* RNC_ID */
@@ -1057,6 +1121,8 @@ static int hf_s1ap_uDP_Port_Number = -1; /* Port_Number */
static int hf_s1ap_TAIListForRestart_item = -1; /* TAI */
static int hf_s1ap_uEaggregateMaximumBitRateDL = -1; /* BitRate */
static int hf_s1ap_uEaggregateMaximumBitRateUL = -1; /* BitRate */
+static int hf_s1ap_containerForAppLayerMeasConfig = -1; /* OCTET_STRING_SIZE_1_1000 */
+static int hf_s1ap_areaScopeOfQMC = -1; /* AreaScopeOfQMC */
static int hf_s1ap_uE_S1AP_ID_pair = -1; /* UE_S1AP_ID_pair */
static int hf_s1ap_mME_UE_S1AP_ID = -1; /* MME_UE_S1AP_ID */
static int hf_s1ap_eNB_UE_S1AP_ID = -1; /* ENB_UE_S1AP_ID */
@@ -1185,7 +1251,7 @@ static int hf_s1ap_eHRPD_Sector_ID_01 = -1; /* EHRPD_Sector_ID */
static int hf_s1ap_eHRPDSectorLoadReportingResponse = -1; /* EHRPDSectorLoadReportingResponse */
/*--- End of included file: packet-s1ap-hf.c ---*/
-#line 108 "./asn1/s1ap/packet-s1ap-template.c"
+#line 119 "./asn1/s1ap/packet-s1ap-template.c"
/* Initialize the subtree pointers */
static int ett_s1ap = -1;
@@ -1217,6 +1283,9 @@ static int ett_s1ap_MeasurementsToActivate = -1;
static int ett_s1ap_MDT_Location_Info = -1;
static int ett_s1ap_IMSI = -1;
static int ett_s1ap_NASSecurityParameters = -1;
+static int ett_s1ap_NRencryptionAlgorithms = -1;
+static int ett_s1ap_NRintegrityProtectionAlgorithms = -1;
+static int ett_s1ap_UE_Application_Layer_Measurement_Capability = -1;
/*--- Included file: packet-s1ap-ett.c ---*/
#line 1 "./asn1/s1ap/packet-s1ap-ett.c"
@@ -1230,6 +1299,7 @@ static gint ett_s1ap_PrivateIE_Container = -1;
static gint ett_s1ap_PrivateIE_Field = -1;
static gint ett_s1ap_Additional_GUTI = -1;
static gint ett_s1ap_AreaScopeOfMDT = -1;
+static gint ett_s1ap_AreaScopeOfQMC = -1;
static gint ett_s1ap_AllocationAndRetentionPriority = -1;
static gint ett_s1ap_AssistanceDataForCECapableUEs = -1;
static gint ett_s1ap_AssistanceDataForPaging = -1;
@@ -1251,6 +1321,8 @@ static gint ett_s1ap_CellID_Cancelled = -1;
static gint ett_s1ap_CellID_Cancelled_Item = -1;
static gint ett_s1ap_CellBasedMDT = -1;
static gint ett_s1ap_CellIdListforMDT = -1;
+static gint ett_s1ap_CellBasedQMC = -1;
+static gint ett_s1ap_CellIdListforQMC = -1;
static gint ett_s1ap_Cdma2000OneXSRVCCInfo = -1;
static gint ett_s1ap_CellType = -1;
static gint ett_s1ap_CGI = -1;
@@ -1288,6 +1360,8 @@ static gint ett_s1ap_E_RABInformationListItem = -1;
static gint ett_s1ap_E_RABList = -1;
static gint ett_s1ap_E_RABItem = -1;
static gint ett_s1ap_E_RABLevelQoSParameters = -1;
+static gint ett_s1ap_E_RABUsageReportList = -1;
+static gint ett_s1ap_E_RABUsageReportItem = -1;
static gint ett_s1ap_EUTRAN_CGI = -1;
static gint ett_s1ap_ExpectedUEBehaviour = -1;
static gint ett_s1ap_ExpectedUEActivityBehaviour = -1;
@@ -1323,10 +1397,13 @@ static gint ett_s1ap_MeasurementThresholdA2 = -1;
static gint ett_s1ap_MMEPagingTarget = -1;
static gint ett_s1ap_MutingPatternInformation = -1;
static gint ett_s1ap_NB_IoT_Paging_eDRXInformation = -1;
+static gint ett_s1ap_NRUESecurityCapabilities = -1;
static gint ett_s1ap_OverloadResponse = -1;
static gint ett_s1ap_PagingAttemptInformation = -1;
static gint ett_s1ap_Paging_eDRXInformation = -1;
static gint ett_s1ap_M1PeriodicReporting = -1;
+static gint ett_s1ap_PLMNAreaBasedQMC = -1;
+static gint ett_s1ap_PLMNListforQMC = -1;
static gint ett_s1ap_ProSeAuthorized = -1;
static gint ett_s1ap_RecommendedCellsForPaging = -1;
static gint ett_s1ap_RecommendedCellList = -1;
@@ -1340,6 +1417,8 @@ static gint ett_s1ap_RIMRoutingAddress = -1;
static gint ett_s1ap_RLFReportInformation = -1;
static gint ett_s1ap_ECGIListForRestart = -1;
static gint ett_s1ap_SecurityContext = -1;
+static gint ett_s1ap_SecondaryRATusageReportList = -1;
+static gint ett_s1ap_SecondaryRATusageReportItem = -1;
static gint ett_s1ap_SONInformation = -1;
static gint ett_s1ap_SONInformationReply = -1;
static gint ett_s1ap_SONInformationReport = -1;
@@ -1366,6 +1445,10 @@ static gint ett_s1ap_TAI_Cancelled = -1;
static gint ett_s1ap_TAI_Cancelled_Item = -1;
static gint ett_s1ap_TABasedMDT = -1;
static gint ett_s1ap_TAListforMDT = -1;
+static gint ett_s1ap_TABasedQMC = -1;
+static gint ett_s1ap_TAListforQMC = -1;
+static gint ett_s1ap_TAIBasedQMC = -1;
+static gint ett_s1ap_TAIListforQMC = -1;
static gint ett_s1ap_CompletedCellinTAI = -1;
static gint ett_s1ap_CompletedCellinTAI_Item = -1;
static gint ett_s1ap_TargetID = -1;
@@ -1378,6 +1461,7 @@ static gint ett_s1ap_TraceActivation = -1;
static gint ett_s1ap_TunnelInformation = -1;
static gint ett_s1ap_TAIListForRestart = -1;
static gint ett_s1ap_UEAggregateMaximumBitrate = -1;
+static gint ett_s1ap_UEAppLayerMeasConfig = -1;
static gint ett_s1ap_UE_S1AP_IDs = -1;
static gint ett_s1ap_UE_S1AP_ID_pair = -1;
static gint ett_s1ap_UE_associatedLogicalS1_ConnectionItem = -1;
@@ -1519,6 +1603,7 @@ static gint ett_s1ap_RetrieveUEInformation = -1;
static gint ett_s1ap_UEInformationTransfer = -1;
static gint ett_s1ap_ENBCPRelocationIndication = -1;
static gint ett_s1ap_MMECPRelocationIndication = -1;
+static gint ett_s1ap_SecondaryRATReport = -1;
static gint ett_s1ap_S1AP_PDU = -1;
static gint ett_s1ap_InitiatingMessage = -1;
static gint ett_s1ap_SuccessfulOutcome = -1;
@@ -1558,7 +1643,7 @@ static gint ett_s1ap_EHRPDCompositeAvailableCapacity = -1;
static gint ett_s1ap_EHRPDMultiSectorLoadReportingResponseItem = -1;
/*--- End of included file: packet-s1ap-ett.c ---*/
-#line 140 "./asn1/s1ap/packet-s1ap-template.c"
+#line 154 "./asn1/s1ap/packet-s1ap-template.c"
static expert_field ei_s1ap_number_pages_le15 = EI_INIT;
@@ -1897,6 +1982,7 @@ static const value_string s1ap_ProcedureCode_vals[] = {
{ id_UEInformationTransfer, "id-UEInformationTransfer" },
{ id_eNBCPRelocationIndication, "id-eNBCPRelocationIndication" },
{ id_MMECPRelocationIndication, "id-MMECPRelocationIndication" },
+ { id_SecondaryRATReport, "id-SecondaryRATReport" },
{ 0, NULL }
};
@@ -2187,6 +2273,21 @@ static const value_string s1ap_ProtocolIE_ID_vals[] = {
{ id_UE_Level_QoS_Parameters, "id-UE-Level-QoS-Parameters" },
{ id_DL_CP_SecurityInformation, "id-DL-CP-SecurityInformation" },
{ id_UL_CP_SecurityInformation, "id-UL-CP-SecurityInformation" },
+ { id_extended_e_RAB_MaximumBitrateDL, "id-extended-e-RAB-MaximumBitrateDL" },
+ { id_extended_e_RAB_MaximumBitrateUL, "id-extended-e-RAB-MaximumBitrateUL" },
+ { id_extended_e_RAB_GuaranteedBitrateDL, "id-extended-e-RAB-GuaranteedBitrateDL" },
+ { id_extended_e_RAB_GuaranteedBitrateUL, "id-extended-e-RAB-GuaranteedBitrateUL" },
+ { id_extended_uEaggregateMaximumBitRateDL, "id-extended-uEaggregateMaximumBitRateDL" },
+ { id_extended_uEaggregateMaximumBitRateUL, "id-extended-uEaggregateMaximumBitRateUL" },
+ { id_NRrestriction, "id-NRrestriction" },
+ { id_UEAppLayerMeasConfig, "id-UEAppLayerMeasConfig" },
+ { id_UE_Application_Layer_Measurement_Capability, "id-UE-Application-Layer-Measurement-Capability" },
+ { id_SecondaryRATusageReportList, "id-SecondaryRATusageReportList" },
+ { id_SecondaryRATusageReportItem, "id-SecondaryRATusageReportItem" },
+ { id_HandoverFlag, "id-HandoverFlag" },
+ { id_E_RABUsageReportItem, "id-E-RABUsageReportItem" },
+ { id_SecondaryRATusageDataRequst, "id-SecondaryRATusageDataRequst" },
+ { id_NRUESecurityCapabilities, "id-NRUESecurityCapabilities" },
{ 0, NULL }
};
@@ -2473,7 +2574,7 @@ dissect_s1ap_GUMMEI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
static int
dissect_s1ap_M_TMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 997 "./asn1/s1ap/s1ap.cnf"
+#line 1067 "./asn1/s1ap/s1ap.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, -1,
4, 4, FALSE, &parameter_tvb);
@@ -2562,7 +2663,7 @@ dissect_s1ap_CellBasedMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_s1ap_TAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 964 "./asn1/s1ap/s1ap.cnf"
+#line 1034 "./asn1/s1ap/s1ap.cnf"
tvbuff_t *parameter_tvb = NULL;
struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo);
offset = dissect_per_octet_string(tvb, offset, actx, tree, -1,
@@ -2630,7 +2731,7 @@ static const per_sequence_t TAI_sequence[] = {
static int
dissect_s1ap_TAI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1063 "./asn1/s1ap/s1ap.cnf"
+#line 1133 "./asn1/s1ap/s1ap.cnf"
struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo);
s1ap_data->tai = wmem_new0(wmem_packet_scope(), struct s1ap_tai);
@@ -2718,6 +2819,148 @@ dissect_s1ap_AreaScopeOfMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
}
+static const per_sequence_t CellIdListforQMC_sequence_of[1] = {
+ { &hf_s1ap_CellIdListforQMC_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_EUTRAN_CGI },
+};
+
+static int
+dissect_s1ap_CellIdListforQMC(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_s1ap_CellIdListforQMC, CellIdListforQMC_sequence_of,
+ 1, maxnoofCellIDforQMC, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t CellBasedQMC_sequence[] = {
+ { &hf_s1ap_cellIdListforQMC, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_CellIdListforQMC },
+ { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_s1ap_CellBasedQMC(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_s1ap_CellBasedQMC, CellBasedQMC_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t TAListforQMC_sequence_of[1] = {
+ { &hf_s1ap_TAListforQMC_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_TAC },
+};
+
+static int
+dissect_s1ap_TAListforQMC(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_s1ap_TAListforQMC, TAListforQMC_sequence_of,
+ 1, maxnoofTAforQMC, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t TABasedQMC_sequence[] = {
+ { &hf_s1ap_tAListforQMC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_TAListforQMC },
+ { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_s1ap_TABasedQMC(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_s1ap_TABasedQMC, TABasedQMC_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t TAIListforQMC_sequence_of[1] = {
+ { &hf_s1ap_TAIListforQMC_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_TAI },
+};
+
+static int
+dissect_s1ap_TAIListforQMC(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_s1ap_TAIListforQMC, TAIListforQMC_sequence_of,
+ 1, maxnoofTAforQMC, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t TAIBasedQMC_sequence[] = {
+ { &hf_s1ap_tAIListforQMC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_TAIListforQMC },
+ { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_s1ap_TAIBasedQMC(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_s1ap_TAIBasedQMC, TAIBasedQMC_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t PLMNListforQMC_sequence_of[1] = {
+ { &hf_s1ap_PLMNListforQMC_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_PLMNidentity },
+};
+
+static int
+dissect_s1ap_PLMNListforQMC(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_s1ap_PLMNListforQMC, PLMNListforQMC_sequence_of,
+ 1, maxnoofPLMNforQMC, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t PLMNAreaBasedQMC_sequence[] = {
+ { &hf_s1ap_plmnListforQMC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_PLMNListforQMC },
+ { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_s1ap_PLMNAreaBasedQMC(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_s1ap_PLMNAreaBasedQMC, PLMNAreaBasedQMC_sequence);
+
+ return offset;
+}
+
+
+static const value_string s1ap_AreaScopeOfQMC_vals[] = {
+ { 0, "cellBased" },
+ { 1, "tABased" },
+ { 2, "tAIBased" },
+ { 3, "pLMNAreaBased" },
+ { 0, NULL }
+};
+
+static const per_choice_t AreaScopeOfQMC_choice[] = {
+ { 0, &hf_s1ap_cellBased_01 , ASN1_EXTENSION_ROOT , dissect_s1ap_CellBasedQMC },
+ { 1, &hf_s1ap_tABased_01 , ASN1_EXTENSION_ROOT , dissect_s1ap_TABasedQMC },
+ { 2, &hf_s1ap_tAIBased_01 , ASN1_EXTENSION_ROOT , dissect_s1ap_TAIBasedQMC },
+ { 3, &hf_s1ap_pLMNAreaBased , ASN1_EXTENSION_ROOT , dissect_s1ap_PLMNAreaBasedQMC },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_s1ap_AreaScopeOfQMC(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_s1ap_AreaScopeOfQMC, AreaScopeOfQMC_choice,
+ NULL);
+
+ return offset;
+}
+
+
static const value_string s1ap_PriorityLevel_vals[] = {
{ 0, "spare" },
{ 1, "highest" },
@@ -3499,7 +3742,7 @@ static value_string_ext s1ap_CauseRadioNetwork_vals_ext = VALUE_STRING_EXT_INIT(
static int
dissect_s1ap_CauseRadioNetwork(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1984 "./asn1/s1ap/s1ap.cnf"
+#line 2089 "./asn1/s1ap/s1ap.cnf"
guint32 value;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
36, &value, TRUE, 4, NULL);
@@ -3521,7 +3764,7 @@ const value_string s1ap_CauseTransport_vals[] = {
static int
dissect_s1ap_CauseTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1989 "./asn1/s1ap/s1ap.cnf"
+#line 2094 "./asn1/s1ap/s1ap.cnf"
guint32 value;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2, &value, TRUE, 0, NULL);
@@ -3546,7 +3789,7 @@ const value_string s1ap_CauseNas_vals[] = {
static int
dissect_s1ap_CauseNas(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1994 "./asn1/s1ap/s1ap.cnf"
+#line 2099 "./asn1/s1ap/s1ap.cnf"
guint32 value;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
4, &value, TRUE, 1, NULL);
@@ -3573,7 +3816,7 @@ const value_string s1ap_CauseProtocol_vals[] = {
static int
dissect_s1ap_CauseProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1999 "./asn1/s1ap/s1ap.cnf"
+#line 2104 "./asn1/s1ap/s1ap.cnf"
guint32 value;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7, &value, TRUE, 0, NULL);
@@ -3599,7 +3842,7 @@ const value_string s1ap_CauseMisc_vals[] = {
static int
dissect_s1ap_CauseMisc(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2004 "./asn1/s1ap/s1ap.cnf"
+#line 2109 "./asn1/s1ap/s1ap.cnf"
guint32 value;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
6, &value, TRUE, 0, NULL);
@@ -3865,7 +4108,7 @@ dissect_s1ap_CellType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
static int
dissect_s1ap_LAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 979 "./asn1/s1ap/s1ap.cnf"
+#line 1049 "./asn1/s1ap/s1ap.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, -1,
2, 2, FALSE, &parameter_tvb);
@@ -3893,7 +4136,7 @@ dissect_s1ap_CI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_t
static int
dissect_s1ap_RAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 988 "./asn1/s1ap/s1ap.cnf"
+#line 1058 "./asn1/s1ap/s1ap.cnf"
tvbuff_t *parameter_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, -1,
1, 1, FALSE, &parameter_tvb);
@@ -4590,7 +4833,7 @@ dissect_s1ap_ENB_StatusTransfer_TransparentContainer(tvbuff_t *tvb _U_, int offs
static int
dissect_s1ap_ENB_UE_S1AP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1057 "./asn1/s1ap/s1ap.cnf"
+#line 1127 "./asn1/s1ap/s1ap.cnf"
guint32 enb_ue_s1ap_id;
struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo);
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
@@ -4865,6 +5108,89 @@ dissect_s1ap_E_RABLevelQoSParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
}
+static const per_sequence_t E_RABUsageReportList_sequence_of[1] = {
+ { &hf_s1ap_E_RABUsageReportList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_s1ap_E_RABUsageReportList(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_s1ap_E_RABUsageReportList, E_RABUsageReportList_sequence_of,
+ 1, maxnooftimeperiods, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_s1ap_T_startTimestamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 962 "./asn1/s1ap/s1ap.cnf"
+ tvbuff_t *timestamp_tvb = NULL;
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 4, 4, FALSE, &timestamp_tvb);
+
+
+
+
+#line 966 "./asn1/s1ap/s1ap.cnf"
+ if (timestamp_tvb) {
+ proto_item_append_text(actx->created_item, " (%s)", tvb_ntp_fmt_ts_sec(timestamp_tvb, 0));
+ }
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_s1ap_T_endTimestamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 971 "./asn1/s1ap/s1ap.cnf"
+ tvbuff_t *timestamp_tvb = NULL;
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 4, 4, FALSE, &timestamp_tvb);
+
+
+
+
+#line 975 "./asn1/s1ap/s1ap.cnf"
+ if (timestamp_tvb) {
+ proto_item_append_text(actx->created_item, " (%s)", tvb_ntp_fmt_ts_sec(timestamp_tvb, 0));
+ }
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_s1ap_INTEGER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t E_RABUsageReportItem_sequence[] = {
+ { &hf_s1ap_startTimestamp , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_T_startTimestamp },
+ { &hf_s1ap_endTimestamp , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_T_endTimestamp },
+ { &hf_s1ap_usageCountUL , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_INTEGER },
+ { &hf_s1ap_usageCountDL , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_INTEGER },
+ { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_s1ap_E_RABUsageReportItem(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_s1ap_E_RABUsageReportItem, E_RABUsageReportItem_sequence);
+
+ return offset;
+}
+
+
static int
dissect_s1ap_EUTRANRoundTripDelayEstimationInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
@@ -4967,6 +5293,16 @@ dissect_s1ap_ExpectedUEBehaviour(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
+dissect_s1ap_ExtendedBitRate(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_64b(tvb, offset, actx, tree, hf_index,
+ 10000000001U, G_GUINT64_CONSTANT(4000000000000), NULL, TRUE);
+
+ return offset;
+}
+
+
+
+static int
dissect_s1ap_ExtendedRNC_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,
4096U, 65535U, NULL, FALSE);
@@ -5144,6 +5480,21 @@ dissect_s1ap_GWContextReleaseIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_
}
+static const value_string s1ap_HandoverFlag_vals[] = {
+ { 0, "handoverPreparation" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_s1ap_HandoverFlag(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 1, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
static const per_sequence_t HandoverRestrictionList_sequence[] = {
{ &hf_s1ap_servingPLMN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_PLMNidentity },
{ &hf_s1ap_equivalentPLMNs, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_EPLMNs },
@@ -5387,7 +5738,7 @@ dissect_s1ap_ImmediateMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_s1ap_IMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1004 "./asn1/s1ap/s1ap.cnf"
+#line 1074 "./asn1/s1ap/s1ap.cnf"
tvbuff_t *parameter_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3, 8, FALSE, &parameter_tvb);
@@ -6368,7 +6719,7 @@ tvbuff_t *parameter_tvb=NULL;
static int
dissect_s1ap_NASSecurityParametersfromE_UTRAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1012 "./asn1/s1ap/s1ap.cnf"
+#line 1082 "./asn1/s1ap/s1ap.cnf"
tvbuff_t *parameter_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
NO_BOUND, NO_BOUND, FALSE, &parameter_tvb);
@@ -6387,7 +6738,7 @@ dissect_s1ap_NASSecurityParametersfromE_UTRAN(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_s1ap_NASSecurityParameterstoE_UTRAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1020 "./asn1/s1ap/s1ap.cnf"
+#line 1090 "./asn1/s1ap/s1ap.cnf"
tvbuff_t *parameter_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
NO_BOUND, NO_BOUND, FALSE, &parameter_tvb);
@@ -6507,6 +6858,89 @@ dissect_s1ap_NB_IoT_UEIdentityIndexValue(tvbuff_t *tvb _U_, int offset _U_, asn1
static int
+dissect_s1ap_NRencryptionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 989 "./asn1/s1ap/s1ap.cnf"
+ tvbuff_t *parameter_tvb = NULL;
+ offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
+ 16, 16, TRUE, &parameter_tvb, NULL);
+
+ if (parameter_tvb) {
+ const gint *fields[] = {
+ &hf_s1ap_NRencryptionAlgorithms_NEA1,
+ &hf_s1ap_NRencryptionAlgorithms_NEA2,
+ &hf_s1ap_NRencryptionAlgorithms_NEA3,
+ &hf_s1ap_NRencryptionAlgorithms_Reserved,
+ NULL
+ };
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_NRencryptionAlgorithms);
+ proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 2, fields, ENC_BIG_ENDIAN);
+ }
+
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_s1ap_NRintegrityProtectionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1004 "./asn1/s1ap/s1ap.cnf"
+ tvbuff_t *parameter_tvb = NULL;
+ offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
+ 16, 16, TRUE, &parameter_tvb, NULL);
+
+ if (parameter_tvb) {
+ const gint *fields[] = {
+ &hf_s1ap_NRintegrityProtectionAlgorithms_NIA1,
+ &hf_s1ap_NRintegrityProtectionAlgorithms_NIA2,
+ &hf_s1ap_NRintegrityProtectionAlgorithms_NIA3,
+ &hf_s1ap_NRintegrityProtectionAlgorithms_Reserved,
+ NULL
+ };
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_NRintegrityProtectionAlgorithms);
+ proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 2, fields, ENC_BIG_ENDIAN);
+ }
+
+
+
+ return offset;
+}
+
+
+static const value_string s1ap_NRrestriction_vals[] = {
+ { 0, "nRrestricted" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_s1ap_NRrestriction(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 1, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t NRUESecurityCapabilities_sequence[] = {
+ { &hf_s1ap_nRencryptionAlgorithms, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_NRencryptionAlgorithms },
+ { &hf_s1ap_nRintegrityProtectionAlgorithms, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_NRintegrityProtectionAlgorithms },
+ { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_s1ap_NRUESecurityCapabilities(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_s1ap_NRUESecurityCapabilities, NRUESecurityCapabilities_sequence);
+
+ return offset;
+}
+
+
+
+static int
dissect_s1ap_NumberofBroadcastRequest(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);
@@ -6851,7 +7285,7 @@ static const value_string s1ap_RAT_Type_vals[] = {
static int
dissect_s1ap_RAT_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1042 "./asn1/s1ap/s1ap.cnf"
+#line 1112 "./asn1/s1ap/s1ap.cnf"
guint32 rat_type = 0xffffffff;
struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo);
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
@@ -7208,6 +7642,67 @@ dissect_s1ap_SecurityContext(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
}
+static const value_string s1ap_SecondaryRATType_vals[] = {
+ { 0, "nR" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_s1ap_SecondaryRATType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 1, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+static const value_string s1ap_SecondaryRATusageDataRequst_vals[] = {
+ { 0, "requested" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_s1ap_SecondaryRATusageDataRequst(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 1, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t SecondaryRATusageReportList_sequence_of[1] = {
+ { &hf_s1ap_SecondaryRATusageReportList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_SingleContainer },
+};
+
+static int
+dissect_s1ap_SecondaryRATusageReportList(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_s1ap_SecondaryRATusageReportList, SecondaryRATusageReportList_sequence_of,
+ 1, maxnoofE_RABs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t SecondaryRATusageReportItem_sequence[] = {
+ { &hf_s1ap_e_RAB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_E_RAB_ID },
+ { &hf_s1ap_secondaryRATType, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_SecondaryRATType },
+ { &hf_s1ap_e_RABUsageReportList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_E_RABUsageReportList },
+ { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_s1ap_SecondaryRATusageReportItem(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_s1ap_SecondaryRATusageReportItem, SecondaryRATusageReportItem_sequence);
+
+ return offset;
+}
+
+
static int
dissect_s1ap_SerialNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
@@ -7646,7 +8141,7 @@ static const per_sequence_t SupportedTAs_Item_sequence[] = {
static int
dissect_s1ap_SupportedTAs_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1028 "./asn1/s1ap/s1ap.cnf"
+#line 1098 "./asn1/s1ap/s1ap.cnf"
struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo);
if (!PINFO_FD_VISITED(actx->pinfo) &&
@@ -7661,7 +8156,7 @@ dissect_s1ap_SupportedTAs_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_s1ap_SupportedTAs_Item, SupportedTAs_Item_sequence);
-#line 1039 "./asn1/s1ap/s1ap.cnf"
+#line 1109 "./asn1/s1ap/s1ap.cnf"
s1ap_data->supported_ta = NULL;
@@ -8013,6 +8508,32 @@ dissect_s1ap_UEAggregateMaximumBitrate(tvbuff_t *tvb _U_, int offset _U_, asn1_c
}
+
+static int
+dissect_s1ap_OCTET_STRING_SIZE_1_1000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 1, 1000, FALSE, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t UEAppLayerMeasConfig_sequence[] = {
+ { &hf_s1ap_containerForAppLayerMeasConfig, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_OCTET_STRING_SIZE_1_1000 },
+ { &hf_s1ap_areaScopeOfQMC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_AreaScopeOfQMC },
+ { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_s1ap_UEAppLayerMeasConfig(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_s1ap_UEAppLayerMeasConfig, UEAppLayerMeasConfig_sequence);
+
+ return offset;
+}
+
+
static const value_string s1ap_UE_RetentionInformation_vals[] = {
{ 0, "ues-retained" },
{ 0, NULL }
@@ -8305,6 +8826,30 @@ dissect_s1ap_UEUserPlaneCIoTSupportIndicator(tvbuff_t *tvb _U_, int offset _U_,
}
+
+static int
+dissect_s1ap_UE_Application_Layer_Measurement_Capability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1019 "./asn1/s1ap/s1ap.cnf"
+ tvbuff_t *parameter_tvb = NULL;
+ offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
+ 8, 8, FALSE, &parameter_tvb, NULL);
+
+ if(parameter_tvb){
+ const gint *fields[] = {
+ &hf_s1ap_UE_Application_Layer_Measurement_Capability_QoE_Measurement,
+ &hf_s1ap_UE_Application_Layer_Measurement_Capability_Reserved,
+ NULL
+ };
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_UE_Application_Layer_Measurement_Capability);
+ proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 1, fields, ENC_BIG_ENDIAN);
+ }
+
+
+
+ return offset;
+}
+
+
static const value_string s1ap_VoiceSupportMatchIndicator_vals[] = {
{ 0, "supported" },
{ 1, "not-supported" },
@@ -8591,7 +9136,7 @@ static const per_sequence_t HandoverPreparationFailure_sequence[] = {
static int
dissect_s1ap_HandoverPreparationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1800 "./asn1/s1ap/s1ap.cnf"
+#line 1903 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverPreparationFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8729,7 +9274,7 @@ static const per_sequence_t HandoverFailure_sequence[] = {
static int
dissect_s1ap_HandoverFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1806 "./asn1/s1ap/s1ap.cnf"
+#line 1909 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8746,7 +9291,7 @@ static const per_sequence_t HandoverNotify_sequence[] = {
static int
dissect_s1ap_HandoverNotify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1808 "./asn1/s1ap/s1ap.cnf"
+#line 1911 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverNotify");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8763,7 +9308,7 @@ static const per_sequence_t PathSwitchRequest_sequence[] = {
static int
dissect_s1ap_PathSwitchRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1810 "./asn1/s1ap/s1ap.cnf"
+#line 1913 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8806,7 +9351,7 @@ static const per_sequence_t PathSwitchRequestAcknowledge_sequence[] = {
static int
dissect_s1ap_PathSwitchRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1812 "./asn1/s1ap/s1ap.cnf"
+#line 1915 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestAcknowledge");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8849,7 +9394,7 @@ static const per_sequence_t PathSwitchRequestFailure_sequence[] = {
static int
dissect_s1ap_PathSwitchRequestFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1814 "./asn1/s1ap/s1ap.cnf"
+#line 1917 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8866,7 +9411,7 @@ static const per_sequence_t HandoverCancel_sequence[] = {
static int
dissect_s1ap_HandoverCancel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1816 "./asn1/s1ap/s1ap.cnf"
+#line 1919 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancel");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8883,7 +9428,7 @@ static const per_sequence_t HandoverCancelAcknowledge_sequence[] = {
static int
dissect_s1ap_HandoverCancelAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1818 "./asn1/s1ap/s1ap.cnf"
+#line 1921 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancelAcknowledge");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8900,7 +9445,7 @@ static const per_sequence_t E_RABSetupRequest_sequence[] = {
static int
dissect_s1ap_E_RABSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1820 "./asn1/s1ap/s1ap.cnf"
+#line 1923 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABSetupRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8950,7 +9495,7 @@ static const per_sequence_t E_RABSetupResponse_sequence[] = {
static int
dissect_s1ap_E_RABSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1822 "./asn1/s1ap/s1ap.cnf"
+#line 1925 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABSetupResponse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -8998,7 +9543,7 @@ static const per_sequence_t E_RABModifyRequest_sequence[] = {
static int
dissect_s1ap_E_RABModifyRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1824 "./asn1/s1ap/s1ap.cnf"
+#line 1927 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModifyRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9046,7 +9591,7 @@ static const per_sequence_t E_RABModifyResponse_sequence[] = {
static int
dissect_s1ap_E_RABModifyResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1826 "./asn1/s1ap/s1ap.cnf"
+#line 1929 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModifyResponse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9092,7 +9637,7 @@ static const per_sequence_t E_RABReleaseCommand_sequence[] = {
static int
dissect_s1ap_E_RABReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1828 "./asn1/s1ap/s1ap.cnf"
+#line 1931 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseCommand");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9109,7 +9654,7 @@ static const per_sequence_t E_RABReleaseResponse_sequence[] = {
static int
dissect_s1ap_E_RABReleaseResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1830 "./asn1/s1ap/s1ap.cnf"
+#line 1933 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseResponse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9155,7 +9700,7 @@ static const per_sequence_t E_RABReleaseIndication_sequence[] = {
static int
dissect_s1ap_E_RABReleaseIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1832 "./asn1/s1ap/s1ap.cnf"
+#line 1935 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseIndication");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9172,7 +9717,7 @@ static const per_sequence_t InitialContextSetupRequest_sequence[] = {
static int
dissect_s1ap_InitialContextSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1834 "./asn1/s1ap/s1ap.cnf"
+#line 1937 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9222,7 +9767,7 @@ static const per_sequence_t InitialContextSetupResponse_sequence[] = {
static int
dissect_s1ap_InitialContextSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1836 "./asn1/s1ap/s1ap.cnf"
+#line 1939 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupResponse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9270,7 +9815,7 @@ static const per_sequence_t InitialContextSetupFailure_sequence[] = {
static int
dissect_s1ap_InitialContextSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1838 "./asn1/s1ap/s1ap.cnf"
+#line 1941 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9287,7 +9832,7 @@ static const per_sequence_t Paging_sequence[] = {
static int
dissect_s1ap_Paging(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1840 "./asn1/s1ap/s1ap.cnf"
+#line 1943 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Paging");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9333,7 +9878,7 @@ static const per_sequence_t UEContextReleaseRequest_sequence[] = {
static int
dissect_s1ap_UEContextReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1842 "./asn1/s1ap/s1ap.cnf"
+#line 1945 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9350,7 +9895,7 @@ static const per_sequence_t UEContextReleaseCommand_sequence[] = {
static int
dissect_s1ap_UEContextReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1844 "./asn1/s1ap/s1ap.cnf"
+#line 1947 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseCommand");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9367,7 +9912,7 @@ static const per_sequence_t UEContextReleaseComplete_sequence[] = {
static int
dissect_s1ap_UEContextReleaseComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1846 "./asn1/s1ap/s1ap.cnf"
+#line 1949 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseComplete");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9384,7 +9929,7 @@ static const per_sequence_t UEContextModificationRequest_sequence[] = {
static int
dissect_s1ap_UEContextModificationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1848 "./asn1/s1ap/s1ap.cnf"
+#line 1951 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9401,7 +9946,7 @@ static const per_sequence_t UEContextModificationResponse_sequence[] = {
static int
dissect_s1ap_UEContextModificationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1850 "./asn1/s1ap/s1ap.cnf"
+#line 1953 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationResponse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9418,7 +9963,7 @@ static const per_sequence_t UEContextModificationFailure_sequence[] = {
static int
dissect_s1ap_UEContextModificationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1852 "./asn1/s1ap/s1ap.cnf"
+#line 1955 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9435,7 +9980,7 @@ static const per_sequence_t UERadioCapabilityMatchRequest_sequence[] = {
static int
dissect_s1ap_UERadioCapabilityMatchRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1854 "./asn1/s1ap/s1ap.cnf"
+#line 1957 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityMatchRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9452,7 +9997,7 @@ static const per_sequence_t UERadioCapabilityMatchResponse_sequence[] = {
static int
dissect_s1ap_UERadioCapabilityMatchResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1856 "./asn1/s1ap/s1ap.cnf"
+#line 1959 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityMatchResponse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9529,7 +10074,7 @@ static const per_sequence_t NASNonDeliveryIndication_sequence[] = {
static int
dissect_s1ap_NASNonDeliveryIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1864 "./asn1/s1ap/s1ap.cnf"
+#line 1967 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NASNonDeliveryIndication");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9546,7 +10091,7 @@ static const per_sequence_t RerouteNASRequest_sequence[] = {
static int
dissect_s1ap_RerouteNASRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1866 "./asn1/s1ap/s1ap.cnf"
+#line 1969 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RerouteNASRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9585,7 +10130,7 @@ static const per_sequence_t NASDeliveryIndication_sequence[] = {
static int
dissect_s1ap_NASDeliveryIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1970 "./asn1/s1ap/s1ap.cnf"
+#line 2073 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NASDeliveryIndication");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9602,7 +10147,7 @@ static const per_sequence_t Reset_sequence[] = {
static int
dissect_s1ap_Reset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1868 "./asn1/s1ap/s1ap.cnf"
+#line 1971 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Reset");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9670,7 +10215,7 @@ static const per_sequence_t ResetAcknowledge_sequence[] = {
static int
dissect_s1ap_ResetAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1870 "./asn1/s1ap/s1ap.cnf"
+#line 1973 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetAcknowledge");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9715,7 +10260,7 @@ static const per_sequence_t S1SetupRequest_sequence[] = {
static int
dissect_s1ap_S1SetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1874 "./asn1/s1ap/s1ap.cnf"
+#line 1977 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9732,7 +10277,7 @@ static const per_sequence_t S1SetupResponse_sequence[] = {
static int
dissect_s1ap_S1SetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1876 "./asn1/s1ap/s1ap.cnf"
+#line 1979 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupResponse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9749,7 +10294,7 @@ static const per_sequence_t S1SetupFailure_sequence[] = {
static int
dissect_s1ap_S1SetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1878 "./asn1/s1ap/s1ap.cnf"
+#line 1981 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9766,7 +10311,7 @@ static const per_sequence_t ENBConfigurationUpdate_sequence[] = {
static int
dissect_s1ap_ENBConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1880 "./asn1/s1ap/s1ap.cnf"
+#line 1983 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdate");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9783,7 +10328,7 @@ static const per_sequence_t ENBConfigurationUpdateAcknowledge_sequence[] = {
static int
dissect_s1ap_ENBConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1882 "./asn1/s1ap/s1ap.cnf"
+#line 1985 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdateAcknowledge");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9800,7 +10345,7 @@ static const per_sequence_t ENBConfigurationUpdateFailure_sequence[] = {
static int
dissect_s1ap_ENBConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1884 "./asn1/s1ap/s1ap.cnf"
+#line 1987 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdateFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9817,7 +10362,7 @@ static const per_sequence_t MMEConfigurationUpdate_sequence[] = {
static int
dissect_s1ap_MMEConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1886 "./asn1/s1ap/s1ap.cnf"
+#line 1989 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdate");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9834,7 +10379,7 @@ static const per_sequence_t MMEConfigurationUpdateAcknowledge_sequence[] = {
static int
dissect_s1ap_MMEConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1888 "./asn1/s1ap/s1ap.cnf"
+#line 1991 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdateAcknowledge");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9851,7 +10396,7 @@ static const per_sequence_t MMEConfigurationUpdateFailure_sequence[] = {
static int
dissect_s1ap_MMEConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1890 "./asn1/s1ap/s1ap.cnf"
+#line 1993 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdateFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9868,7 +10413,7 @@ static const per_sequence_t DownlinkS1cdma2000tunnelling_sequence[] = {
static int
dissect_s1ap_DownlinkS1cdma2000tunnelling(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1892 "./asn1/s1ap/s1ap.cnf"
+#line 1995 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkS1cdma2000tunnelling");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9885,7 +10430,7 @@ static const per_sequence_t UplinkS1cdma2000tunnelling_sequence[] = {
static int
dissect_s1ap_UplinkS1cdma2000tunnelling(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1894 "./asn1/s1ap/s1ap.cnf"
+#line 1997 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkS1cdma2000tunnelling");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9902,7 +10447,7 @@ static const per_sequence_t UECapabilityInfoIndication_sequence[] = {
static int
dissect_s1ap_UECapabilityInfoIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1896 "./asn1/s1ap/s1ap.cnf"
+#line 1999 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UECapabilityInfoIndication");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9919,7 +10464,7 @@ static const per_sequence_t ENBStatusTransfer_sequence[] = {
static int
dissect_s1ap_ENBStatusTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1898 "./asn1/s1ap/s1ap.cnf"
+#line 2001 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBStatusTransfer");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9936,7 +10481,7 @@ static const per_sequence_t MMEStatusTransfer_sequence[] = {
static int
dissect_s1ap_MMEStatusTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1900 "./asn1/s1ap/s1ap.cnf"
+#line 2003 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEStatusTransfer");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9953,7 +10498,7 @@ static const per_sequence_t TraceStart_sequence[] = {
static int
dissect_s1ap_TraceStart(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1902 "./asn1/s1ap/s1ap.cnf"
+#line 2005 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceStart");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9970,7 +10515,7 @@ static const per_sequence_t TraceFailureIndication_sequence[] = {
static int
dissect_s1ap_TraceFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1904 "./asn1/s1ap/s1ap.cnf"
+#line 2007 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceFailureIndication");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -9987,7 +10532,7 @@ static const per_sequence_t DeactivateTrace_sequence[] = {
static int
dissect_s1ap_DeactivateTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1906 "./asn1/s1ap/s1ap.cnf"
+#line 2009 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DeactivateTrace");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10004,7 +10549,7 @@ static const per_sequence_t CellTrafficTrace_sequence[] = {
static int
dissect_s1ap_CellTrafficTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1908 "./asn1/s1ap/s1ap.cnf"
+#line 2011 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CellTrafficTrace");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10021,7 +10566,7 @@ static const per_sequence_t LocationReportingControl_sequence[] = {
static int
dissect_s1ap_LocationReportingControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1910 "./asn1/s1ap/s1ap.cnf"
+#line 2013 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReportingControl");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10038,7 +10583,7 @@ static const per_sequence_t LocationReportingFailureIndication_sequence[] = {
static int
dissect_s1ap_LocationReportingFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1912 "./asn1/s1ap/s1ap.cnf"
+#line 2015 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReportingFailureIndication");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10055,7 +10600,7 @@ static const per_sequence_t LocationReport_sequence[] = {
static int
dissect_s1ap_LocationReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1914 "./asn1/s1ap/s1ap.cnf"
+#line 2017 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReport");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10072,7 +10617,7 @@ static const per_sequence_t OverloadStart_sequence[] = {
static int
dissect_s1ap_OverloadStart(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1916 "./asn1/s1ap/s1ap.cnf"
+#line 2019 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "OverloadStart");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10089,7 +10634,7 @@ static const per_sequence_t OverloadStop_sequence[] = {
static int
dissect_s1ap_OverloadStop(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1918 "./asn1/s1ap/s1ap.cnf"
+#line 2021 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "OverloadStop");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10106,7 +10651,7 @@ static const per_sequence_t WriteReplaceWarningRequest_sequence[] = {
static int
dissect_s1ap_WriteReplaceWarningRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1920 "./asn1/s1ap/s1ap.cnf"
+#line 2023 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10123,7 +10668,7 @@ static const per_sequence_t WriteReplaceWarningResponse_sequence[] = {
static int
dissect_s1ap_WriteReplaceWarningResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1922 "./asn1/s1ap/s1ap.cnf"
+#line 2025 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningResponse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10140,7 +10685,7 @@ static const per_sequence_t ENBDirectInformationTransfer_sequence[] = {
static int
dissect_s1ap_ENBDirectInformationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1924 "./asn1/s1ap/s1ap.cnf"
+#line 2027 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBDirectInformationTransfer");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10177,7 +10722,7 @@ static const per_sequence_t MMEDirectInformationTransfer_sequence[] = {
static int
dissect_s1ap_MMEDirectInformationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1926 "./asn1/s1ap/s1ap.cnf"
+#line 2029 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEDirectInformationTransfer");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10194,7 +10739,7 @@ static const per_sequence_t ENBConfigurationTransfer_sequence[] = {
static int
dissect_s1ap_ENBConfigurationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1928 "./asn1/s1ap/s1ap.cnf"
+#line 2031 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationTransfer");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10211,7 +10756,7 @@ static const per_sequence_t MMEConfigurationTransfer_sequence[] = {
static int
dissect_s1ap_MMEConfigurationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1930 "./asn1/s1ap/s1ap.cnf"
+#line 2033 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationTransfer");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10228,7 +10773,7 @@ static const per_sequence_t PrivateMessage_sequence[] = {
static int
dissect_s1ap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1932 "./asn1/s1ap/s1ap.cnf"
+#line 2035 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PrivateMessage");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10245,7 +10790,7 @@ static const per_sequence_t KillRequest_sequence[] = {
static int
dissect_s1ap_KillRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1934 "./asn1/s1ap/s1ap.cnf"
+#line 2037 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "KillRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10262,7 +10807,7 @@ static const per_sequence_t KillResponse_sequence[] = {
static int
dissect_s1ap_KillResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1936 "./asn1/s1ap/s1ap.cnf"
+#line 2039 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "KillResponse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10279,7 +10824,7 @@ static const per_sequence_t PWSRestartIndication_sequence[] = {
static int
dissect_s1ap_PWSRestartIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1938 "./asn1/s1ap/s1ap.cnf"
+#line 2041 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSRestartIndication");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10296,7 +10841,7 @@ static const per_sequence_t PWSFailureIndication_sequence[] = {
static int
dissect_s1ap_PWSFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1940 "./asn1/s1ap/s1ap.cnf"
+#line 2043 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSFailureIndication");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10313,7 +10858,7 @@ static const per_sequence_t DownlinkUEAssociatedLPPaTransport_sequence[] = {
static int
dissect_s1ap_DownlinkUEAssociatedLPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1942 "./asn1/s1ap/s1ap.cnf"
+#line 2045 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkUEAssociatedLPPaTransport");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10330,7 +10875,7 @@ static const per_sequence_t UplinkUEAssociatedLPPaTransport_sequence[] = {
static int
dissect_s1ap_UplinkUEAssociatedLPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1944 "./asn1/s1ap/s1ap.cnf"
+#line 2047 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkUEAssociatedLPPaTransport");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10347,7 +10892,7 @@ static const per_sequence_t DownlinkNonUEAssociatedLPPaTransport_sequence[] = {
static int
dissect_s1ap_DownlinkNonUEAssociatedLPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1946 "./asn1/s1ap/s1ap.cnf"
+#line 2049 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkNonUEAssociatedLPPaTransport");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10364,7 +10909,7 @@ static const per_sequence_t UplinkNonUEAssociatedLPPaTransport_sequence[] = {
static int
dissect_s1ap_UplinkNonUEAssociatedLPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1948 "./asn1/s1ap/s1ap.cnf"
+#line 2051 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkNonUEAssociatedLPPaTransport");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10381,7 +10926,7 @@ static const per_sequence_t E_RABModificationIndication_sequence[] = {
static int
dissect_s1ap_E_RABModificationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1950 "./asn1/s1ap/s1ap.cnf"
+#line 2053 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModificationIndication");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10468,7 +11013,7 @@ static const per_sequence_t E_RABModificationConfirm_sequence[] = {
static int
dissect_s1ap_E_RABModificationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1952 "./asn1/s1ap/s1ap.cnf"
+#line 2055 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModificationConfirm");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10514,7 +11059,7 @@ static const per_sequence_t UEContextModificationIndication_sequence[] = {
static int
dissect_s1ap_UEContextModificationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1954 "./asn1/s1ap/s1ap.cnf"
+#line 2057 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationIndication");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10531,7 +11076,7 @@ static const per_sequence_t UEContextModificationConfirm_sequence[] = {
static int
dissect_s1ap_UEContextModificationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1956 "./asn1/s1ap/s1ap.cnf"
+#line 2059 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationConfirm");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10548,7 +11093,7 @@ static const per_sequence_t UEContextSuspendRequest_sequence[] = {
static int
dissect_s1ap_UEContextSuspendRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1958 "./asn1/s1ap/s1ap.cnf"
+#line 2061 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSuspendRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10565,7 +11110,7 @@ static const per_sequence_t UEContextSuspendResponse_sequence[] = {
static int
dissect_s1ap_UEContextSuspendResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1960 "./asn1/s1ap/s1ap.cnf"
+#line 2063 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSuspendResponse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10582,7 +11127,7 @@ static const per_sequence_t UEContextResumeRequest_sequence[] = {
static int
dissect_s1ap_UEContextResumeRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1962 "./asn1/s1ap/s1ap.cnf"
+#line 2065 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeRequest");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10624,7 +11169,7 @@ static const per_sequence_t UEContextResumeResponse_sequence[] = {
static int
dissect_s1ap_UEContextResumeResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1964 "./asn1/s1ap/s1ap.cnf"
+#line 2067 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeResponse");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10666,7 +11211,7 @@ static const per_sequence_t UEContextResumeFailure_sequence[] = {
static int
dissect_s1ap_UEContextResumeFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1966 "./asn1/s1ap/s1ap.cnf"
+#line 2069 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeFailure");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10683,7 +11228,7 @@ static const per_sequence_t ConnectionEstablishmentIndication_sequence[] = {
static int
dissect_s1ap_ConnectionEstablishmentIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1968 "./asn1/s1ap/s1ap.cnf"
+#line 2071 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ConnectionEstablishmentIndication");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10700,7 +11245,7 @@ static const per_sequence_t RetrieveUEInformation_sequence[] = {
static int
dissect_s1ap_RetrieveUEInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1972 "./asn1/s1ap/s1ap.cnf"
+#line 2075 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RetrieveUEInformation");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10717,7 +11262,7 @@ static const per_sequence_t UEInformationTransfer_sequence[] = {
static int
dissect_s1ap_UEInformationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1974 "./asn1/s1ap/s1ap.cnf"
+#line 2077 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEInformationTransfer");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10734,7 +11279,7 @@ static const per_sequence_t ENBCPRelocationIndication_sequence[] = {
static int
dissect_s1ap_ENBCPRelocationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1976 "./asn1/s1ap/s1ap.cnf"
+#line 2079 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBCPRelocationIndication");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10751,7 +11296,7 @@ static const per_sequence_t MMECPRelocationIndication_sequence[] = {
static int
dissect_s1ap_MMECPRelocationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1978 "./asn1/s1ap/s1ap.cnf"
+#line 2081 "./asn1/s1ap/s1ap.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMECPRelocationIndication");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -10761,6 +11306,23 @@ dissect_s1ap_MMECPRelocationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_c
}
+static const per_sequence_t SecondaryRATReport_sequence[] = {
+ { &hf_s1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_Container },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_s1ap_SecondaryRATReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 2083 "./asn1/s1ap/s1ap.cnf"
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SecondaryRATReport");
+
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_s1ap_SecondaryRATReport, SecondaryRATReport_sequence);
+
+ return offset;
+}
+
+
static int
dissect_s1ap_InitiatingMessage_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
@@ -12087,6 +12649,14 @@ static int dissect_E_RABLevelQoSParameters_PDU(tvbuff_t *tvb _U_, packet_info *p
offset += 7; offset >>= 3;
return offset;
}
+static int dissect_E_RABUsageReportItem_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_s1ap_E_RABUsageReportItem(tvb, offset, &asn1_ctx, tree, hf_s1ap_E_RABUsageReportItem_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
static int dissect_EUTRAN_CGI_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
@@ -12111,6 +12681,14 @@ static int dissect_ExpectedUEBehaviour_PDU(tvbuff_t *tvb _U_, packet_info *pinfo
offset += 7; offset >>= 3;
return offset;
}
+static int dissect_ExtendedBitRate_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_s1ap_ExtendedBitRate(tvb, offset, &asn1_ctx, tree, hf_s1ap_ExtendedBitRate_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
static int dissect_ExtendedRepetitionPeriod_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
@@ -12151,6 +12729,14 @@ static int dissect_GWContextReleaseIndication_PDU(tvbuff_t *tvb _U_, packet_info
offset += 7; offset >>= 3;
return offset;
}
+static int dissect_HandoverFlag_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_s1ap_HandoverFlag(tvb, offset, &asn1_ctx, tree, hf_s1ap_HandoverFlag_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
static int dissect_HandoverRestrictionList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
@@ -12431,6 +13017,22 @@ static int dissect_NB_IoT_UEIdentityIndexValue_PDU(tvbuff_t *tvb _U_, packet_inf
offset += 7; offset >>= 3;
return offset;
}
+static int dissect_NRrestriction_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_s1ap_NRrestriction(tvb, offset, &asn1_ctx, tree, hf_s1ap_NRrestriction_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_NRUESecurityCapabilities_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_s1ap_NRUESecurityCapabilities(tvb, offset, &asn1_ctx, tree, hf_s1ap_NRUESecurityCapabilities_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
static int dissect_NumberofBroadcastRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
@@ -12607,6 +13209,30 @@ static int dissect_SecurityContext_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_
offset += 7; offset >>= 3;
return offset;
}
+static int dissect_SecondaryRATusageDataRequst_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_s1ap_SecondaryRATusageDataRequst(tvb, offset, &asn1_ctx, tree, hf_s1ap_SecondaryRATusageDataRequst_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_SecondaryRATusageReportList_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_s1ap_SecondaryRATusageReportList(tvb, offset, &asn1_ctx, tree, hf_s1ap_SecondaryRATusageReportList_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_SecondaryRATusageReportItem_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_s1ap_SecondaryRATusageReportItem(tvb, offset, &asn1_ctx, tree, hf_s1ap_SecondaryRATusageReportItem_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
static int dissect_SerialNumber_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
@@ -12839,6 +13465,14 @@ static int dissect_UEAggregateMaximumBitrate_PDU(tvbuff_t *tvb _U_, packet_info
offset += 7; offset >>= 3;
return offset;
}
+static int dissect_UEAppLayerMeasConfig_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_s1ap_UEAppLayerMeasConfig(tvb, offset, &asn1_ctx, tree, hf_s1ap_UEAppLayerMeasConfig_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
static int dissect_UE_RetentionInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
@@ -12959,6 +13593,14 @@ static int dissect_UEUserPlaneCIoTSupportIndicator_PDU(tvbuff_t *tvb _U_, packet
offset += 7; offset >>= 3;
return offset;
}
+static int dissect_UE_Application_Layer_Measurement_Capability_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_s1ap_UE_Application_Layer_Measurement_Capability(tvb, offset, &asn1_ctx, tree, hf_s1ap_UE_Application_Layer_Measurement_Capability_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
static int dissect_VoiceSupportMatchIndicator_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
@@ -14111,6 +14753,14 @@ static int dissect_MMECPRelocationIndication_PDU(tvbuff_t *tvb _U_, packet_info
offset += 7; offset >>= 3;
return offset;
}
+static int dissect_SecondaryRATReport_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_s1ap_SecondaryRATReport(tvb, offset, &asn1_ctx, tree, hf_s1ap_SecondaryRATReport_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
static int dissect_S1AP_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;
@@ -14154,7 +14804,7 @@ int dissect_s1ap_SONtransferCause_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_,
/*--- End of included file: packet-s1ap-fn.c ---*/
-#line 344 "./asn1/s1ap/packet-s1ap-template.c"
+#line 358 "./asn1/s1ap/packet-s1ap-template.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
@@ -14469,6 +15119,13 @@ proto_reg_handoff_s1ap(void)
dissector_add_uint("s1ap.ies", id_DL_CP_SecurityInformation, create_dissector_handle(dissect_DL_CP_SecurityInformation_PDU, proto_s1ap));
dissector_add_uint("s1ap.ies", id_UE_Level_QoS_Parameters, create_dissector_handle(dissect_E_RABLevelQoSParameters_PDU, proto_s1ap));
dissector_add_uint("s1ap.ies", id_UL_CP_SecurityInformation, create_dissector_handle(dissect_UL_CP_SecurityInformation_PDU, proto_s1ap));
+ dissector_add_uint("s1ap.ies", id_E_RABUsageReportItem, create_dissector_handle(dissect_E_RABUsageReportItem_PDU, proto_s1ap));
+ dissector_add_uint("s1ap.ies", id_SecondaryRATusageReportItem, create_dissector_handle(dissect_SecondaryRATusageReportItem_PDU, proto_s1ap));
+ dissector_add_uint("s1ap.ies", id_NRUESecurityCapabilities, create_dissector_handle(dissect_NRUESecurityCapabilities_PDU, proto_s1ap));
+ dissector_add_uint("s1ap.ies", id_SecondaryRATusageDataRequst, create_dissector_handle(dissect_SecondaryRATusageDataRequst_PDU, proto_s1ap));
+ dissector_add_uint("s1ap.ies", id_SecondaryRATusageReportList, create_dissector_handle(dissect_SecondaryRATusageReportList_PDU, proto_s1ap));
+ dissector_add_uint("s1ap.ies", id_UE_Application_Layer_Measurement_Capability, create_dissector_handle(dissect_UE_Application_Layer_Measurement_Capability_PDU, proto_s1ap));
+ dissector_add_uint("s1ap.ies", id_HandoverFlag, create_dissector_handle(dissect_HandoverFlag_PDU, proto_s1ap));
dissector_add_uint("s1ap.extension", id_Data_Forwarding_Not_Possible, create_dissector_handle(dissect_Data_Forwarding_Not_Possible_PDU, proto_s1ap));
dissector_add_uint("s1ap.extension", id_Time_Synchronisation_Info, create_dissector_handle(dissect_TimeSynchronisationInfo_PDU, proto_s1ap));
dissector_add_uint("s1ap.extension", id_x2TNLConfigurationInfo, create_dissector_handle(dissect_X2TNLConfigurationInfo_PDU, proto_s1ap));
@@ -14503,6 +15160,14 @@ proto_reg_handoff_s1ap(void)
dissector_add_uint("s1ap.extension", id_M7Configuration, create_dissector_handle(dissect_M7Configuration_PDU, proto_s1ap));
dissector_add_uint("s1ap.extension", id_RAT_Type, create_dissector_handle(dissect_RAT_Type_PDU, proto_s1ap));
dissector_add_uint("s1ap.extension", id_BearerType, create_dissector_handle(dissect_BearerType_PDU, proto_s1ap));
+ dissector_add_uint("s1ap.extension", id_extended_e_RAB_MaximumBitrateDL, create_dissector_handle(dissect_ExtendedBitRate_PDU, proto_s1ap));
+ dissector_add_uint("s1ap.extension", id_extended_e_RAB_MaximumBitrateUL, create_dissector_handle(dissect_ExtendedBitRate_PDU, proto_s1ap));
+ dissector_add_uint("s1ap.extension", id_extended_e_RAB_GuaranteedBitrateDL, create_dissector_handle(dissect_ExtendedBitRate_PDU, proto_s1ap));
+ dissector_add_uint("s1ap.extension", id_extended_e_RAB_GuaranteedBitrateUL, create_dissector_handle(dissect_ExtendedBitRate_PDU, proto_s1ap));
+ dissector_add_uint("s1ap.extension", id_NRrestriction, create_dissector_handle(dissect_NRrestriction_PDU, proto_s1ap));
+ dissector_add_uint("s1ap.extension", id_UEAppLayerMeasConfig, create_dissector_handle(dissect_UEAppLayerMeasConfig_PDU, proto_s1ap));
+ dissector_add_uint("s1ap.extension", id_extended_uEaggregateMaximumBitRateDL, create_dissector_handle(dissect_ExtendedBitRate_PDU, proto_s1ap));
+ dissector_add_uint("s1ap.extension", id_extended_uEaggregateMaximumBitRateUL, create_dissector_handle(dissect_ExtendedBitRate_PDU, proto_s1ap));
dissector_add_uint("s1ap.proc.imsg", id_HandoverPreparation, create_dissector_handle(dissect_HandoverRequired_PDU, proto_s1ap));
dissector_add_uint("s1ap.proc.sout", id_HandoverPreparation, create_dissector_handle(dissect_HandoverCommand_PDU, proto_s1ap));
dissector_add_uint("s1ap.proc.uout", id_HandoverPreparation, create_dissector_handle(dissect_HandoverPreparationFailure_PDU, proto_s1ap));
@@ -14595,10 +15260,11 @@ proto_reg_handoff_s1ap(void)
dissector_add_uint("s1ap.proc.imsg", id_UEInformationTransfer, create_dissector_handle(dissect_UEInformationTransfer_PDU, proto_s1ap));
dissector_add_uint("s1ap.proc.imsg", id_eNBCPRelocationIndication, create_dissector_handle(dissect_ENBCPRelocationIndication_PDU, proto_s1ap));
dissector_add_uint("s1ap.proc.imsg", id_MMECPRelocationIndication, create_dissector_handle(dissect_MMECPRelocationIndication_PDU, proto_s1ap));
+ dissector_add_uint("s1ap.proc.imsg", id_SecondaryRATReport, create_dissector_handle(dissect_SecondaryRATReport_PDU, proto_s1ap));
/*--- End of included file: packet-s1ap-dis-tab.c ---*/
-#line 460 "./asn1/s1ap/packet-s1ap-template.c"
+#line 474 "./asn1/s1ap/packet-s1ap-template.c"
} else {
if (SctpPort != 0) {
dissector_delete_uint("sctp.port", SctpPort, s1ap_handle);
@@ -14757,6 +15423,46 @@ void proto_register_s1ap(void) {
{ "Reserved", "s1ap.MDT_Location_Info.Reserved",
FT_UINT8, BASE_HEX, NULL, 0x3f,
NULL, HFILL }},
+ { &hf_s1ap_NRencryptionAlgorithms_NEA1,
+ { "128-NEA1", "s1ap.NRencryptionAlgorithms.NEA1",
+ FT_BOOLEAN, 16, TFS(&tfs_supported_not_supported), 0x8000,
+ NULL, HFILL }},
+ { &hf_s1ap_NRencryptionAlgorithms_NEA2,
+ { "128-NEA2", "s1ap.NRencryptionAlgorithms.NEA2",
+ FT_BOOLEAN, 16, TFS(&tfs_supported_not_supported), 0x4000,
+ NULL, HFILL }},
+ { &hf_s1ap_NRencryptionAlgorithms_NEA3,
+ { "128-NEA3", "s1ap.NRencryptionAlgorithms.NEA3",
+ FT_BOOLEAN, 16, TFS(&tfs_supported_not_supported), 0x2000,
+ NULL, HFILL }},
+ { &hf_s1ap_NRencryptionAlgorithms_Reserved,
+ { "Reserved", "s1ap.NRencryptionAlgorithms.Reserved",
+ FT_UINT16, BASE_HEX, NULL, 0x1fff,
+ NULL, HFILL }},
+ { &hf_s1ap_NRintegrityProtectionAlgorithms_NIA1,
+ { "128-NIA1", "s1ap.NRintegrityProtectionAlgorithms.NIA1",
+ FT_BOOLEAN, 16, TFS(&tfs_supported_not_supported), 0x8000,
+ NULL, HFILL }},
+ { &hf_s1ap_NRintegrityProtectionAlgorithms_NIA2,
+ { "128-NIA2", "s1ap.NRintegrityProtectionAlgorithms.NIA2",
+ FT_BOOLEAN, 16, TFS(&tfs_supported_not_supported), 0x4000,
+ NULL, HFILL }},
+ { &hf_s1ap_NRintegrityProtectionAlgorithms_NIA3,
+ { "128-NIA3", "s1ap.NRintegrityProtectionAlgorithms.NIA3",
+ FT_BOOLEAN, 16, TFS(&tfs_supported_not_supported), 0x2000,
+ NULL, HFILL }},
+ { &hf_s1ap_NRintegrityProtectionAlgorithms_Reserved,
+ { "Reserved", "s1ap.NRintegrityProtectionAlgorithms.Reserved",
+ FT_UINT16, BASE_HEX, NULL, 0x1fff,
+ NULL, HFILL }},
+ { &hf_s1ap_UE_Application_Layer_Measurement_Capability_QoE_Measurement,
+ { "QoE Measurement", "s1ap.UE_Application_Layer_Measurement_Capability.QoE_Measurement",
+ FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x80,
+ NULL, HFILL }},
+ { &hf_s1ap_UE_Application_Layer_Measurement_Capability_Reserved,
+ { "Reserved", "s1ap.UE_Application_Layer_Measurement_Capability.Reserved",
+ FT_UINT8, BASE_HEX, NULL, 0x7f,
+ NULL, HFILL }},
/*--- Included file: packet-s1ap-hfarr.c ---*/
#line 1 "./asn1/s1ap/packet-s1ap-hfarr.c"
@@ -14952,6 +15658,10 @@ void proto_register_s1ap(void) {
{ "E-RABLevelQoSParameters", "s1ap.E_RABLevelQoSParameters_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_s1ap_E_RABUsageReportItem_PDU,
+ { "E-RABUsageReportItem", "s1ap.E_RABUsageReportItem_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_s1ap_EUTRAN_CGI_PDU,
{ "EUTRAN-CGI", "s1ap.EUTRAN_CGI_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -14964,6 +15674,10 @@ void proto_register_s1ap(void) {
{ "ExpectedUEBehaviour", "s1ap.ExpectedUEBehaviour_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_s1ap_ExtendedBitRate_PDU,
+ { "ExtendedBitRate", "s1ap.ExtendedBitRate",
+ FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ NULL, HFILL }},
{ &hf_s1ap_ExtendedRepetitionPeriod_PDU,
{ "ExtendedRepetitionPeriod", "s1ap.ExtendedRepetitionPeriod",
FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0,
@@ -14984,6 +15698,10 @@ void proto_register_s1ap(void) {
{ "GWContextReleaseIndication", "s1ap.GWContextReleaseIndication",
FT_UINT32, BASE_DEC, VALS(s1ap_GWContextReleaseIndication_vals), 0,
NULL, HFILL }},
+ { &hf_s1ap_HandoverFlag_PDU,
+ { "HandoverFlag", "s1ap.HandoverFlag",
+ FT_UINT32, BASE_DEC, VALS(s1ap_HandoverFlag_vals), 0,
+ NULL, HFILL }},
{ &hf_s1ap_HandoverRestrictionList_PDU,
{ "HandoverRestrictionList", "s1ap.HandoverRestrictionList_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -15124,6 +15842,14 @@ void proto_register_s1ap(void) {
{ "NB-IoT-UEIdentityIndexValue", "s1ap.NB_IoT_UEIdentityIndexValue",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_s1ap_NRrestriction_PDU,
+ { "NRrestriction", "s1ap.NRrestriction",
+ FT_UINT32, BASE_DEC, VALS(s1ap_NRrestriction_vals), 0,
+ NULL, HFILL }},
+ { &hf_s1ap_NRUESecurityCapabilities_PDU,
+ { "NRUESecurityCapabilities", "s1ap.NRUESecurityCapabilities_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_s1ap_NumberofBroadcastRequest_PDU,
{ "NumberofBroadcastRequest", "s1ap.NumberofBroadcastRequest",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -15212,6 +15938,18 @@ void proto_register_s1ap(void) {
{ "SecurityContext", "s1ap.SecurityContext_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_s1ap_SecondaryRATusageDataRequst_PDU,
+ { "SecondaryRATusageDataRequst", "s1ap.SecondaryRATusageDataRequst",
+ FT_UINT32, BASE_DEC, VALS(s1ap_SecondaryRATusageDataRequst_vals), 0,
+ NULL, HFILL }},
+ { &hf_s1ap_SecondaryRATusageReportList_PDU,
+ { "SecondaryRATusageReportList", "s1ap.SecondaryRATusageReportList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_s1ap_SecondaryRATusageReportItem_PDU,
+ { "SecondaryRATusageReportItem", "s1ap.SecondaryRATusageReportItem_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_s1ap_SerialNumber_PDU,
{ "SerialNumber", "s1ap.SerialNumber",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -15328,6 +16066,10 @@ void proto_register_s1ap(void) {
{ "UEAggregateMaximumBitrate", "s1ap.UEAggregateMaximumBitrate_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_s1ap_UEAppLayerMeasConfig_PDU,
+ { "UEAppLayerMeasConfig", "s1ap.UEAppLayerMeasConfig_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_s1ap_UE_RetentionInformation_PDU,
{ "UE-RetentionInformation", "s1ap.UE_RetentionInformation",
FT_UINT32, BASE_DEC, VALS(s1ap_UE_RetentionInformation_vals), 0,
@@ -15388,6 +16130,10 @@ void proto_register_s1ap(void) {
{ "UEUserPlaneCIoTSupportIndicator", "s1ap.UEUserPlaneCIoTSupportIndicator",
FT_UINT32, BASE_DEC, VALS(s1ap_UEUserPlaneCIoTSupportIndicator_vals), 0,
NULL, HFILL }},
+ { &hf_s1ap_UE_Application_Layer_Measurement_Capability_PDU,
+ { "UE-Application-Layer-Measurement-Capability", "s1ap.UE_Application_Layer_Measurement_Capability",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_s1ap_VoiceSupportMatchIndicator_PDU,
{ "VoiceSupportMatchIndicator", "s1ap.VoiceSupportMatchIndicator",
FT_UINT32, BASE_DEC, VALS(s1ap_VoiceSupportMatchIndicator_vals), 0,
@@ -15964,6 +16710,10 @@ void proto_register_s1ap(void) {
{ "MMECPRelocationIndication", "s1ap.MMECPRelocationIndication_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_s1ap_SecondaryRATReport_PDU,
+ { "SecondaryRATReport", "s1ap.SecondaryRATReport_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_s1ap_S1AP_PDU_PDU,
{ "S1AP-PDU", "s1ap.S1AP_PDU",
FT_UINT32, BASE_DEC, VALS(s1ap_S1AP_PDU_vals), 0,
@@ -16064,6 +16814,22 @@ void proto_register_s1ap(void) {
{ "tAIBased", "s1ap.tAIBased_element",
FT_NONE, BASE_NONE, NULL, 0,
"TAIBasedMDT", HFILL }},
+ { &hf_s1ap_cellBased_01,
+ { "cellBased", "s1ap.cellBased_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "CellBasedQMC", HFILL }},
+ { &hf_s1ap_tABased_01,
+ { "tABased", "s1ap.tABased_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "TABasedQMC", HFILL }},
+ { &hf_s1ap_tAIBased_01,
+ { "tAIBased", "s1ap.tAIBased_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "TAIBasedQMC", HFILL }},
+ { &hf_s1ap_pLMNAreaBased,
+ { "pLMNAreaBased", "s1ap.pLMNAreaBased_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "PLMNAreaBasedQMC", HFILL }},
{ &hf_s1ap_priorityLevel,
{ "priorityLevel", "s1ap.priorityLevel",
FT_UINT32, BASE_DEC, VALS(s1ap_PriorityLevel_vals), 0,
@@ -16204,6 +16970,14 @@ void proto_register_s1ap(void) {
{ "EUTRAN-CGI", "s1ap.EUTRAN_CGI_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_s1ap_cellIdListforQMC,
+ { "cellIdListforQMC", "s1ap.cellIdListforQMC",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_s1ap_CellIdListforQMC_item,
+ { "EUTRAN-CGI", "s1ap.EUTRAN_CGI_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_s1ap_cdma2000OneXMEID,
{ "cdma2000OneXMEID", "s1ap.cdma2000OneXMEID",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -16428,6 +17202,26 @@ void proto_register_s1ap(void) {
{ "gbrQosInformation", "s1ap.gbrQosInformation_element",
FT_NONE, BASE_NONE, NULL, 0,
"GBR_QosInformation", HFILL }},
+ { &hf_s1ap_E_RABUsageReportList_item,
+ { "ProtocolIE-SingleContainer", "s1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_s1ap_startTimestamp,
+ { "startTimestamp", "s1ap.startTimestamp",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_s1ap_endTimestamp,
+ { "endTimestamp", "s1ap.endTimestamp",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_s1ap_usageCountUL,
+ { "usageCountUL", "s1ap.usageCountUL",
+ FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_octet_octets, 0,
+ "INTEGER", HFILL }},
+ { &hf_s1ap_usageCountDL,
+ { "usageCountDL", "s1ap.usageCountDL",
+ FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_octet_octets, 0,
+ "INTEGER", HFILL }},
{ &hf_s1ap_cell_ID,
{ "cell-ID", "s1ap.cell_ID",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -16700,6 +17494,14 @@ void proto_register_s1ap(void) {
{ "nB-IoT-pagingTimeWindow", "s1ap.nB_IoT_pagingTimeWindow",
FT_UINT32, BASE_DEC, VALS(s1ap_NB_IoT_PagingTimeWindow_vals), 0,
NULL, HFILL }},
+ { &hf_s1ap_nRencryptionAlgorithms,
+ { "nRencryptionAlgorithms", "s1ap.nRencryptionAlgorithms",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_s1ap_nRintegrityProtectionAlgorithms,
+ { "nRintegrityProtectionAlgorithms", "s1ap.nRintegrityProtectionAlgorithms",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_s1ap_overloadAction,
{ "overloadAction", "s1ap.overloadAction",
FT_UINT32, BASE_DEC, VALS(s1ap_OverloadAction_vals), 0,
@@ -16732,6 +17534,14 @@ void proto_register_s1ap(void) {
{ "reportAmount", "s1ap.reportAmount",
FT_UINT32, BASE_DEC, VALS(s1ap_ReportAmountMDT_vals), 0,
"ReportAmountMDT", HFILL }},
+ { &hf_s1ap_plmnListforQMC,
+ { "plmnListforQMC", "s1ap.plmnListforQMC",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_s1ap_PLMNListforQMC_item,
+ { "PLMNidentity", "s1ap.PLMNidentity",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_s1ap_proSeDirectDiscovery,
{ "proSeDirectDiscovery", "s1ap.proSeDirectDiscovery",
FT_UINT32, BASE_DEC, VALS(s1ap_ProSeDirectDiscovery_vals), 0,
@@ -16816,6 +17626,18 @@ void proto_register_s1ap(void) {
{ "nextHopParameter", "s1ap.nextHopParameter",
FT_BYTES, BASE_NONE, NULL, 0,
"SecurityKey", HFILL }},
+ { &hf_s1ap_SecondaryRATusageReportList_item,
+ { "ProtocolIE-SingleContainer", "s1ap.ProtocolIE_SingleContainer_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_s1ap_secondaryRATType,
+ { "secondaryRATType", "s1ap.secondaryRATType",
+ FT_UINT32, BASE_DEC, VALS(s1ap_SecondaryRATType_vals), 0,
+ NULL, HFILL }},
+ { &hf_s1ap_e_RABUsageReportList,
+ { "e-RABUsageReportList", "s1ap.e_RABUsageReportList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
{ &hf_s1ap_sONInformationRequest,
{ "sONInformationRequest", "s1ap.sONInformationRequest",
FT_UINT32, BASE_DEC, VALS(s1ap_SONInformationRequest_vals), 0,
@@ -16972,6 +17794,22 @@ void proto_register_s1ap(void) {
{ "TAC", "s1ap.TAC",
FT_UINT16, BASE_DEC_HEX, NULL, 0,
NULL, HFILL }},
+ { &hf_s1ap_tAListforQMC,
+ { "tAListforQMC", "s1ap.tAListforQMC",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_s1ap_TAListforQMC_item,
+ { "TAC", "s1ap.TAC",
+ FT_UINT16, BASE_DEC_HEX, NULL, 0,
+ NULL, HFILL }},
+ { &hf_s1ap_tAIListforQMC,
+ { "tAIListforQMC", "s1ap.tAIListforQMC",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_s1ap_TAIListforQMC_item,
+ { "TAI", "s1ap.TAI_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_s1ap_CompletedCellinTAI_item,
{ "CompletedCellinTAI-Item", "s1ap.CompletedCellinTAI_Item_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -17032,6 +17870,14 @@ void proto_register_s1ap(void) {
{ "uEaggregateMaximumBitRateUL", "s1ap.uEaggregateMaximumBitRateUL",
FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
"BitRate", HFILL }},
+ { &hf_s1ap_containerForAppLayerMeasConfig,
+ { "containerForAppLayerMeasConfig", "s1ap.containerForAppLayerMeasConfig",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING_SIZE_1_1000", HFILL }},
+ { &hf_s1ap_areaScopeOfQMC,
+ { "areaScopeOfQMC", "s1ap.areaScopeOfQMC",
+ FT_UINT32, BASE_DEC, VALS(s1ap_AreaScopeOfQMC_vals), 0,
+ NULL, HFILL }},
{ &hf_s1ap_uE_S1AP_ID_pair,
{ "uE-S1AP-ID-pair", "s1ap.uE_S1AP_ID_pair_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -17538,7 +18384,7 @@ void proto_register_s1ap(void) {
NULL, HFILL }},
/*--- End of included file: packet-s1ap-hfarr.c ---*/
-#line 619 "./asn1/s1ap/packet-s1ap-template.c"
+#line 673 "./asn1/s1ap/packet-s1ap-template.c"
};
/* List of subtrees */
@@ -17572,6 +18418,9 @@ void proto_register_s1ap(void) {
&ett_s1ap_MDT_Location_Info,
&ett_s1ap_IMSI,
&ett_s1ap_NASSecurityParameters,
+ &ett_s1ap_NRencryptionAlgorithms,
+ &ett_s1ap_NRintegrityProtectionAlgorithms,
+ &ett_s1ap_UE_Application_Layer_Measurement_Capability,
/*--- Included file: packet-s1ap-ettarr.c ---*/
#line 1 "./asn1/s1ap/packet-s1ap-ettarr.c"
@@ -17585,6 +18434,7 @@ void proto_register_s1ap(void) {
&ett_s1ap_PrivateIE_Field,
&ett_s1ap_Additional_GUTI,
&ett_s1ap_AreaScopeOfMDT,
+ &ett_s1ap_AreaScopeOfQMC,
&ett_s1ap_AllocationAndRetentionPriority,
&ett_s1ap_AssistanceDataForCECapableUEs,
&ett_s1ap_AssistanceDataForPaging,
@@ -17606,6 +18456,8 @@ void proto_register_s1ap(void) {
&ett_s1ap_CellID_Cancelled_Item,
&ett_s1ap_CellBasedMDT,
&ett_s1ap_CellIdListforMDT,
+ &ett_s1ap_CellBasedQMC,
+ &ett_s1ap_CellIdListforQMC,
&ett_s1ap_Cdma2000OneXSRVCCInfo,
&ett_s1ap_CellType,
&ett_s1ap_CGI,
@@ -17643,6 +18495,8 @@ void proto_register_s1ap(void) {
&ett_s1ap_E_RABList,
&ett_s1ap_E_RABItem,
&ett_s1ap_E_RABLevelQoSParameters,
+ &ett_s1ap_E_RABUsageReportList,
+ &ett_s1ap_E_RABUsageReportItem,
&ett_s1ap_EUTRAN_CGI,
&ett_s1ap_ExpectedUEBehaviour,
&ett_s1ap_ExpectedUEActivityBehaviour,
@@ -17678,10 +18532,13 @@ void proto_register_s1ap(void) {
&ett_s1ap_MMEPagingTarget,
&ett_s1ap_MutingPatternInformation,
&ett_s1ap_NB_IoT_Paging_eDRXInformation,
+ &ett_s1ap_NRUESecurityCapabilities,
&ett_s1ap_OverloadResponse,
&ett_s1ap_PagingAttemptInformation,
&ett_s1ap_Paging_eDRXInformation,
&ett_s1ap_M1PeriodicReporting,
+ &ett_s1ap_PLMNAreaBasedQMC,
+ &ett_s1ap_PLMNListforQMC,
&ett_s1ap_ProSeAuthorized,
&ett_s1ap_RecommendedCellsForPaging,
&ett_s1ap_RecommendedCellList,
@@ -17695,6 +18552,8 @@ void proto_register_s1ap(void) {
&ett_s1ap_RLFReportInformation,
&ett_s1ap_ECGIListForRestart,
&ett_s1ap_SecurityContext,
+ &ett_s1ap_SecondaryRATusageReportList,
+ &ett_s1ap_SecondaryRATusageReportItem,
&ett_s1ap_SONInformation,
&ett_s1ap_SONInformationReply,
&ett_s1ap_SONInformationReport,
@@ -17721,6 +18580,10 @@ void proto_register_s1ap(void) {
&ett_s1ap_TAI_Cancelled_Item,
&ett_s1ap_TABasedMDT,
&ett_s1ap_TAListforMDT,
+ &ett_s1ap_TABasedQMC,
+ &ett_s1ap_TAListforQMC,
+ &ett_s1ap_TAIBasedQMC,
+ &ett_s1ap_TAIListforQMC,
&ett_s1ap_CompletedCellinTAI,
&ett_s1ap_CompletedCellinTAI_Item,
&ett_s1ap_TargetID,
@@ -17733,6 +18596,7 @@ void proto_register_s1ap(void) {
&ett_s1ap_TunnelInformation,
&ett_s1ap_TAIListForRestart,
&ett_s1ap_UEAggregateMaximumBitrate,
+ &ett_s1ap_UEAppLayerMeasConfig,
&ett_s1ap_UE_S1AP_IDs,
&ett_s1ap_UE_S1AP_ID_pair,
&ett_s1ap_UE_associatedLogicalS1_ConnectionItem,
@@ -17874,6 +18738,7 @@ void proto_register_s1ap(void) {
&ett_s1ap_UEInformationTransfer,
&ett_s1ap_ENBCPRelocationIndication,
&ett_s1ap_MMECPRelocationIndication,
+ &ett_s1ap_SecondaryRATReport,
&ett_s1ap_S1AP_PDU,
&ett_s1ap_InitiatingMessage,
&ett_s1ap_SuccessfulOutcome,
@@ -17913,7 +18778,7 @@ void proto_register_s1ap(void) {
&ett_s1ap_EHRPDMultiSectorLoadReportingResponseItem,
/*--- End of included file: packet-s1ap-ettarr.c ---*/
-#line 653 "./asn1/s1ap/packet-s1ap-template.c"
+#line 710 "./asn1/s1ap/packet-s1ap-template.c"
};
static ei_register_info ei[] = {