diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2018-06-22 09:52:40 +0200 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2018-06-22 08:29:03 +0000 |
commit | 3909f8a8b919e9311fa0d5ac79ef218a84dfef9f (patch) | |
tree | 907283692c809c1c79d5c12c4a2a98ae2ef42065 | |
parent | 23bef01ad30a8ef9726f156891f46e6196f6ea22 (diff) |
S1AP: upgrade dissector to v15.2.0
Change-Id: I53feb77f91ac72f4e5f18c56453f2974b8b426be
Reviewed-on: https://code.wireshark.org/review/28376
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
-rw-r--r-- | epan/dissectors/CMakeLists.txt | 1 | ||||
-rw-r--r-- | epan/dissectors/asn1/ngap/ngap.cnf | 20 | ||||
-rw-r--r-- | epan/dissectors/asn1/ngap/packet-ngap-template.c | 1 | ||||
-rw-r--r-- | epan/dissectors/asn1/ngap/packet-ngap-template.h | 29 | ||||
-rw-r--r-- | epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn | 6 | ||||
-rw-r--r-- | epan/dissectors/asn1/s1ap/S1AP-Constants.asn | 36 | ||||
-rw-r--r-- | epan/dissectors/asn1/s1ap/S1AP-Containers.asn | 16 | ||||
-rw-r--r-- | epan/dissectors/asn1/s1ap/S1AP-IEs.asn | 244 | ||||
-rw-r--r-- | epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn | 130 | ||||
-rw-r--r-- | epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn | 16 | ||||
-rw-r--r-- | epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn | 8 | ||||
-rw-r--r-- | epan/dissectors/asn1/s1ap/packet-s1ap-template.c | 20 | ||||
-rw-r--r-- | epan/dissectors/asn1/s1ap/s1ap.cnf | 79 | ||||
-rw-r--r-- | epan/dissectors/packet-ngap.c | 520 | ||||
-rw-r--r-- | epan/dissectors/packet-ngap.h | 44 | ||||
-rw-r--r-- | epan/dissectors/packet-s1ap.c | 963 |
16 files changed, 1649 insertions, 484 deletions
diff --git a/epan/dissectors/CMakeLists.txt b/epan/dissectors/CMakeLists.txt index efa8cd7f13..da38363429 100644 --- a/epan/dissectors/CMakeLists.txt +++ b/epan/dissectors/CMakeLists.txt @@ -441,6 +441,7 @@ set(DISSECTOR_PUBLIC_HEADERS packet-netbios.h packet-netlink.h packet-nfs.h + packet-ngap.h packet-nisplus.h packet-nlm.h packet-nr-rrc.h diff --git a/epan/dissectors/asn1/ngap/ngap.cnf b/epan/dissectors/asn1/ngap/ngap.cnf index da65a7a560..b36f1a0ccc 100644 --- a/epan/dissectors/asn1/ngap/ngap.cnf +++ b/epan/dissectors/asn1/ngap/ngap.cnf @@ -13,9 +13,14 @@ ProtocolIE-ID #.EXPORTS ONLY_VALS WS_DLL #.EXPORTS +SourceNGRANNode-ToTargetNGRANNode-TransparentContainer_PDU +TargetNGRANNode-ToSourceNGRANNode-TransparentContainer_PDU #.PDU NGAP-PDU +SourceNGRANNode-ToTargetNGRANNode-TransparentContainer +TargetNGRANNode-ToSourceNGRANNode-TransparentContainer + #.MAKE_ENUM ProcedureCode @@ -31,22 +36,7 @@ ProtocolIE-ContainerPair ProtocolIE-ContainerPairList Presence ReferenceID -SourceNGRANNode-ToTargetNGRANNode-TransparentContainer -TargetNGRANNode-ToSourceNGRANNode-TransparentContainer AMFStatusIndication -E-RABInformationList -E-RABInformationItem -PDUSessionResourceInformationList -PDUSessionResourceInformationItem -QosFlowInformationList -QosFlowInformationItem -DLForwarding -DRBsToQosFlowsMappingList -DRBsToQosFlowsMappingItem -QosFlowMappingList -QosFlowMappingItem - -RRCContainer #.END diff --git a/epan/dissectors/asn1/ngap/packet-ngap-template.c b/epan/dissectors/asn1/ngap/packet-ngap-template.c index 0633543a52..c3349bc0ff 100644 --- a/epan/dissectors/asn1/ngap/packet-ngap-template.c +++ b/epan/dissectors/asn1/ngap/packet-ngap-template.c @@ -23,6 +23,7 @@ #include <epan/conversation.h> #include <epan/proto_data.h> +#include "packet-ngap.h" #include "packet-ber.h" #include "packet-per.h" #include "packet-e212.h" diff --git a/epan/dissectors/asn1/ngap/packet-ngap-template.h b/epan/dissectors/asn1/ngap/packet-ngap-template.h new file mode 100644 index 0000000000..e682e087b9 --- /dev/null +++ b/epan/dissectors/asn1/ngap/packet-ngap-template.h @@ -0,0 +1,29 @@ +/* packet-s1ap.h + * Routines for E-UTRAN NG Application Protocol (NGAP) packet dissection + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef PACKET_NGAP_H +#define PACKET_NGAP_H + +#include "packet-ngap-exp.h" + +#endif /* PACKET_NGAP_H */ + +/* + * Editor modelines + * + * Local Variables: + * c-basic-offset: 2 + * tab-width: 8 + * indent-tabs-mode: nil + * End: + * + * ex: set shiftwidth=2 tabstop=8 expandtab: + * :indentSize=2:tabSize=8:noTabs=true: + */ diff --git a/epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn b/epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn index a8ddb52705..dfeac62ed3 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 V15.1.0 (2018-03) +-- 3GPP TS 36.413 V15.2.0 (2018-06) -- 9.3.5 Common Definitions -- ************************************************************** -- @@ -7,10 +7,10 @@ -- ************************************************************** S1AP-CommonDataTypes { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-CommonDataTypes (3) } -DEFINITIONS AUTOMATIC TAGS ::= +DEFINITIONS AUTOMATIC TAGS ::= BEGIN diff --git a/epan/dissectors/asn1/s1ap/S1AP-Constants.asn b/epan/dissectors/asn1/s1ap/S1AP-Constants.asn index 22a5b1848f..9bf28f8160 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 V15.1.0 (2018-03) +-- 3GPP TS 36.413 V15.2.0 (2018-06) -- 9.3.6 Constant Definitions -- ************************************************************** -- @@ -6,11 +6,11 @@ -- -- ************************************************************** -S1AP-Constants { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) -eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Constants (4) } +S1AP-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Constants (4) } -DEFINITIONS AUTOMATIC TAGS ::= +DEFINITIONS AUTOMATIC TAGS ::= BEGIN @@ -126,12 +126,12 @@ maxnoofForbTACs INTEGER ::= 4096 maxnoofIndividualS1ConnectionsToReset INTEGER ::= 256 maxnoofCells INTEGER ::= 16 maxnoofCellsineNB INTEGER ::= 256 -maxnoofTAIforWarning INTEGER ::= 65535 -maxnoofCellID INTEGER ::= 65535 -maxnoofDCNs INTEGER ::= 32 -maxnoofEmergencyAreaID INTEGER ::= 65535 -maxnoofCellinTAI INTEGER ::= 65535 -maxnoofCellinEAI INTEGER ::= 65535 +maxnoofTAIforWarning INTEGER ::= 65535 +maxnoofCellID INTEGER ::= 65535 +maxnoofDCNs INTEGER ::= 32 +maxnoofEmergencyAreaID INTEGER ::= 65535 +maxnoofCellinTAI INTEGER ::= 65535 +maxnoofCellinEAI INTEGER ::= 65535 maxnoofeNBX2TLAs INTEGER ::= 2 maxnoofeNBX2ExtTLAs INTEGER ::= 16 maxnoofeNBX2GTPTLAs INTEGER ::= 16 @@ -148,7 +148,7 @@ maxEARFCN INTEGER ::= 262143 maxnoofMBSFNAreaMDT INTEGER ::= 8 maxnoofRecommendedCells INTEGER ::= 16 maxnoofRecommendedENBs INTEGER ::= 16 -maxnooftimeperiods INTEGER ::= 2 +maxnooftimeperiods INTEGER ::= 2 maxnoofCellIDforQMC INTEGER ::= 32 maxnoofTAforQMC INTEGER ::= 8 maxnoofPLMNforQMC INTEGER ::= 16 @@ -445,5 +445,17 @@ id-SecondaryRATDataUsageRequest ProtocolIE-ID ::= 268 id-NRUESecurityCapabilities ProtocolIE-ID ::= 269 id-UnlicensedSpectrumRestriction ProtocolIE-ID ::= 270 id-CE-ModeBRestricted ProtocolIE-ID ::= 271 +id-LTE-M-Indication ProtocolIE-ID ::= 272 +id-DownlinkPacketLossRate ProtocolIE-ID ::= 273 +id-UplinkPacketLossRate ProtocolIE-ID ::= 274 +id-UECapabilityInfoRequest ProtocolIE-ID ::= 275 +id-serviceType ProtocolIE-ID ::= 276 +id-AerialUEsubscriptionInformation ProtocolIE-ID ::= 277 +--WS extension +id-Unknown-278 ProtocolIE-ID ::= 278 +id-Unknown-279 ProtocolIE-ID ::= 279 +id-EndIndication ProtocolIE-ID ::= 280 +id-EDT-Session ProtocolIE-ID ::= 281 +id-CNTypeRestrictions ProtocolIE-ID ::= 282 END diff --git a/epan/dissectors/asn1/s1ap/S1AP-Containers.asn b/epan/dissectors/asn1/s1ap/S1AP-Containers.asn index db084f59b9..0c303df242 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 V15.1.0 (2018-03) +-- 3GPP TS 36.413 V15.2.0 (2018-06) -- 9.3.7 Container Definitions -- ************************************************************** -- @@ -7,10 +7,10 @@ -- ************************************************************** S1AP-Containers { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Containers (5) } -DEFINITIONS AUTOMATIC TAGS ::= +DEFINITIONS AUTOMATIC TAGS ::= BEGIN @@ -119,11 +119,11 @@ WITH SYNTAX { -- -- ************************************************************** -ProtocolIE-Container {S1AP-PROTOCOL-IES : IEsSetParam} ::= +ProtocolIE-Container {S1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE (SIZE (0..maxProtocolIEs)) OF ProtocolIE-Field {{IEsSetParam}} -ProtocolIE-SingleContainer {S1AP-PROTOCOL-IES : IEsSetParam} ::= +ProtocolIE-SingleContainer {S1AP-PROTOCOL-IES : IEsSetParam} ::= ProtocolIE-Field {{IEsSetParam}} ProtocolIE-Field {S1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { @@ -138,7 +138,7 @@ ProtocolIE-Field {S1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { -- -- ************************************************************** -ProtocolIE-ContainerPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= +ProtocolIE-ContainerPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE (SIZE (0..maxProtocolIEs)) OF ProtocolIE-FieldPair {{IEsSetParam}} @@ -170,7 +170,7 @@ ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-P -- -- ************************************************************** -ProtocolExtensionContainer {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= +ProtocolExtensionContainer {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE (SIZE (1..maxProtocolExtensions)) OF ProtocolExtensionField {{ExtensionSetParam}} @@ -186,7 +186,7 @@ ProtocolExtensionField {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENC -- -- ************************************************************** -PrivateIE-Container {S1AP-PRIVATE-IES : IEsSetParam } ::= +PrivateIE-Container {S1AP-PRIVATE-IES : IEsSetParam } ::= SEQUENCE (SIZE (1.. maxPrivateIEs)) OF PrivateIE-Field {{IEsSetParam}} diff --git a/epan/dissectors/asn1/s1ap/S1AP-IEs.asn b/epan/dissectors/asn1/s1ap/S1AP-IEs.asn index 14a48b6c55..e48dd815a3 100644 --- a/epan/dissectors/asn1/s1ap/S1AP-IEs.asn +++ b/epan/dissectors/asn1/s1ap/S1AP-IEs.asn @@ -7,10 +7,10 @@ -- ************************************************************** S1AP-IEs { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-IEs (2) } -DEFINITIONS AUTOMATIC TAGS ::= +DEFINITIONS AUTOMATIC TAGS ::= BEGIN @@ -59,7 +59,10 @@ IMPORTS id-SecondaryRATDataUsageReportItem, id-E-RABUsageReportItem, id-UEAppLayerMeasConfig, - id-UnlicensedSpectrumRestriction, + id-serviceType, + id-UnlicensedSpectrumRestriction, + id-CNTypeRestrictions, id-DownlinkPacketLossRate, + id-UplinkPacketLossRate, maxnoofCSGs, maxnoofE-RABs, maxnoofErrors, @@ -114,7 +117,7 @@ FROM S1AP-CommonDataTypes ProtocolIE-SingleContainer{}, S1AP-PROTOCOL-IES -FROM S1AP-Containers; +FROM S1AP-Containers; -- A @@ -129,7 +132,13 @@ Additional-GUTI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ... } -AreaScopeOfMDT ::= CHOICE { +AerialUEsubscriptionInformation ::= ENUMERATED { + allowed, + not-allowed, + ... +} + +AreaScopeOfMDT ::= CHOICE { cellBased CellBasedMDT, tABased TABasedMDT, pLMNWide NULL, @@ -138,7 +147,7 @@ AreaScopeOfMDT ::= CHOICE { } -AreaScopeOfQMC ::= CHOICE { +AreaScopeOfQMC ::= CHOICE { cellBased CellBasedQMC, tABased TABasedQMC, tAIBased TAIBasedQMC, @@ -181,7 +190,7 @@ AssistanceDataForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { } AssistanceDataForRecommendedCells ::= SEQUENCE { - recommendedCellsForPaging RecommendedCellsForPaging, + recommendedCellsForPaging RecommendedCellsForPaging, iE-Extensions ProtocolExtensionContainer { { AssistanceDataForRecommendedCells-ExtIEs} } OPTIONAL, ... } @@ -223,7 +232,7 @@ BearerType ::= ENUMERATED { ... } -BitRate ::= INTEGER (0..10000000000) +BitRate ::= INTEGER (0..10000000000) BPLMNs ::= SEQUENCE (SIZE(1.. maxnoofBPLMNs)) OF PLMNidentity @@ -305,8 +314,8 @@ CauseRadioNetwork ::= ENUMERATED { tx2relocoverall-expiry, successful-handover, release-due-to-eutran-generated-reason, - handover-cancelled, - partial-handover, + handover-cancelled, + partial-handover, ho-failure-in-target-EPC-eNB-or-target-system, ho-target-not-allowed, tS1relocoverall-expiry, @@ -361,7 +370,7 @@ CauseNas ::= ENUMERATED { } CellAccessMode ::= ENUMERATED { - hybrid, + hybrid, ... } @@ -505,8 +514,26 @@ CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { CI ::= OCTET STRING (SIZE (2)) CNDomain ::= ENUMERATED { - ps, - cs + ps, + cs +} + +CNTypeRestrictions::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF CNTypeRestrictions-Item + +CNTypeRestrictions-Item ::= SEQUENCE { + pLMN-Identity PLMNidentity, + cNType CNType, + iE-Extensions ProtocolExtensionContainer { { CNTypeRestrictions-Item-ExtIEs} } OPTIONAL, + ... +} + +CNTypeRestrictions-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +CNType ::= ENUMERATED { + fiveGCForbiddden, + ... } ConcurrentWarningMessageIndicator ::= ENUMERATED { @@ -515,13 +542,13 @@ ConcurrentWarningMessageIndicator ::= ENUMERATED { Correlation-ID ::= OCTET STRING (SIZE (4)) -CSFallbackIndicator ::= ENUMERATED { +CSFallbackIndicator ::= ENUMERATED { cs-fallback-required, ..., - cs-fallback-high-priority + cs-fallback-high-priority } -AdditionalCSFallbackIndicator ::= ENUMERATED { +AdditionalCSFallbackIndicator ::= ENUMERATED { no-restriction, restriction, ... @@ -542,8 +569,8 @@ CSG-IdList-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ... } -CSGMembershipStatus ::= ENUMERATED { - member, +CSGMembershipStatus ::= ENUMERATED { + member, not-member } @@ -672,6 +699,11 @@ ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI PWSfailedECGIList ::= SEQUENCE (SIZE(1..maxnoofCellsineNB)) OF EUTRAN-CGI +EDT-Session ::= ENUMERATED { + true, + ... +} + EmergencyAreaIDList ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID EmergencyAreaID ::= OCTET STRING (SIZE (3)) @@ -728,7 +760,7 @@ ENB-ID ::= CHOICE { GERAN-Cell-ID ::= SEQUENCE { lAI LAI, - rAC RAC, + rAC RAC, cI CI, iE-Extensions ProtocolExtensionContainer { { GERAN-Cell-ID-ExtIEs} } OPTIONAL, ... @@ -769,6 +801,12 @@ ENBX2TLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2TLAs)) OF TransportLayerAddress EncryptionAlgorithms ::= BIT STRING (SIZE (16,...)) +EndIndication ::= ENUMERATED { + no-further-data, + further-data-exists, + ... +} + EnhancedCoverageRestricted ::= ENUMERATED { restricted, ... @@ -856,6 +894,9 @@ E-RABUsageReportItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { } E-RABQoSParameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +-- Extended for introduction of downlink and uplink packet loss rate for enhanced Voice performance –- + { ID id-DownlinkPacketLossRate CRITICALITY ignore EXTENSION Packet-LossRate PRESENCE optional}| + { ID id-UplinkPacketLossRate CRITICALITY ignore EXTENSION Packet-LossRate PRESENCE optional}, ... } @@ -911,16 +952,29 @@ ExpectedHOInterval ::= ENUMERATED { ... } -ExtendedBitRate ::= INTEGER (10000000001..4000000000000, ...) +ExtendedBitRate ::= INTEGER (10000000001..4000000000000, ...) ExtendedRNC-ID ::= INTEGER (4096..65535) -ExtendedRepetitionPeriod ::= INTEGER (4096..131071) +ExtendedRepetitionPeriod ::= INTEGER (4096..131071) Extended-UEIdentityIndexValue ::= BIT STRING (SIZE (14)) -- F +FiveGSTAC ::= OCTET STRING (SIZE (3)) + +FiveGSTAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + fiveGSTAC FiveGSTAC, + iE-Extensions ProtocolExtensionContainer { {FiveGSTAI-ExtIEs} } OPTIONAL, + ... +} + +FiveGSTAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + ForbiddenInterRATs ::= ENUMERATED { all, geran, @@ -974,7 +1028,7 @@ GBR-QosInformation ::= SEQUENCE { } GBR-QosInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { --- Extension for maximum bitrate > 10G bps -- +-- 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}| @@ -1020,14 +1074,15 @@ HandoverRestrictionList ::= SEQUENCE { equivalentPLMNs EPLMNs OPTIONAL, forbiddenTAs ForbiddenTAs OPTIONAL, forbiddenLAs ForbiddenLAs OPTIONAL, - forbiddenInterRATs ForbiddenInterRATs OPTIONAL, + forbiddenInterRATs ForbiddenInterRATs OPTIONAL, iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, ... } HandoverRestrictionList-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { { ID id-NRrestriction CRITICALITY ignore EXTENSION NRrestriction PRESENCE optional}| - { ID id-UnlicensedSpectrumRestriction CRITICALITY ignore EXTENSION UnlicensedSpectrumRestriction PRESENCE optional}, + { ID id-UnlicensedSpectrumRestriction CRITICALITY ignore EXTENSION UnlicensedSpectrumRestriction PRESENCE optional}| + { ID id-CNTypeRestrictions CRITICALITY ignore EXTENSION CNTypeRestrictions PRESENCE optional}, ... } @@ -1036,8 +1091,9 @@ HandoverType ::= ENUMERATED { ltetoutran, ltetogeran, utrantolte, - gerantolte, - ... + gerantolte, ..., + ltetonr, + nrtolte } HFN ::= INTEGER (0..1048575) @@ -1050,7 +1106,7 @@ HFNforPDCP-SNlength18 ::= INTEGER (0..16383) Masked-IMEISV ::= BIT STRING (SIZE (64)) -ImmediateMDT ::= SEQUENCE { +ImmediateMDT ::= SEQUENCE { measurementsToActivate MeasurementsToActivate, m1reportingTrigger M1ReportingTrigger, m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL, @@ -1146,7 +1202,7 @@ LPPa-PDU ::= OCTET STRING LHN-ID ::= OCTET STRING(SIZE (32..256)) -Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...} +Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...} ListeningSubframePattern ::= SEQUENCE { pattern-period ENUMERATED {ms1280, ms2560, ms5120, ms10240, ...}, @@ -1186,6 +1242,8 @@ LoggedMBSFNMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ... } +LTE-M-Indication ::= ENUMERATED {lte-m, ... } + -- M M3Configuration ::= SEQUENCE { @@ -1198,7 +1256,7 @@ M3Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ... } -M3period ::= ENUMERATED {ms100, ms1000, ms10000, ...,ms1024, ms1280, ms2048, ms2560, ms5120, ms10240, min1 } +M3period ::= ENUMERATED {ms100, ms1000, ms10000, ...,ms1024, ms1280, ms2048, ms2560, ms5120, ms10240, min1 } M4Configuration ::= SEQUENCE { m4period M4period, @@ -1211,7 +1269,7 @@ M4Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ... } -M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } +M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } M5Configuration ::= SEQUENCE { m5period M5period, @@ -1224,12 +1282,12 @@ M5Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ... } -M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } +M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... } M6Configuration ::= SEQUENCE { m6report-Interval M6report-Interval, m6delay-threshold M6delay-threshold OPTIONAL, --- This IE shall be present if the M6 Links to log IE is set to "uplink" or to "both-uplink-and-downlink" -- +-- This IE shall be present if the M6 Links to log IE is set to “uplink” or to “both-uplink-and-downlink” -- m6-links-to-log Links-to-log, iE-Extensions ProtocolExtensionContainer { { M6Configuration-ExtIEs} } OPTIONAL, ... @@ -1256,7 +1314,7 @@ M7Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { M7period ::= INTEGER(1..60, ...) -MDT-Activation ::= ENUMERATED { +MDT-Activation ::= ENUMERATED { immediate-MDT-only, immediate-MDT-and-Trace, logged-MDT-only, @@ -1284,7 +1342,7 @@ MBSFN-ResultToLog ::= SEQUENCE (SIZE(1..maxnoofMBSFNAreaMDT)) OF MBSFN-ResultToL MBSFN-ResultToLogInfo ::= SEQUENCE { mBSFN-AreaId INTEGER (0..255) OPTIONAL, - carrierFreq EARFCN, + carrierFreq EARFCN, iE-Extensions ProtocolExtensionContainer { { MBSFN-ResultToLogInfo-ExtIEs} } OPTIONAL, ... } @@ -1316,7 +1374,7 @@ MDTMode-ExtensionIE S1AP-PROTOCOL-IES ::= { MeasurementsToActivate ::= BIT STRING (SIZE (8)) -MeasurementThresholdA2 ::= CHOICE { +MeasurementThresholdA2 ::= CHOICE { threshold-RSRP Threshold-RSRP, threshold-RSRQ Threshold-RSRQ, ... @@ -1380,7 +1438,7 @@ NB-IoT-DefaultPagingDRX ::= ENUMERATED { ... } -NB-IoT-Paging-eDRXInformation ::= SEQUENCE { +NB-IoT-Paging-eDRXInformation ::= SEQUENCE { nB-IoT-paging-eDRX-Cycle NB-IoT-Paging-eDRX-Cycle, nB-IoT-pagingTimeWindow NB-IoT-PagingTimeWindow OPTIONAL, iE-Extensions ProtocolExtensionContainer { { NB-IoT-Paging-eDRXInformation-ExtIEs} } OPTIONAL, @@ -1450,6 +1508,8 @@ OverloadResponse ::= CHOICE { -- P +Packet-LossRate ::= INTEGER(0..1000) + PagingAttemptInformation ::= SEQUENCE { pagingAttemptCount PagingAttemptCount, intendedNumberOfPagingAttempts IntendedNumberOfPagingAttempts, @@ -1464,7 +1524,7 @@ PagingAttemptInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { PagingAttemptCount ::= INTEGER (1..16, ...) -Paging-eDRXInformation ::= SEQUENCE { +Paging-eDRXInformation ::= SEQUENCE { paging-eDRX-Cycle Paging-eDRX-Cycle, pagingTimeWindow PagingTimeWindow OPTIONAL, iE-Extensions ProtocolExtensionContainer { { Paging-eDRXInformation-ExtIEs} } OPTIONAL, @@ -1505,7 +1565,7 @@ PDCP-SNExtended ::= INTEGER (0..32767) PDCP-SNlength18 ::= INTEGER (0..262143) -M1PeriodicReporting ::= SEQUENCE { +M1PeriodicReporting ::= SEQUENCE { reportInterval ReportIntervalMDT, reportAmount ReportAmountMDT, iE-Extensions ProtocolExtensionContainer { { M1PeriodicReporting-ExtIEs} } OPTIONAL, @@ -1516,7 +1576,7 @@ M1PeriodicReporting-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ... } -PLMNidentity ::= TBCD-STRING +PLMNidentity ::= TBCD-STRING PLMNAreaBasedQMC ::= SEQUENCE { plmnListforQMC PLMNListforQMC, @@ -1556,7 +1616,7 @@ ProSeAuthorized-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ... } -ProSeDirectDiscovery ::= ENUMERATED { +ProSeDirectDiscovery ::= ENUMERATED { authorized, not-authorized, ... @@ -1568,7 +1628,7 @@ ProSeUEtoNetworkRelaying ::= ENUMERATED { ... } -ProSeDirectCommunication ::= ENUMERATED { +ProSeDirectCommunication ::= ENUMERATED { authorized, not-authorized, ... @@ -1662,7 +1722,7 @@ RAT-Type ::= ENUMERATED { ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} -ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} +ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} M1ReportingTrigger ::= ENUMERATED{ periodic, @@ -1793,6 +1853,12 @@ SecondaryRATDataUsageReportItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { SerialNumber ::= BIT STRING (SIZE (16)) +ServiceType ::= ENUMERATED{ + qMC-for-streaming-service, + qMC-for-MTSI-service, + ... +} + SONInformation ::= CHOICE{ sONInformationRequest SONInformationRequest, sONInformationReply SONInformationReply, @@ -1806,7 +1872,7 @@ SONInformation-ExtensionIE S1AP-PROTOCOL-IES ::= { { ID id-SON-Information-Report CRITICALITY ignore TYPE SONInformationReport PRESENCE mandatory} } -SONInformationRequest ::= ENUMERATED { +SONInformationRequest ::= ENUMERATED { x2TNL-Configuration-Info, ..., time-Synchronisation-Info, @@ -1842,10 +1908,10 @@ SONConfigurationTransfer ::= SEQUENCE { SONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { -- Extension for Release 10 to transfer the IP addresses of the eNB initiating the ANR action -- {ID id-x2TNLConfigurationInfo CRITICALITY ignore EXTENSION X2TNLConfigurationInfo PRESENCE conditional - -- This IE shall be present if the SON Information IE contains the SON Information Request IE and the SON Information Request IE is set to "X2TNL Configuration Info" --}| + -- This IE shall be present if the SON Information IE contains the SON Information Request IE and the SON Information Request IE is set to “X2TNL Configuration Info” --}| -- Extension for Release 12 to transfer information concerning the source cell of synchronisation and the aggressor cell -- {ID id-Synchronisation-Information CRITICALITY ignore EXTENSION SynchronisationInformation PRESENCE conditional - -- This IE shall be present if the SON Information IE contains the SON Information Request IE set to " Activate Muting " --}, + -- This IE shall be present if the SON Information IE contains the SON Information Request IE set to “ Activate Muting ” --}, ... } @@ -1864,7 +1930,7 @@ SynchronisationInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { Source-ToTarget-TransparentContainer ::= OCTET STRING --- This IE includes a transparent container from the source RAN node to the target RAN node. +-- This IE includes a transparent container from the source RAN node to the target RAN node. -- The octets of the OCTET STRING are encoded according to the specifications of the target system. SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING @@ -1916,6 +1982,8 @@ SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING -- This is a dummy IE used only as a reference to the actual definition in relevant specification. +SourceNgRanNode-ToTargetNgRanNode-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. ServedGUMMEIs ::= SEQUENCE (SIZE (1.. maxnoofRATs)) OF ServedGUMMEIsItem @@ -1936,7 +2004,7 @@ ServedMMECs ::= SEQUENCE (SIZE(1.. maxnoofMMECs)) OF MME-Code ServedPLMNs ::= SEQUENCE (SIZE(1.. maxnoofPLMNsPerMME)) OF PLMNidentity -SubscriberProfileIDforRFP ::= INTEGER (1..256) +SubscriberProfileIDforRFP ::= INTEGER (1..256) SupportedTAs ::= SEQUENCE (SIZE(1.. maxnoofTACs)) OF SupportedTAs-Item @@ -2090,6 +2158,8 @@ TargetID ::= CHOICE { targeteNB-ID TargeteNB-ID, targetRNC-ID TargetRNC-ID, cGI CGI, + targetgNgRanNode-ID TargetNgRanNode-ID, + ... } @@ -2118,6 +2188,60 @@ TargetRNC-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ... } +TargetNgRanNode-ID ::= SEQUENCE { + global-RAN-NODE-ID Global-RAN-NODE-ID, + selected-TAI FiveGSTAI, + iE-Extensions ProtocolExtensionContainer { { TargetNgRanNode-ID-ExtIEs} } OPTIONAL, + ... +} + +TargetNgRanNode-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Global-RAN-NODE-ID::= CHOICE { + gNB GNB, + ng-eNB NG-eNB, + ... +} + +GNB ::= SEQUENCE { + global-gNB-ID Global-GNB-ID, + iE-Extensions ProtocolExtensionContainer { {GNB-ExtIEs} } OPTIONAL, + ... +} + +GNB-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +Global-GNB-ID ::= SEQUENCE { + pLMN-Identity PLMNidentity, + gNB-ID GNB-Identity, + iE-Extensions ProtocolExtensionContainer { { Global-GNB-ID-ExtIEs} } OPTIONAL, + ... +} + +Global-GNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +GNB-Identity ::= CHOICE { + gNB-ID GNB-ID, + ... +} + +NG-eNB ::= SEQUENCE { + global-ng-eNB-ID Global-ENB-ID, + iE-Extensions ProtocolExtensionContainer { { NG-eNB-ExtIEs} } OPTIONAL, + ... +} + +NG-eNB-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +GNB-ID ::= BIT STRING (SIZE(22..32)) TargeteNB-ToSourceeNB-TransparentContainer ::= SEQUENCE { rRC-Container RRC-Container, @@ -2130,7 +2254,7 @@ TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { } Target-ToSource-TransparentContainer ::= OCTET STRING --- This IE includes a transparent container from the target RAN node to the source RAN node. +-- This IE includes a transparent container from the target RAN node to the source RAN node. -- The octets of the OCTET STRING are coded according to the specifications of the target system. TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING @@ -2139,7 +2263,10 @@ TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING -- This is a dummy IE used only as a reference to the actual definition in relevant specification. -M1ThresholdEventA2 ::= SEQUENCE { +TargetNgRanNode-ToSourceNgRanNode-TransparentContainer ::= OCTET STRING +-- This is a dummy IE used only as a reference to the actual definition in relevant specification. + +M1ThresholdEventA2 ::= SEQUENCE { measurementThreshold MeasurementThresholdA2, iE-Extensions ProtocolExtensionContainer { { M1ThresholdEventA2-ExtIEs} } OPTIONAL, ... @@ -2184,7 +2311,7 @@ TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ... } -TraceDepth ::= ENUMERATED { +TraceDepth ::= ENUMERATED { minimum, medium, maximum, @@ -2241,6 +2368,12 @@ UEAppLayerMeasConfig ::= SEQUENCE { } UEAppLayerMeasConfig-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + {ID id-serviceType CRITICALITY ignore EXTENSION ServiceType PRESENCE optional}, + ... +} + +UECapabilityInfoRequest ::= ENUMERATED { + requested, ... } @@ -2321,7 +2454,7 @@ UE-Sidelink-Aggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ... } -UE-Usage-Type ::= INTEGER (0..255) +UE-Usage-Type ::= INTEGER (0..255) UL-CP-SecurityInformation ::= SEQUENCE { ul-NAS-MAC UL-NAS-MAC, @@ -2362,13 +2495,14 @@ UEUserPlaneCIoTSupportIndicator ::= ENUMERATED { UE-Application-Layer-Measurement-Capability ::= BIT STRING (SIZE (8)) --- First bit: QoE Measurement +-- First bit: QoE Measurement for streaming service +-- Second bit: QoE Measurement for MTSI service -- 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 { +VoiceSupportMatchIndicator ::= ENUMERATED { supported, not-supported, ... @@ -2385,13 +2519,13 @@ V2XServicesAuthorized-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ... } -VehicleUE ::= ENUMERATED { +VehicleUE ::= ENUMERATED { authorized, not-authorized, ... } -PedestrianUE ::= ENUMERATED { +PedestrianUE ::= ENUMERATED { authorized, not-authorized, ... diff --git a/epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn b/epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn index 8d041e7451..e617dc603b 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 V15.1.0 (2018-03) +-- 3GPP TS 36.413 V15.2.0 (2018-06) -- 9.3.3 PDU Definitions -- ************************************************************** -- @@ -6,11 +6,11 @@ -- -- ************************************************************** -S1AP-PDU-Contents { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +S1AP-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Contents (1) } -DEFINITIONS AUTOMATIC TAGS ::= +DEFINITIONS AUTOMATIC TAGS ::= BEGIN @@ -21,7 +21,7 @@ BEGIN -- ************************************************************** IMPORTS - + UEAggregateMaximumBitrate, BearerType, Cause, @@ -39,7 +39,7 @@ IMPORTS CriticalityDiagnostics, CSFallbackIndicator, CSG-Id, - CSG-IdList, + CSG-IdList, CSGMembershipStatus, Data-Forwarding-Not-Possible, Direct-Forwarding-Path-Availability, @@ -95,7 +95,7 @@ IMPORTS SupportedTAs, TAI, Target-ToSource-TransparentContainer, - TargetBSS-ToSourceBSS-TransparentContainer, + TargetBSS-ToSourceBSS-TransparentContainer, TargeteNB-ToSourceeNB-TransparentContainer, TargetID, TargetRNC-ToSourceRNC-TransparentContainer, @@ -169,7 +169,16 @@ IMPORTS HandoverFlag, NRUESecurityCapabilities, UE-Application-Layer-Measurement-Capability, - CE-ModeBRestricted + CE-ModeBRestricted, + Packet-LossRate, + UECapabilityInfoRequest, + SourceNgRanNode-ToTargetNgRanNode-TransparentContainer, + TargetNgRanNode-ToSourceNgRanNode-TransparentContainer, + EndIndication, + EDT-Session, + LTE-M-Indication, + AerialUEsubscriptionInformation + @@ -190,6 +199,7 @@ FROM S1AP-Containers id-AssistanceDataForPaging, + id-AerialUEsubscriptionInformation, id-uEaggregateMaximumBitrate, id-BearerType, id-Cause, @@ -217,7 +227,7 @@ FROM S1AP-Containers id-EUTRAN-CGI, id-eNBname, id-eNB-StatusTransfer-TransparentContainer, - id-eNB-UE-S1AP-ID, + id-eNB-UE-S1AP-ID, id-GERANtoLTEHOInformationRes, id-GUMMEI-ID, id-GUMMEIType, @@ -281,7 +291,7 @@ FROM S1AP-Containers id-E-RABNotToBeModifiedItemBearerModInd, id-E-RABModifyListBearerModConf, id-E-RABModifyItemBearerModConf, - id-E-RABFailedToModifyListBearerModConf, + id-E-RABFailedToModifyListBearerModConf, id-E-RABToBeReleasedListBearerModConf, id-E-RABToBeReleasedList, id-E-RABReleasedList, @@ -409,7 +419,14 @@ FROM S1AP-Containers id-HandoverFlag, id-NRUESecurityCapabilities, id-UE-Application-Layer-Measurement-Capability, - id-CE-ModeBRestricted + id-CE-ModeBRestricted, + id-DownlinkPacketLossRate, + id-UplinkPacketLossRate, + id-UECapabilityInfoRequest, + id-EndIndication, + id-EDT-Session, + id-LTE-M-Indication + FROM S1AP-Constants; @@ -441,7 +458,7 @@ HandoverRequired ::= SEQUENCE { ... } -HandoverRequiredIEs S1AP-PROTOCOL-IES ::= { +HandoverRequiredIEs 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-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| @@ -471,7 +488,7 @@ HandoverCommand ::= SEQUENCE { ... } -HandoverCommandIEs S1AP-PROTOCOL-IES ::= { +HandoverCommandIEs 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-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| @@ -519,7 +536,7 @@ HandoverPreparationFailure ::= SEQUENCE { ... } -HandoverPreparationFailureIEs S1AP-PROTOCOL-IES ::= { +HandoverPreparationFailureIEs 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-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| @@ -573,7 +590,8 @@ HandoverRequestIEs S1AP-PROTOCOL-IES ::= { { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}| { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}| - { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}| + { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}, ... } @@ -676,7 +694,7 @@ HandoverFailure ::= SEQUENCE { ... } -HandoverFailureIEs S1AP-PROTOCOL-IES ::= { +HandoverFailureIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, @@ -700,12 +718,12 @@ HandoverNotify ::= SEQUENCE { ... } -HandoverNotifyIEs S1AP-PROTOCOL-IES ::= { +HandoverNotifyIEs 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-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| --- Extension for Release 11 to support BBAI -- +-- 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}, ... @@ -728,7 +746,7 @@ PathSwitchRequest ::= SEQUENCE { ... } -PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= { +PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= { { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory}| { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| @@ -739,7 +757,7 @@ PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= { { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional}| { ID id-SourceMME-GUMMEI CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| --- Extension for Release 11 to support BBAI -- +-- 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 }| @@ -777,7 +795,7 @@ PathSwitchRequestAcknowledge ::= SEQUENCE { ... } -PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { +PathSwitchRequestAcknowledgeIEs 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-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}| @@ -793,7 +811,8 @@ PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}| { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}| - { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}| + { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}, ... } @@ -828,7 +847,7 @@ PathSwitchRequestFailure ::= SEQUENCE { ... } -PathSwitchRequestFailureIEs S1AP-PROTOCOL-IES ::= { +PathSwitchRequestFailureIEs 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-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| @@ -853,7 +872,7 @@ HandoverCancel ::= SEQUENCE { ... } -HandoverCancelIEs S1AP-PROTOCOL-IES ::= { +HandoverCancelIEs 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 }, @@ -871,7 +890,7 @@ HandoverCancelAcknowledge ::= SEQUENCE { ... } -HandoverCancelAcknowledgeIEs S1AP-PROTOCOL-IES ::= { +HandoverCancelAcknowledgeIEs 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-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, @@ -1108,7 +1127,7 @@ E-RABReleaseResponseIEs S1AP-PROTOCOL-IES ::= { { ID id-E-RABReleaseListBearerRelComp CRITICALITY ignore TYPE E-RABReleaseListBearerRelComp PRESENCE optional }| { 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 -- +-- Extension for Release 12 to support User Location Information -- { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }| { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional }, ... @@ -1156,7 +1175,7 @@ E-RABReleaseIndicationIEs 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-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }| --- Extension for Release 12 to support User Location Information -- +-- Extension for Release 12 to support User Location Information -- { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }| { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional }, ... @@ -1206,7 +1225,8 @@ InitialContextSetupRequestIEs S1AP-PROTOCOL-IES ::= { { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}| { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}| - { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}| + { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}, ... } @@ -1327,7 +1347,7 @@ PagingIEs S1AP-PROTOCOL-IES ::= { { ID id-CSG-IdList CRITICALITY ignore TYPE CSG-IdList PRESENCE optional}| { ID id-PagingPriority CRITICALITY ignore TYPE PagingPriority PRESENCE optional}| { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional}| --- Extension for Release 13 to support Paging Optimisation and Coverage Enhancement paging -- +-- Extension for Release 13 to support Paging Optimisation and Coverage Enhancement paging –- { ID id-AssistanceDataForPaging CRITICALITY ignore TYPE AssistanceDataForPaging PRESENCE optional}| { ID id-Paging-eDRXInformation CRITICALITY ignore TYPE Paging-eDRXInformation PRESENCE optional}| { ID id-extended-UEIdentityIndexValue CRITICALITY ignore TYPE Extended-UEIdentityIndexValue PRESENCE optional}| @@ -1414,11 +1434,11 @@ UEContextReleaseComplete-IEs 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-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| --- Extension for Release 12 to support User Location Information -- +-- Extension for Release 12 to support User Location Information -- { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional}| -- 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 - +-- Extension for Release 13 to support coverage enhancement paging – { ID id-CellIdentifierAndCELevelForCECapableUEs CRITICALITY ignore TYPE CellIdentifierAndCELevelForCECapableUEs PRESENCE optional}| { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional }, ... @@ -1442,7 +1462,7 @@ UEContextModificationRequest ::= SEQUENCE { ... } -UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= { +UEContextModificationRequestIEs 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-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE optional}| @@ -1458,7 +1478,8 @@ UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= { { 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-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}, + { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}| + { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}, ... } -- ************************************************************** @@ -1472,7 +1493,7 @@ UEContextModificationResponse ::= SEQUENCE { ... } -UEContextModificationResponseIEs S1AP-PROTOCOL-IES ::= { +UEContextModificationResponseIEs 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-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, @@ -1489,7 +1510,7 @@ UEContextModificationFailure ::= SEQUENCE { ... } -UEContextModificationFailureIEs S1AP-PROTOCOL-IES ::= { +UEContextModificationFailureIEs 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-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| @@ -1514,7 +1535,7 @@ UERadioCapabilityMatchRequest ::= SEQUENCE { ... } -UERadioCapabilityMatchRequestIEs S1AP-PROTOCOL-IES ::= { +UERadioCapabilityMatchRequestIEs 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 optional }, @@ -1532,7 +1553,7 @@ UERadioCapabilityMatchResponse ::= SEQUENCE { ... } -UERadioCapabilityMatchResponseIEs S1AP-PROTOCOL-IES ::= { +UERadioCapabilityMatchResponseIEs 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-VoiceSupportMatchIndicator CRITICALITY reject TYPE VoiceSupportMatchIndicator PRESENCE mandatory }| @@ -1568,7 +1589,9 @@ DownlinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { { ID id-DLNASPDUDeliveryAckRequest CRITICALITY ignore TYPE DLNASPDUDeliveryAckRequest PRESENCE optional}| { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}| { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}| - { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}| + { ID id-UECapabilityInfoRequest CRITICALITY ignore TYPE UECapabilityInfoRequest PRESENCE optional}| + { ID id-EndIndication CRITICALITY ignore TYPE EndIndication PRESENCE optional}, ... } @@ -1597,7 +1620,7 @@ InitialUEMessage-IEs S1AP-PROTOCOL-IES ::= { { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| { ID id-RelayNode-Indicator CRITICALITY reject TYPE RelayNode-Indicator PRESENCE optional}| { ID id-GUMMEIType CRITICALITY ignore TYPE GUMMEIType PRESENCE optional}| --- Extension for Release 11 to support BBAI -- +-- Extension for Release 11 to support BBAI -- { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}| @@ -1606,7 +1629,8 @@ InitialUEMessage-IEs S1AP-PROTOCOL-IES ::= { { 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-UE-Application-Layer-Measurement-Capability CRITICALITY ignore TYPE UE-Application-Layer-Measurement-Capability PRESENCE optional}, + { ID id-UE-Application-Layer-Measurement-Capability CRITICALITY ignore TYPE UE-Application-Layer-Measurement-Capability PRESENCE optional}| + { ID id-EDT-Session CRITICALITY ignore TYPE EDT-Session PRESENCE optional}, ... } @@ -1867,7 +1891,7 @@ S1SetupFailureIEs S1AP-PROTOCOL-IES ::= { -- ************************************************************** -- --- eNB Configuration Update +-- eNB Configuration Update -- -- ************************************************************** @@ -1929,7 +1953,7 @@ ENBConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= { -- ************************************************************** -- --- MME Configuration Update +-- MME Configuration Update -- -- ************************************************************** @@ -2062,7 +2086,8 @@ UECapabilityInfoIndicationIEs S1AP-PROTOCOL-IES ::= { { 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-UE-Application-Layer-Measurement-Capability CRITICALITY ignore TYPE UE-Application-Layer-Measurement-Capability PRESENCE optional}, + { ID id-UE-Application-Layer-Measurement-Capability CRITICALITY ignore TYPE UE-Application-Layer-Measurement-Capability PRESENCE optional}| + { ID id-LTE-M-Indication CRITICALITY ignore TYPE LTE-M-Indication PRESENCE optional}, ... } @@ -2253,7 +2278,7 @@ LocationReportingFailureIndicationIEs S1AP-PROTOCOL-IES ::= { -- ************************************************************** -- --- Location Report +-- Location Report -- -- ************************************************************** @@ -2288,7 +2313,7 @@ OverloadStart ::= SEQUENCE { ... } -OverloadStartIEs S1AP-PROTOCOL-IES ::= { +OverloadStartIEs S1AP-PROTOCOL-IES ::= { { ID id-OverloadResponse CRITICALITY reject TYPE OverloadResponse PRESENCE mandatory }| { ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional }| { ID id-TrafficLoadReductionIndication CRITICALITY ignore TYPE TrafficLoadReductionIndication PRESENCE optional }, @@ -2305,13 +2330,13 @@ OverloadStop ::= SEQUENCE { ... } -OverloadStopIEs S1AP-PROTOCOL-IES ::= { +OverloadStopIEs S1AP-PROTOCOL-IES ::= { { ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional }, ... } -- ************************************************************** -- --- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE +-- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE -- -- ************************************************************** @@ -2327,7 +2352,7 @@ WriteReplaceWarningRequest ::= SEQUENCE { ... } -WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= { +WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= { { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }| @@ -2491,7 +2516,7 @@ KillRequest ::= SEQUENCE { ... } -KillRequestIEs S1AP-PROTOCOL-IES ::= { +KillRequestIEs S1AP-PROTOCOL-IES ::= { { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory}| { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory}| { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional}| @@ -2662,7 +2687,7 @@ E-RABModificationIndicationIEs S1AP-PROTOCOL-IES ::= { { ID id-E-RABToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABToBeModifiedListBearerModInd PRESENCE mandatory}| { 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 -- +-- Extension for Release 11 to support BBAI -- { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional }, ... @@ -2966,13 +2991,14 @@ ConnectionEstablishmentIndicationIEs S1AP-PROTOCOL-IES ::= { { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional }| { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional }| { ID id-DL-CP-SecurityInformation CRITICALITY ignore TYPE DL-CP-SecurityInformation PRESENCE optional }| - { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}, + { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}| + { ID id-EndIndication CRITICALITY ignore TYPE EndIndication PRESENCE optional}, ... } -- ************************************************************** -- --- Retrieve UE Information +-- Retrieve UE Information -- -- ************************************************************** diff --git a/epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn b/epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn index 6f46bc532e..a73d440bd3 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 V15.1.0 (2018-03) +-- 3GPP TS 36.413 V15.2.0 (2018-06) -- 9.3.2 Elementary Procedure Definitions -- ************************************************************** -- @@ -6,11 +6,11 @@ -- -- ************************************************************** -S1AP-PDU-Descriptions { -itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +S1AP-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Descriptions (0)} -DEFINITIONS AUTOMATIC TAGS ::= +DEFINITIONS AUTOMATIC TAGS ::= BEGIN @@ -66,7 +66,7 @@ FROM S1AP-CommonDataTypes Paging, PathSwitchRequest, PathSwitchRequestAcknowledge, - PathSwitchRequestFailure, + PathSwitchRequestFailure, PrivateMessage, Reset, ResetAcknowledge, @@ -121,7 +121,7 @@ FROM S1AP-CommonDataTypes FROM S1AP-PDU-Contents - + id-CellTrafficTrace, id-DeactivateTrace, id-downlinkUEAssociatedLPPaTransport, @@ -250,7 +250,7 @@ UnsuccessfulOutcome ::= SEQUENCE { S1AP-ELEMENTARY-PROCEDURES S1AP-ELEMENTARY-PROCEDURE ::= { S1AP-ELEMENTARY-PROCEDURES-CLASS-1 | - S1AP-ELEMENTARY-PROCEDURES-CLASS-2, + S1AP-ELEMENTARY-PROCEDURES-CLASS-2, ... } @@ -280,7 +280,7 @@ S1AP-ELEMENTARY-PROCEDURES-CLASS-1 S1AP-ELEMENTARY-PROCEDURE ::= { uEContextResume } -S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= { +S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= { handoverNotification | e-RABReleaseIndication | paging | diff --git a/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn b/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn index f6bbdcf00f..e5583fc055 100644 --- a/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn +++ b/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn @@ -1,15 +1,15 @@ --- 3GPP TS 36.413 V15.1.0 (2018-03) +-- 3GPP TS 36.413 V15.2.0 (2018-06) -- B.2 ASN.1 definition -- ************************************************************** -- -- IE definitions for the SON Transfer application -- The IEs in this ASN.1 module shall be defined and encoded -- using the same rules as applicable for the S1AP-IEs module. --- +-- -- ************************************************************** SonTransfer-IEs -DEFINITIONS AUTOMATIC TAGS ::= +DEFINITIONS AUTOMATIC TAGS ::= BEGIN @@ -152,7 +152,7 @@ ReportingCellList ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF Reportin MultiCellLoadReportingResponse ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF MultiCellLoadReportingResponse-Item -MultiCellLoadReportingResponse-Item ::= CHOICE{ +MultiCellLoadReportingResponse-Item ::= CHOICE{ eUTRANResponse EUTRANResponse, uTRANResponse OCTET STRING, gERANResponse OCTET STRING, diff --git a/epan/dissectors/asn1/s1ap/packet-s1ap-template.c b/epan/dissectors/asn1/s1ap/packet-s1ap-template.c index 9ec44c7262..e0a8db8dc7 100644 --- a/epan/dissectors/asn1/s1ap/packet-s1ap-template.c +++ b/epan/dissectors/asn1/s1ap/packet-s1ap-template.c @@ -38,6 +38,7 @@ #include "packet-cell_broadcast.h" #include "packet-gsm_a_common.h" #include "packet-ntp.h" +#include "packet-ngap.h" #define PNAME "S1 Application Protocol" #define PSNAME "S1AP" @@ -105,7 +106,8 @@ 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_QoE_Measurement_for_streaming_service = -1; +static int hf_s1ap_UE_Application_Layer_Measurement_Capability_QoE_Measurement_for_MTSI_service = -1; static int hf_s1ap_UE_Application_Layer_Measurement_Capability_Reserved = -1; #include "packet-s1ap-hf.c" @@ -311,6 +313,12 @@ static const true_false_string s1ap_tfs_activate_do_not_activate = { "Do not activate" }; +static void +s1ap_Packet_LossRate_fmt(gchar *s, guint32 v) +{ + g_snprintf(s, ITEM_LABEL_LENGTH, "%.1f %% (%u)", (float)v/10, v); +} + static struct s1ap_private_data* s1ap_get_private_data(packet_info *pinfo) { @@ -657,13 +665,17 @@ void proto_register_s1ap(void) { { "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", + { &hf_s1ap_UE_Application_Layer_Measurement_Capability_QoE_Measurement_for_streaming_service, + { "QoE Measurement for streaming service", "s1ap.UE_Application_Layer_Measurement_Capability.QoE_Measurement_for_streaming_service", FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x80, NULL, HFILL }}, + { &hf_s1ap_UE_Application_Layer_Measurement_Capability_QoE_Measurement_for_MTSI_service, + { "QoE Measurement for MTSI service", "s1ap.UE_Application_Layer_Measurement_Capability.QoE_Measurement_for_MTSI_service", + FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x40, + NULL, HFILL }}, { &hf_s1ap_UE_Application_Layer_Measurement_Capability_Reserved, { "Reserved", "s1ap.UE_Application_Layer_Measurement_Capability.Reserved", - FT_UINT8, BASE_HEX, NULL, 0x7f, + FT_UINT8, BASE_HEX, NULL, 0x3f, NULL, HFILL }}, #include "packet-s1ap-hfarr.c" }; diff --git a/epan/dissectors/asn1/s1ap/s1ap.cnf b/epan/dissectors/asn1/s1ap/s1ap.cnf index ee31c9646f..c11b35bdc2 100644 --- a/epan/dissectors/asn1/s1ap/s1ap.cnf +++ b/epan/dissectors/asn1/s1ap/s1ap.cnf @@ -43,6 +43,7 @@ SONtransferCause UE-HistoryInformation #.MAKE_ENUM +HandoverType ProcedureCode ProtocolIE-ID RAT-Type @@ -53,6 +54,8 @@ SourceBSS-ToTargetBSS-TransparentContainer TargetBSS-ToSourceBSS-TransparentContainer SourceRNC-ToTargetRNC-TransparentContainer TargetRNC-ToSourceRNC-TransparentContainer +SourceNgRanNode-ToTargetNgRanNode-TransparentContainer +TargetNgRanNode-ToSourceNgRanNode-TransparentContainer ReportingCellList ReportingCellList-Item @@ -356,19 +359,19 @@ Port-Number TYPE = FT_UINT16 DISPLAY = BASE_DEC struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); %(DEFAULT_BODY)s -#Zero the value before use +#Undef the value before use #.FN_HDR HandoverRequired struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); - s1ap_data->handover_type_value = 0; + s1ap_data->handover_type_value = 0xff; #.FN_HDR HandoverCommand struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); - s1ap_data->handover_type_value = 0; + s1ap_data->handover_type_value = 0xff; #.FN_HDR HandoverRequest struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); - s1ap_data->handover_type_value = 0; + s1ap_data->handover_type_value = 0xff; #.FN_HDR HandoverRequestAcknowledge struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); - s1ap_data->handover_type_value = 0; + s1ap_data->handover_type_value = 0xff; #.FN_BODY Source-ToTarget-TransparentContainer VAL_PTR = ¶meter_tvb # I think the message is "directly encoded" into the octet string(no "double encoding") @@ -398,36 +401,44 @@ Port-Number TYPE = FT_UINT16 DISPLAY = BASE_DEC utrantolte, gerantolte, ... + ltetonr, + nrtolte } */ - case 0: + case intralte: /* intralte Intra E-UTRAN handover Source eNB to Target eNB Transparent Container 36.413 */ dissect_SourceeNB_ToTargeteNB_TransparentContainer_PDU(parameter_tvb, actx->pinfo, subtree, NULL); break; - case 1: + case ltetoutran: /* ltetoutran Source RNC to Target RNC Transparent Container 25.413 */ dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU(parameter_tvb, actx->pinfo, subtree, NULL); break; - case 2: + case ltetogeran: /* ltetogeran Source BSS to Target BSS Transparent Container 48.018 */ de_bssgp_source_BSS_to_target_BSS_transp_cont(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(parameter_tvb), NULL, 0); break; - case 3: + case utrantolte: /* utrantolte */ break; - case 4: + case gerantolte: /* gerantolte */ break; + case ltetonr: + /* ltetonr */ + dissect_ngap_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + break; + case nrtolte: + /* nrtolte */ + break; default: - DISSECTOR_ASSERT_NOT_REACHED(); break; } /* Enable writing of the column again */ @@ -455,37 +466,44 @@ Port-Number TYPE = FT_UINT16 DISPLAY = BASE_DEC utrantolte, gerantolte, ... + ltetonr, + nrtolte } */ - case 0: + case intralte: /* intralte Intra E-UTRAN handover Target eNB to Source eNB Transparent Container 36.413 */ dissect_TargeteNB_ToSourceeNB_TransparentContainer_PDU(parameter_tvb, actx->pinfo, subtree, NULL); break; - case 1: + case ltetoutran: /* ltetoutran Target RNC to Source RNC Transparent Container 25.413 */ dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer_PDU(parameter_tvb, actx->pinfo, subtree, NULL); break; - case 2: + case ltetogeran: /* ltetogeran Target BSS to Source BSS Transparent Container 48.018 */ de_bssgp_target_BSS_to_source_BSS_transp_cont(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(parameter_tvb), NULL, 0); - break; - case 3: + case utrantolte: /* utrantolte */ break; - case 4: + case gerantolte: /* gerantolte */ break; + case ltetonr: + /* ltetonr */ + dissect_ngap_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + break; + case nrtolte: + /* nrtolte */ + break; default: - DISSECTOR_ASSERT_NOT_REACHED(); break; } } @@ -1028,7 +1046,8 @@ ExtendedBitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec %(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_QoE_Measurement_for_streaming_service, + &hf_s1ap_UE_Application_Layer_Measurement_Capability_QoE_Measurement_for_MTSI_service, &hf_s1ap_UE_Application_Layer_Measurement_Capability_Reserved, NULL }; @@ -1162,6 +1181,9 @@ M-TMSI TYPE = FT_UINT32 DISPLAY = BASE_DEC_HEX } } +#.TYPE_ATTR +Packet-LossRate DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(s1ap_Packet_LossRate_fmt) + #.ASSIGN_VALUE_TO_TYPE # S1AP does not have constants assigned to types, they are pure INTEGER # ProcedureCode @@ -1483,6 +1505,16 @@ id-SecondaryRATDataUsageRequest ProtocolIE-ID id-NRUESecurityCapabilities ProtocolIE-ID id-UnlicensedSpectrumRestriction ProtocolIE-ID id-CE-ModeBRestricted ProtocolIE-ID +id-LTE-M-Indication ProtocolIE-ID +id-DownlinkPacketLossRate ProtocolIE-ID +id-UplinkPacketLossRate ProtocolIE-ID +id-UECapabilityInfoRequest ProtocolIE-ID +id-serviceType ProtocolIE-ID +id-AerialUEsubscriptionInformation ProtocolIE-ID +id-EndIndication ProtocolIE-ID +id-EDT-Session ProtocolIE-ID +id-CNTypeRestrictions ProtocolIE-ID + #.END #.REGISTER @@ -1697,6 +1729,11 @@ UE-Application-Layer-Measurement-Capability N s1ap.ies id-UE-Application-Lay HandoverFlag N s1ap.ies id-HandoverFlag EmergencyAreaIDListForRestart N s1ap.ies id-EmergencyAreaIDListForRestart CE-ModeBRestricted N s1ap.ies id-CE-ModeBRestricted +AerialUEsubscriptionInformation N s1ap.ies id-AerialUEsubscriptionInformation +UECapabilityInfoRequest N s1ap.ies id-UECapabilityInfoRequest +EndIndication N s1ap.ies id-EndIndication +EDT-Session N s1ap.ies id-EDT-Session +LTE-M-Indication N s1ap.ies id-LTE-M-Indication #S1AP-PROTOCOL-IES-PAIR #RAB-SetupOrModifyItemFirst N s1ap.ies.pair.first id-RAB-SetupOrModifyItem @@ -1747,6 +1784,10 @@ UEAppLayerMeasConfig N s1ap.extension id-UEAppLayerMeasConfig ExtendedBitRate N s1ap.extension id-extended-uEaggregateMaximumBitRateDL ExtendedBitRate N s1ap.extension id-extended-uEaggregateMaximumBitRateUL UnlicensedSpectrumRestriction N s1ap.extension id-UnlicensedSpectrumRestriction +CNTypeRestrictions N s1ap.extension id-CNTypeRestrictions +Packet-LossRate N s1ap.extension id-DownlinkPacketLossRate +Packet-LossRate N s1ap.extension id-UplinkPacketLossRate +ServiceType N s1ap.extension id-serviceType #S1AP-ELEMENTARY-PROCEDURE HandoverRequired N s1ap.proc.imsg id-HandoverPreparation diff --git a/epan/dissectors/packet-ngap.c b/epan/dissectors/packet-ngap.c index eb766cbdcb..8f01741377 100644 --- a/epan/dissectors/packet-ngap.c +++ b/epan/dissectors/packet-ngap.c @@ -31,6 +31,7 @@ #include <epan/conversation.h> #include <epan/proto_data.h> +#include "packet-ngap.h" #include "packet-ber.h" #include "packet-per.h" #include "packet-e212.h" @@ -286,7 +287,7 @@ typedef enum _ProtocolIE_ID_enum { } ProtocolIE_ID_enum; /*--- End of included file: packet-ngap-val.h ---*/ -#line 51 "./asn1/ngap/packet-ngap-template.c" +#line 52 "./asn1/ngap/packet-ngap-template.c" /* Initialize the protocol and registered fields */ static int proto_ngap = -1; @@ -351,11 +352,13 @@ static int hf_ngap_SerialNumber_PDU = -1; /* SerialNumber */ static int hf_ngap_ServedGUAMIList_PDU = -1; /* ServedGUAMIList */ static int hf_ngap_SliceSupportList_PDU = -1; /* SliceSupportList */ static int hf_ngap_SONConfigurationTransfer_PDU = -1; /* SONConfigurationTransfer */ +static int hf_ngap_ngap_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_PDU = -1; /* SourceNGRANNode_ToTargetNGRANNode_TransparentContainer */ static int hf_ngap_SourceToTarget_TransparentContainer_PDU = -1; /* SourceToTarget_TransparentContainer */ static int hf_ngap_SupportedTAList_PDU = -1; /* SupportedTAList */ static int hf_ngap_TAI_PDU = -1; /* TAI */ static int hf_ngap_TAIListForRestart_PDU = -1; /* TAIListForRestart */ static int hf_ngap_TargetID_PDU = -1; /* TargetID */ +static int hf_ngap_ngap_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_PDU = -1; /* TargetNGRANNode_ToSourceNGRANNode_TransparentContainer */ static int hf_ngap_TargetToSource_TransparentContainer_PDU = -1; /* TargetToSource_TransparentContainer */ static int hf_ngap_TimeStamp_PDU = -1; /* TimeStamp */ static int hf_ngap_TimeToWait_PDU = -1; /* TimeToWait */ @@ -586,6 +589,8 @@ static int hf_ngap_DataForwardingResponseDRBList_item = -1; /* DataForwardingRe static int hf_ngap_dRB_ID = -1; /* DRB_ID */ static int hf_ngap_dLForwardingUP_TNLInformation = -1; /* UPTransportLayerInformation */ static int hf_ngap_uLForwardingUP_TNLInformation = -1; /* UPTransportLayerInformation */ +static int hf_ngap_DRBsToQosFlowsMappingList_item = -1; /* DRBsToQosFlowsMappingItem */ +static int hf_ngap_qosFlowMappingList = -1; /* QosFlowMappingList */ static int hf_ngap_priorityLevelQos = -1; /* PriorityLevelQos */ static int hf_ngap_packetDelayBudget = -1; /* PacketDelayBudget */ static int hf_ngap_packetErrorRate = -1; /* PacketErrorRate */ @@ -605,6 +610,9 @@ static int hf_ngap_EmergencyAreaIDList_item = -1; /* EmergencyAreaID */ static int hf_ngap_EmergencyAreaIDListForRestart_item = -1; /* EmergencyAreaID */ static int hf_ngap_EquivalentPLMNs_item = -1; /* PLMNIdentity */ static int hf_ngap_ePS_TAC = -1; /* EPS_TAC */ +static int hf_ngap_E_RABInformationList_item = -1; /* E_RABInformationItem */ +static int hf_ngap_e_RAB_ID = -1; /* E_RAB_ID */ +static int hf_ngap_dLForwarding = -1; /* DLForwarding */ static int hf_ngap_eUTRACellIdentity = -1; /* EUTRACellIdentity */ static int hf_ngap_EUTRA_CGIList_item = -1; /* EUTRA_CGI */ static int hf_ngap_EUTRA_CGIListForWarning_item = -1; /* EUTRA_CGI */ @@ -666,6 +674,9 @@ static int hf_ngap_qosFlowAcceptedList = -1; /* QosFlowAcceptedList */ static int hf_ngap_PDUSessionList_item = -1; /* PDUSessionItem */ static int hf_ngap_pDUSessionID = -1; /* PDUSessionID */ static int hf_ngap_cause = -1; /* Cause */ +static int hf_ngap_PDUSessionResourceInformationList_item = -1; /* PDUSessionResourceInformationItem */ +static int hf_ngap_qosFlowInformationList = -1; /* QosFlowInformationList */ +static int hf_ngap_dRBsToQosFlowsMappingList = -1; /* DRBsToQosFlowsMappingList */ static int hf_ngap_qosFlowModifyConfirmList = -1; /* QosFlowModifyConfirmList */ static int hf_ngap_qosFlowFailedToModifyList = -1; /* QosFlowList */ static int hf_ngap_pDUSessionAggregateMaximumBitRate = -1; /* BitRate */ @@ -690,8 +701,8 @@ static int hf_ngap_dynamic5QI = -1; /* Dynamic5QIDescriptor */ static int hf_ngap_QosFlowAcceptedList_item = -1; /* QosFlowAcceptedItem */ static int hf_ngap_QosFlowAddOrModifyRequestList_item = -1; /* QosFlowAddOrModifyRequestItem */ static int hf_ngap_qosFlowLevelQosParameters = -1; /* QosFlowLevelQosParameters */ -static int hf_ngap_e_RAB_ID = -1; /* E_RAB_ID */ static int hf_ngap_QosFlowAddOrModifyResponseList_item = -1; /* QosFlowAddOrModifyResponseItem */ +static int hf_ngap_QosFlowInformationList_item = -1; /* QosFlowInformationItem */ static int hf_ngap_qosCharacteristics = -1; /* QosCharacteristics */ static int hf_ngap_allocationAndRetentionPriority = -1; /* AllocationAndRetentionPriority */ static int hf_ngap_gBR_QosInformation = -1; /* GBR_QosInformation */ @@ -699,6 +710,7 @@ static int hf_ngap_reflectiveQosAttribute = -1; /* ReflectiveQosAttribute */ static int hf_ngap_additionalQosFlowInformation = -1; /* AdditionalQosFlowInformation */ static int hf_ngap_pPI = -1; /* PPI */ static int hf_ngap_QosFlowList_item = -1; /* QosFlowItem */ +static int hf_ngap_QosFlowMappingList_item = -1; /* QosFlowMappingItem */ static int hf_ngap_QosFlowModifyConfirmList_item = -1; /* QosFlowModifyConfirmItem */ static int hf_ngap_QosFlowNotifyList_item = -1; /* QosFlowNotifyItem */ static int hf_ngap_notificationCause = -1; /* NotificationCause */ @@ -740,6 +752,11 @@ static int hf_ngap_sONInformation = -1; /* SONInformation */ static int hf_ngap_xnTNLConfigurationInfo = -1; /* XnTNLConfigurationInfo */ static int hf_ngap_sONInformationRequest = -1; /* SONInformationRequest */ static int hf_ngap_sONInformationReply = -1; /* SONInformationReply */ +static int hf_ngap_rRCContainer = -1; /* RRCContainer */ +static int hf_ngap_pDUSessionResourceInformationList = -1; /* PDUSessionResourceInformationList */ +static int hf_ngap_e_RABInformationList = -1; /* E_RABInformationList */ +static int hf_ngap_targetCell_ID = -1; /* NGRAN_CGI */ +static int hf_ngap_indexToRFSP = -1; /* IndexToRFSP */ static int hf_ngap_globalRANNodeID = -1; /* GlobalRANNodeID */ static int hf_ngap_selectedTAI = -1; /* TAI */ static int hf_ngap_SupportedTAList_item = -1; /* SupportedTAItem */ @@ -856,7 +873,7 @@ static int hf_ngap_successfulOutcome_value = -1; /* SuccessfulOutcome_value */ static int hf_ngap_unsuccessfulOutcome_value = -1; /* UnsuccessfulOutcome_value */ /*--- End of included file: packet-ngap-hf.c ---*/ -#line 57 "./asn1/ngap/packet-ngap-template.c" +#line 58 "./asn1/ngap/packet-ngap-template.c" /* Initialize the subtree pointers */ static int ett_ngap = -1; @@ -919,6 +936,8 @@ static gint ett_ngap_CriticalityDiagnostics_IE_List = -1; static gint ett_ngap_CriticalityDiagnostics_IE_Item = -1; static gint ett_ngap_DataForwardingResponseDRBList = -1; static gint ett_ngap_DataForwardingResponseDRBItem = -1; +static gint ett_ngap_DRBsToQosFlowsMappingList = -1; +static gint ett_ngap_DRBsToQosFlowsMappingItem = -1; static gint ett_ngap_Dynamic5QIDescriptor = -1; static gint ett_ngap_EmergencyAreaIDBroadcastEUTRA = -1; static gint ett_ngap_EmergencyAreaIDBroadcastEUTRA_Item = -1; @@ -932,6 +951,8 @@ static gint ett_ngap_EmergencyAreaIDList = -1; static gint ett_ngap_EmergencyAreaIDListForRestart = -1; static gint ett_ngap_EquivalentPLMNs = -1; static gint ett_ngap_EPS_TAI = -1; +static gint ett_ngap_E_RABInformationList = -1; +static gint ett_ngap_E_RABInformationItem = -1; static gint ett_ngap_EUTRA_CGI = -1; static gint ett_ngap_EUTRA_CGIList = -1; static gint ett_ngap_EUTRA_CGIListForWarning = -1; @@ -965,6 +986,8 @@ static gint ett_ngap_PathSwitchRequestAcknowledgeTransfer = -1; static gint ett_ngap_PathSwitchRequestTransfer = -1; static gint ett_ngap_PDUSessionList = -1; static gint ett_ngap_PDUSessionItem = -1; +static gint ett_ngap_PDUSessionResourceInformationList = -1; +static gint ett_ngap_PDUSessionResourceInformationItem = -1; static gint ett_ngap_PDUSessionResourceModifyConfirmTransfer = -1; static gint ett_ngap_PDUSessionResourceModifyRequestTransfer = -1; static gint ett_ngap_PDUSessionResourceModifyResponseTransfer = -1; @@ -982,9 +1005,13 @@ static gint ett_ngap_QosFlowAddOrModifyRequestList = -1; static gint ett_ngap_QosFlowAddOrModifyRequestItem = -1; static gint ett_ngap_QosFlowAddOrModifyResponseList = -1; static gint ett_ngap_QosFlowAddOrModifyResponseItem = -1; +static gint ett_ngap_QosFlowInformationList = -1; +static gint ett_ngap_QosFlowInformationItem = -1; static gint ett_ngap_QosFlowLevelQosParameters = -1; static gint ett_ngap_QosFlowList = -1; static gint ett_ngap_QosFlowItem = -1; +static gint ett_ngap_QosFlowMappingList = -1; +static gint ett_ngap_QosFlowMappingItem = -1; static gint ett_ngap_QosFlowModifyConfirmList = -1; static gint ett_ngap_QosFlowModifyConfirmItem = -1; static gint ett_ngap_QosFlowNotifyList = -1; @@ -1017,6 +1044,7 @@ static gint ett_ngap_S_NSSAI = -1; static gint ett_ngap_SONConfigurationTransfer = -1; static gint ett_ngap_SONInformation = -1; static gint ett_ngap_SONInformationReply = -1; +static gint ett_ngap_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer = -1; static gint ett_ngap_SourceRANNodeID = -1; static gint ett_ngap_SupportedTAList = -1; static gint ett_ngap_SupportedTAItem = -1; @@ -1033,6 +1061,7 @@ static gint ett_ngap_TAIListForRestart = -1; static gint ett_ngap_TAIListForWarning = -1; static gint ett_ngap_TargeteNB_ID = -1; static gint ett_ngap_TargetID = -1; +static gint ett_ngap_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer = -1; static gint ett_ngap_TargetRANNodeID = -1; static gint ett_ngap_TNLAssociationList = -1; static gint ett_ngap_TNLAssociationItem = -1; @@ -1185,7 +1214,7 @@ static gint ett_ngap_SuccessfulOutcome = -1; static gint ett_ngap_UnsuccessfulOutcome = -1; /*--- End of included file: packet-ngap-ett.c ---*/ -#line 61 "./asn1/ngap/packet-ngap-template.c" +#line 62 "./asn1/ngap/packet-ngap-template.c" static expert_field ei_ngap_number_pages_le15 = EI_INIT; @@ -1442,7 +1471,7 @@ static value_string_ext ngap_ProcedureCode_vals_ext = VALUE_STRING_EXT_INIT(ngap static int dissect_ngap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 98 "./asn1/ngap/ngap.cnf" +#line 88 "./asn1/ngap/ngap.cnf" struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo); offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 255U, &ngap_data->procedure_code, FALSE); @@ -1456,7 +1485,7 @@ dissect_ngap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ static int dissect_ngap_ProtocolExtensionID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 92 "./asn1/ngap/ngap.cnf" +#line 82 "./asn1/ngap/ngap.cnf" struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo); offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 65535U, &ngap_data->protocol_extension_id, FALSE); @@ -1612,7 +1641,7 @@ static value_string_ext ngap_ProtocolIE_ID_vals_ext = VALUE_STRING_EXT_INIT(ngap static int dissect_ngap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 74 "./asn1/ngap/ngap.cnf" +#line 64 "./asn1/ngap/ngap.cnf" struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo); offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 65535U, &ngap_data->protocol_ie_id, FALSE); @@ -1620,7 +1649,7 @@ dissect_ngap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ -#line 78 "./asn1/ngap/ngap.cnf" +#line 68 "./asn1/ngap/ngap.cnf" if (tree) { proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(ngap_data->protocol_ie_id, &ngap_ProtocolIE_ID_vals_ext, "unknown (%d)")); @@ -3611,6 +3640,21 @@ dissect_ngap_DelayCritical(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ } +static const value_string ngap_DLForwarding_vals[] = { + { 0, "dl-forwarding-proposed" }, + { 0, NULL } +}; + + +static int +dissect_ngap_DLForwarding(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 ngap_DirectForwardingPathAvailability_vals[] = { { 0, "direct-path-available" }, { 0, NULL } @@ -3626,6 +3670,65 @@ dissect_ngap_DirectForwardingPathAvailability(tvbuff_t *tvb _U_, int offset _U_, } +static const per_sequence_t QosFlowMappingItem_sequence[] = { + { &hf_ngap_qosFlowIndicator, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ngap_QosFlowIndicator }, + { &hf_ngap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ngap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ngap_QosFlowMappingItem(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_ngap_QosFlowMappingItem, QosFlowMappingItem_sequence); + + return offset; +} + + +static const per_sequence_t QosFlowMappingList_sequence_of[1] = { + { &hf_ngap_QosFlowMappingList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ngap_QosFlowMappingItem }, +}; + +static int +dissect_ngap_QosFlowMappingList(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_ngap_QosFlowMappingList, QosFlowMappingList_sequence_of, + 1, maxnoofQosFlows, FALSE); + + return offset; +} + + +static const per_sequence_t DRBsToQosFlowsMappingItem_sequence[] = { + { &hf_ngap_dRB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ngap_DRB_ID }, + { &hf_ngap_qosFlowMappingList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ngap_QosFlowMappingList }, + { &hf_ngap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ngap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ngap_DRBsToQosFlowsMappingItem(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_ngap_DRBsToQosFlowsMappingItem, DRBsToQosFlowsMappingItem_sequence); + + return offset; +} + + +static const per_sequence_t DRBsToQosFlowsMappingList_sequence_of[1] = { + { &hf_ngap_DRBsToQosFlowsMappingList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ngap_DRBsToQosFlowsMappingItem }, +}; + +static int +dissect_ngap_DRBsToQosFlowsMappingList(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_ngap_DRBsToQosFlowsMappingList, DRBsToQosFlowsMappingList_sequence_of, + 1, maxnoofDRBs, FALSE); + + return offset; +} + + static int dissect_ngap_PriorityLevelQos(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -3779,6 +3882,36 @@ dissect_ngap_E_RAB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p } +static const per_sequence_t E_RABInformationItem_sequence[] = { + { &hf_ngap_e_RAB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ngap_E_RAB_ID }, + { &hf_ngap_dLForwarding , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ngap_DLForwarding }, + { &hf_ngap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ngap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ngap_E_RABInformationItem(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_ngap_E_RABInformationItem, E_RABInformationItem_sequence); + + return offset; +} + + +static const per_sequence_t E_RABInformationList_sequence_of[1] = { + { &hf_ngap_E_RABInformationList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ngap_E_RABInformationItem }, +}; + +static int +dissect_ngap_E_RABInformationList(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_ngap_E_RABInformationList, E_RABInformationList_sequence_of, + 1, maxnoofE_RABs, FALSE); + + return offset; +} + + static const per_sequence_t EUTRA_CGIListForWarning_sequence_of[1] = { { &hf_ngap_EUTRA_CGIListForWarning_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ngap_EUTRA_CGI }, }; @@ -4436,7 +4569,7 @@ static const value_string ngap_HandoverType_vals[] = { static int dissect_ngap_HandoverType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 220 "./asn1/ngap/ngap.cnf" +#line 210 "./asn1/ngap/ngap.cnf" struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo); offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 3, &ngap_data->handover_type_value, TRUE, 0, NULL); @@ -4642,7 +4775,7 @@ dissect_ngap_MultipleTNLInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ static int dissect_ngap_NAS_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 198 "./asn1/ngap/ngap.cnf" +#line 188 "./asn1/ngap/ngap.cnf" tvbuff_t *parameter_tvb=NULL; @@ -4949,6 +5082,67 @@ dissect_ngap_PDUSessionList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } +static const per_sequence_t QosFlowInformationItem_sequence[] = { + { &hf_ngap_qosFlowIndicator, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ngap_QosFlowIndicator }, + { &hf_ngap_dLForwarding , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ngap_DLForwarding }, + { &hf_ngap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ngap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ngap_QosFlowInformationItem(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_ngap_QosFlowInformationItem, QosFlowInformationItem_sequence); + + return offset; +} + + +static const per_sequence_t QosFlowInformationList_sequence_of[1] = { + { &hf_ngap_QosFlowInformationList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ngap_QosFlowInformationItem }, +}; + +static int +dissect_ngap_QosFlowInformationList(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_ngap_QosFlowInformationList, QosFlowInformationList_sequence_of, + 1, maxnoofQosFlows, FALSE); + + return offset; +} + + +static const per_sequence_t PDUSessionResourceInformationItem_sequence[] = { + { &hf_ngap_pDUSessionID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ngap_PDUSessionID }, + { &hf_ngap_qosFlowInformationList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ngap_QosFlowInformationList }, + { &hf_ngap_dRBsToQosFlowsMappingList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ngap_DRBsToQosFlowsMappingList }, + { &hf_ngap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ngap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ngap_PDUSessionResourceInformationItem(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_ngap_PDUSessionResourceInformationItem, PDUSessionResourceInformationItem_sequence); + + return offset; +} + + +static const per_sequence_t PDUSessionResourceInformationList_sequence_of[1] = { + { &hf_ngap_PDUSessionResourceInformationList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ngap_PDUSessionResourceInformationItem }, +}; + +static int +dissect_ngap_PDUSessionResourceInformationList(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_ngap_PDUSessionResourceInformationList, PDUSessionResourceInformationList_sequence_of, + 1, maxnoofPDUSessions, FALSE); + + return offset; +} + + static const per_sequence_t QosFlowModifyConfirmItem_sequence[] = { { &hf_ngap_qosFlowIndicator, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ngap_QosFlowIndicator }, { &hf_ngap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ngap_ProtocolExtensionContainer }, @@ -5526,6 +5720,16 @@ dissect_ngap_RoutingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, static int +dissect_ngap_RRCContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, NULL); + + return offset; +} + + + +static int dissect_ngap_RRCEstablishmentCause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, NULL); @@ -5829,6 +6033,25 @@ dissect_ngap_SONConfigurationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ct } +static const per_sequence_t SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_sequence[] = { + { &hf_ngap_rRCContainer , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ngap_RRCContainer }, + { &hf_ngap_pDUSessionResourceInformationList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ngap_PDUSessionResourceInformationList }, + { &hf_ngap_e_RABInformationList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ngap_E_RABInformationList }, + { &hf_ngap_targetCell_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ngap_NGRAN_CGI }, + { &hf_ngap_indexToRFSP , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ngap_IndexToRFSP }, + { &hf_ngap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ngap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ngap_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer(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_ngap_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer, SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_sequence); + + return offset; +} + + static int dissect_ngap_SourceToTarget_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -5935,6 +6158,21 @@ dissect_ngap_TargetID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p } +static const per_sequence_t TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_sequence[] = { + { &hf_ngap_rRCContainer , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ngap_RRCContainer }, + { &hf_ngap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ngap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_ngap_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer(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_ngap_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer, TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_sequence); + + return offset; +} + + static int dissect_ngap_TargetToSource_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -6441,7 +6679,7 @@ static const per_sequence_t PDUSessionResourceSetupRequest_sequence[] = { static int dissect_ngap_PDUSessionResourceSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 873 "./asn1/ngap/ngap.cnf" +#line 863 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceSetupRequest"); @@ -6501,7 +6739,7 @@ static const per_sequence_t PDUSessionResourceSetupResponse_sequence[] = { static int dissect_ngap_PDUSessionResourceSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 876 "./asn1/ngap/ngap.cnf" +#line 866 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceSetupResponse"); @@ -6570,7 +6808,7 @@ static const per_sequence_t PDUSessionResourceReleaseCommand_sequence[] = { static int dissect_ngap_PDUSessionResourceReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 867 "./asn1/ngap/ngap.cnf" +#line 857 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceReleaseCommand"); @@ -6588,7 +6826,7 @@ static const per_sequence_t PDUSessionResourceReleaseResponse_sequence[] = { static int dissect_ngap_PDUSessionResourceReleaseResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 870 "./asn1/ngap/ngap.cnf" +#line 860 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceReleaseResponse"); @@ -6606,7 +6844,7 @@ static const per_sequence_t PDUSessionResourceModifyRequest_sequence[] = { static int dissect_ngap_PDUSessionResourceModifyRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 852 "./asn1/ngap/ngap.cnf" +#line 842 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceModifyRequest"); @@ -6665,7 +6903,7 @@ static const per_sequence_t PDUSessionResourceModifyResponse_sequence[] = { static int dissect_ngap_PDUSessionResourceModifyResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 855 "./asn1/ngap/ngap.cnf" +#line 845 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceModifyResponse"); @@ -6723,7 +6961,7 @@ static const per_sequence_t PDUSessionResourceNotify_sequence[] = { static int dissect_ngap_PDUSessionResourceNotify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 864 "./asn1/ngap/ngap.cnf" +#line 854 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceNotify"); @@ -6781,7 +7019,7 @@ static const per_sequence_t PDUSessionResourceModifyIndication_sequence[] = { static int dissect_ngap_PDUSessionResourceModifyIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 858 "./asn1/ngap/ngap.cnf" +#line 848 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceModifyIndication"); @@ -6839,7 +7077,7 @@ static const per_sequence_t PDUSessionResourceModifyConfirm_sequence[] = { static int dissect_ngap_PDUSessionResourceModifyConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 861 "./asn1/ngap/ngap.cnf" +#line 851 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PDUSessionResourceModifyConfirm"); @@ -6897,7 +7135,7 @@ static const per_sequence_t InitialContextSetupRequest_sequence[] = { static int dissect_ngap_InitialContextSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 801 "./asn1/ngap/ngap.cnf" +#line 791 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupRequest"); @@ -6957,7 +7195,7 @@ static const per_sequence_t InitialContextSetupResponse_sequence[] = { static int dissect_ngap_InitialContextSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 804 "./asn1/ngap/ngap.cnf" +#line 794 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupResponse"); @@ -7026,7 +7264,7 @@ static const per_sequence_t InitialContextSetupFailure_sequence[] = { static int dissect_ngap_InitialContextSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 807 "./asn1/ngap/ngap.cnf" +#line 797 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupFailure"); @@ -7044,7 +7282,7 @@ static const per_sequence_t UEContextReleaseRequest_sequence[] = { static int dissect_ngap_UEContextReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 930 "./asn1/ngap/ngap.cnf" +#line 920 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseRequest"); @@ -7062,7 +7300,7 @@ static const per_sequence_t UEContextReleaseCommand_sequence[] = { static int dissect_ngap_UEContextReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 924 "./asn1/ngap/ngap.cnf" +#line 914 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseCommand"); @@ -7080,7 +7318,7 @@ static const per_sequence_t UEContextReleaseComplete_sequence[] = { static int dissect_ngap_UEContextReleaseComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 927 "./asn1/ngap/ngap.cnf" +#line 917 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseComplete"); @@ -7098,7 +7336,7 @@ static const per_sequence_t UEContextModificationRequest_sequence[] = { static int dissect_ngap_UEContextModificationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 915 "./asn1/ngap/ngap.cnf" +#line 905 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationRequest"); @@ -7116,7 +7354,7 @@ static const per_sequence_t UEContextModificationResponse_sequence[] = { static int dissect_ngap_UEContextModificationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 918 "./asn1/ngap/ngap.cnf" +#line 908 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationResponse"); @@ -7134,7 +7372,7 @@ static const per_sequence_t UEContextModificationFailure_sequence[] = { static int dissect_ngap_UEContextModificationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 921 "./asn1/ngap/ngap.cnf" +#line 911 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationFailure"); @@ -7152,7 +7390,7 @@ static const per_sequence_t HandoverRequired_sequence[] = { static int dissect_ngap_HandoverRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 225 "./asn1/ngap/ngap.cnf" +#line 215 "./asn1/ngap/ngap.cnf" struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo); ngap_data->handover_type_value = 0; col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequired"); @@ -7214,7 +7452,7 @@ static const per_sequence_t HandoverCommand_sequence[] = { static int dissect_ngap_HandoverCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 228 "./asn1/ngap/ngap.cnf" +#line 218 "./asn1/ngap/ngap.cnf" struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo); ngap_data->handover_type_value = 0; col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCommand"); @@ -7274,7 +7512,7 @@ static const per_sequence_t HandoverPreparationFailure_sequence[] = { static int dissect_ngap_HandoverPreparationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 789 "./asn1/ngap/ngap.cnf" +#line 779 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverPreparationFailure"); @@ -7292,7 +7530,7 @@ static const per_sequence_t HandoverRequest_sequence[] = { static int dissect_ngap_HandoverRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 231 "./asn1/ngap/ngap.cnf" +#line 221 "./asn1/ngap/ngap.cnf" struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo); ngap_data->handover_type_value = 0; col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequest"); @@ -7353,7 +7591,7 @@ static const per_sequence_t HandoverRequestAcknowledge_sequence[] = { static int dissect_ngap_HandoverRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 234 "./asn1/ngap/ngap.cnf" +#line 224 "./asn1/ngap/ngap.cnf" struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo); ngap_data->handover_type_value = 0; @@ -7414,7 +7652,7 @@ static const per_sequence_t HandoverFailure_sequence[] = { static int dissect_ngap_HandoverFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 798 "./asn1/ngap/ngap.cnf" +#line 788 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverFailure"); @@ -7432,7 +7670,7 @@ static const per_sequence_t HandoverNotify_sequence[] = { static int dissect_ngap_HandoverNotify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 780 "./asn1/ngap/ngap.cnf" +#line 770 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverNotify"); @@ -7450,7 +7688,7 @@ static const per_sequence_t PathSwitchRequest_sequence[] = { static int dissect_ngap_PathSwitchRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 843 "./asn1/ngap/ngap.cnf" +#line 833 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequest"); @@ -7508,7 +7746,7 @@ static const per_sequence_t PathSwitchRequestAcknowledge_sequence[] = { static int dissect_ngap_PathSwitchRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 846 "./asn1/ngap/ngap.cnf" +#line 836 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestAcknowledge"); @@ -7566,7 +7804,7 @@ static const per_sequence_t PathSwitchRequestFailure_sequence[] = { static int dissect_ngap_PathSwitchRequestFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 849 "./asn1/ngap/ngap.cnf" +#line 839 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestFailure"); @@ -7584,7 +7822,7 @@ static const per_sequence_t HandoverCancel_sequence[] = { static int dissect_ngap_HandoverCancel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 774 "./asn1/ngap/ngap.cnf" +#line 764 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancel"); @@ -7602,7 +7840,7 @@ static const per_sequence_t HandoverCancelAcknowledge_sequence[] = { static int dissect_ngap_HandoverCancelAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 777 "./asn1/ngap/ngap.cnf" +#line 767 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancelAcknowledge"); @@ -7620,7 +7858,7 @@ static const per_sequence_t UplinkRANStatusTransfer_sequence[] = { static int dissect_ngap_UplinkRANStatusTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 951 "./asn1/ngap/ngap.cnf" +#line 941 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkRANStatusTransfer"); @@ -7638,7 +7876,7 @@ static const per_sequence_t DownlinkRANStatusTransfer_sequence[] = { static int dissect_ngap_DownlinkRANStatusTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 765 "./asn1/ngap/ngap.cnf" +#line 755 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkRANStatusTransfer"); @@ -7656,7 +7894,7 @@ static const per_sequence_t Paging_sequence[] = { static int dissect_ngap_Paging(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 840 "./asn1/ngap/ngap.cnf" +#line 830 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Paging"); @@ -7689,7 +7927,7 @@ static const per_sequence_t InitialUEMessage_sequence[] = { static int dissect_ngap_InitialUEMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 208 "./asn1/ngap/ngap.cnf" +#line 198 "./asn1/ngap/ngap.cnf" /* Set the direction of the message */ actx->pinfo->link_dir=P2P_DIR_UL; @@ -7710,7 +7948,7 @@ static const per_sequence_t DownlinkNASTransport_sequence[] = { static int dissect_ngap_DownlinkNASTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 212 "./asn1/ngap/ngap.cnf" +#line 202 "./asn1/ngap/ngap.cnf" /* Set the direction of the message */ actx->pinfo->link_dir=P2P_DIR_DL; @@ -7731,7 +7969,7 @@ static const per_sequence_t UplinkNASTransport_sequence[] = { static int dissect_ngap_UplinkNASTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 216 "./asn1/ngap/ngap.cnf" +#line 206 "./asn1/ngap/ngap.cnf" /* Set the direction of the message */ actx->pinfo->link_dir=P2P_DIR_UL; @@ -7752,7 +7990,7 @@ static const per_sequence_t NASNonDeliveryIndication_sequence[] = { static int dissect_ngap_NASNonDeliveryIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 822 "./asn1/ngap/ngap.cnf" +#line 812 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NASNonDeliveryIndication"); @@ -7770,7 +8008,7 @@ static const per_sequence_t RerouteNASRequest_sequence[] = { static int dissect_ngap_RerouteNASRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 903 "./asn1/ngap/ngap.cnf" +#line 893 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RerouteNASRequest"); @@ -7788,7 +8026,7 @@ static const per_sequence_t NGSetupRequest_sequence[] = { static int dissect_ngap_NGSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 831 "./asn1/ngap/ngap.cnf" +#line 821 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NGSetupRequest"); @@ -7806,7 +8044,7 @@ static const per_sequence_t NGSetupResponse_sequence[] = { static int dissect_ngap_NGSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 834 "./asn1/ngap/ngap.cnf" +#line 824 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NGSetupResponse"); @@ -7824,7 +8062,7 @@ static const per_sequence_t NGSetupFailure_sequence[] = { static int dissect_ngap_NGSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 837 "./asn1/ngap/ngap.cnf" +#line 827 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NGSetupFailure"); @@ -7842,7 +8080,7 @@ static const per_sequence_t RANConfigurationUpdate_sequence[] = { static int dissect_ngap_RANConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 894 "./asn1/ngap/ngap.cnf" +#line 884 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RANConfigurationUpdate"); @@ -7860,7 +8098,7 @@ static const per_sequence_t RANConfigurationUpdateAcknowledge_sequence[] = { static int dissect_ngap_RANConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 897 "./asn1/ngap/ngap.cnf" +#line 887 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RANConfigurationUpdateAcknowledge"); @@ -7878,7 +8116,7 @@ static const per_sequence_t RANConfigurationUpdateFailure_sequence[] = { static int dissect_ngap_RANConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 900 "./asn1/ngap/ngap.cnf" +#line 890 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RANConfigurationUpdateFailure"); @@ -7896,7 +8134,7 @@ static const per_sequence_t AMFConfigurationUpdate_sequence[] = { static int dissect_ngap_AMFConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 741 "./asn1/ngap/ngap.cnf" +#line 731 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "AMFConfigurationUpdate"); @@ -8005,7 +8243,7 @@ static const per_sequence_t AMFConfigurationUpdateAcknowledge_sequence[] = { static int dissect_ngap_AMFConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 744 "./asn1/ngap/ngap.cnf" +#line 734 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "AMFConfigurationUpdateAcknowledge"); @@ -8052,7 +8290,7 @@ static const per_sequence_t AMFConfigurationUpdateFailure_sequence[] = { static int dissect_ngap_AMFConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 747 "./asn1/ngap/ngap.cnf" +#line 737 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "AMFConfigurationUpdateFailure"); @@ -8070,7 +8308,7 @@ static const per_sequence_t NGReset_sequence[] = { static int dissect_ngap_NGReset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 825 "./asn1/ngap/ngap.cnf" +#line 815 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NGReset"); @@ -8139,7 +8377,7 @@ static const per_sequence_t NGResetAcknowledge_sequence[] = { static int dissect_ngap_NGResetAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 828 "./asn1/ngap/ngap.cnf" +#line 818 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NGResetAcknowledge"); @@ -8171,7 +8409,7 @@ static const per_sequence_t ErrorIndication_sequence[] = { static int dissect_ngap_ErrorIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 771 "./asn1/ngap/ngap.cnf" +#line 761 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ErrorIndication"); @@ -8189,7 +8427,7 @@ static const per_sequence_t UplinkRANConfigurationTransfer_sequence[] = { static int dissect_ngap_UplinkRANConfigurationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 948 "./asn1/ngap/ngap.cnf" +#line 938 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkRANConfigurationTransfer"); @@ -8207,7 +8445,7 @@ static const per_sequence_t DownlinkRANConfigurationTransfer_sequence[] = { static int dissect_ngap_DownlinkRANConfigurationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 762 "./asn1/ngap/ngap.cnf" +#line 752 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkRANConfigurationTransfer"); @@ -8225,7 +8463,7 @@ static const per_sequence_t WriteReplaceWarningRequest_sequence[] = { static int dissect_ngap_WriteReplaceWarningRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 957 "./asn1/ngap/ngap.cnf" +#line 947 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningRequest"); @@ -8243,7 +8481,7 @@ static const per_sequence_t WriteReplaceWarningResponse_sequence[] = { static int dissect_ngap_WriteReplaceWarningResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 960 "./asn1/ngap/ngap.cnf" +#line 950 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningResponse"); @@ -8262,7 +8500,7 @@ static const per_sequence_t PWSCancelRequest_sequence[] = { static int dissect_ngap_PWSCancelRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 882 "./asn1/ngap/ngap.cnf" +#line 872 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSCancelRequest"); @@ -8280,7 +8518,7 @@ static const per_sequence_t PWSCancelResponse_sequence[] = { static int dissect_ngap_PWSCancelResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 885 "./asn1/ngap/ngap.cnf" +#line 875 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSCancelResponse"); @@ -8298,7 +8536,7 @@ static const per_sequence_t PWSRestartIndication_sequence[] = { static int dissect_ngap_PWSRestartIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 891 "./asn1/ngap/ngap.cnf" +#line 881 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSRestartIndication"); @@ -8316,7 +8554,7 @@ static const per_sequence_t PWSFailureIndication_sequence[] = { static int dissect_ngap_PWSFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 888 "./asn1/ngap/ngap.cnf" +#line 878 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSFailureIndication"); @@ -8334,7 +8572,7 @@ static const per_sequence_t DownlinkUEAssociatedNRPPaTransport_sequence[] = { static int dissect_ngap_DownlinkUEAssociatedNRPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 768 "./asn1/ngap/ngap.cnf" +#line 758 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkUEAssociatedNRPPaTransport"); @@ -8352,7 +8590,7 @@ static const per_sequence_t UplinkUEAssociatedNRPPaTransport_sequence[] = { static int dissect_ngap_UplinkUEAssociatedNRPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 954 "./asn1/ngap/ngap.cnf" +#line 944 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkUEAssociatedNRPPaTransport"); @@ -8370,7 +8608,7 @@ static const per_sequence_t DownlinkNonUEAssociatedNRPPaTransport_sequence[] = { static int dissect_ngap_DownlinkNonUEAssociatedNRPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 759 "./asn1/ngap/ngap.cnf" +#line 749 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkNonUEAssociatedNRPPaTransport"); @@ -8388,7 +8626,7 @@ static const per_sequence_t UplinkNonUEAssociatedNRPPaTransport_sequence[] = { static int dissect_ngap_UplinkNonUEAssociatedNRPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 945 "./asn1/ngap/ngap.cnf" +#line 935 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkNonUEAssociatedNRPPaTransport"); @@ -8406,7 +8644,7 @@ static const per_sequence_t TraceStart_sequence[] = { static int dissect_ngap_TraceStart(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 909 "./asn1/ngap/ngap.cnf" +#line 899 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceStart"); @@ -8424,7 +8662,7 @@ static const per_sequence_t TraceFailureIndication_sequence[] = { static int dissect_ngap_TraceFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 906 "./asn1/ngap/ngap.cnf" +#line 896 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceFailureIndication"); @@ -8442,7 +8680,7 @@ static const per_sequence_t DeactivateTrace_sequence[] = { static int dissect_ngap_DeactivateTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 753 "./asn1/ngap/ngap.cnf" +#line 743 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DeactivateTrace"); @@ -8460,7 +8698,7 @@ static const per_sequence_t CellTrafficTrace_sequence[] = { static int dissect_ngap_CellTrafficTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 750 "./asn1/ngap/ngap.cnf" +#line 740 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CellTrafficTrace"); @@ -8478,7 +8716,7 @@ static const per_sequence_t LocationReportingControl_sequence[] = { static int dissect_ngap_LocationReportingControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 813 "./asn1/ngap/ngap.cnf" +#line 803 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReportingControl"); @@ -8496,7 +8734,7 @@ static const per_sequence_t LocationReportingFailureIndication_sequence[] = { static int dissect_ngap_LocationReportingFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 816 "./asn1/ngap/ngap.cnf" +#line 806 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReportingFailureIndication"); @@ -8514,7 +8752,7 @@ static const per_sequence_t LocationReport_sequence[] = { static int dissect_ngap_LocationReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 819 "./asn1/ngap/ngap.cnf" +#line 809 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReport"); @@ -8532,7 +8770,7 @@ static const per_sequence_t UETNLABindingReleaseRequest_sequence[] = { static int dissect_ngap_UETNLABindingReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 939 "./asn1/ngap/ngap.cnf" +#line 929 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UETNLABindingReleaseRequest"); @@ -8550,7 +8788,7 @@ static const per_sequence_t UECapabilityInfoIndication_sequence[] = { static int dissect_ngap_UECapabilityInfoIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 912 "./asn1/ngap/ngap.cnf" +#line 902 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UECapabilityInfoIndication"); @@ -8568,7 +8806,7 @@ static const per_sequence_t UERadioCapabilityCheckRequest_sequence[] = { static int dissect_ngap_UERadioCapabilityCheckRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 933 "./asn1/ngap/ngap.cnf" +#line 923 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityCheckRequest"); @@ -8586,7 +8824,7 @@ static const per_sequence_t UERadioCapabilityCheckResponse_sequence[] = { static int dissect_ngap_UERadioCapabilityCheckResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 936 "./asn1/ngap/ngap.cnf" +#line 926 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityCheckResponse"); @@ -8604,7 +8842,7 @@ static const per_sequence_t PrivateMessage_sequence[] = { static int dissect_ngap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 879 "./asn1/ngap/ngap.cnf" +#line 869 "./asn1/ngap/ngap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PrivateMessage"); @@ -8618,7 +8856,7 @@ dissect_ngap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_ngap_InitiatingMessage_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 104 "./asn1/ngap/ngap.cnf" +#line 94 "./asn1/ngap/ngap.cnf" struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo); ngap_data->message_type = INITIATING_MESSAGE; @@ -8647,7 +8885,7 @@ dissect_ngap_InitiatingMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static int dissect_ngap_SuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 108 "./asn1/ngap/ngap.cnf" +#line 98 "./asn1/ngap/ngap.cnf" struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo); ngap_data->message_type = SUCCESSFUL_OUTCOME; @@ -8676,7 +8914,7 @@ dissect_ngap_SuccessfulOutcome(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static int dissect_ngap_UnsuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 112 "./asn1/ngap/ngap.cnf" +#line 102 "./asn1/ngap/ngap.cnf" struct ngap_private_data *ngap_data = ngap_get_private_data(actx->pinfo); ngap_data->message_type = UNSUCCESSFUL_OUTCOME; @@ -9189,6 +9427,14 @@ static int dissect_SONConfigurationTransfer_PDU(tvbuff_t *tvb _U_, packet_info * offset += 7; offset >>= 3; return offset; } +int dissect_ngap_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_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_ngap_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer(tvb, offset, &asn1_ctx, tree, hf_ngap_ngap_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_SourceToTarget_TransparentContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -9229,6 +9475,14 @@ static int dissect_TargetID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto offset += 7; offset >>= 3; return offset; } +int dissect_ngap_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_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_ngap_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer(tvb, offset, &asn1_ctx, tree, hf_ngap_ngap_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_TargetToSource_TransparentContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -10432,7 +10686,7 @@ static int dissect_PathSwitchRequestAcknowledgeTransfer_PDU(tvbuff_t *tvb _U_, p /*--- End of included file: packet-ngap-fn.c ---*/ -#line 185 "./asn1/ngap/packet-ngap-template.c" +#line 186 "./asn1/ngap/packet-ngap-template.c" static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) { @@ -10760,7 +11014,7 @@ proto_reg_handoff_ngap(void) /*--- End of included file: packet-ngap-dis-tab.c ---*/ -#line 299 "./asn1/ngap/packet-ngap-template.c" +#line 300 "./asn1/ngap/packet-ngap-template.c" } else { if (SctpPort != 0) { dissector_delete_uint("sctp.port", SctpPort, ngap_handle); @@ -11007,6 +11261,10 @@ void proto_register_ngap(void) { { "SONConfigurationTransfer", "ngap.SONConfigurationTransfer_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_ngap_ngap_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_PDU, + { "SourceNGRANNode-ToTargetNGRANNode-TransparentContainer", "ngap.SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_ngap_SourceToTarget_TransparentContainer_PDU, { "SourceToTarget-TransparentContainer", "ngap.SourceToTarget_TransparentContainer", FT_BYTES, BASE_NONE, NULL, 0, @@ -11027,6 +11285,10 @@ void proto_register_ngap(void) { { "TargetID", "ngap.TargetID", FT_UINT32, BASE_DEC, VALS(ngap_TargetID_vals), 0, NULL, HFILL }}, + { &hf_ngap_ngap_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_PDU, + { "TargetNGRANNode-ToSourceNGRANNode-TransparentContainer", "ngap.TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_ngap_TargetToSource_TransparentContainer_PDU, { "TargetToSource-TransparentContainer", "ngap.TargetToSource_TransparentContainer", FT_BYTES, BASE_NONE, NULL, 0, @@ -11947,6 +12209,14 @@ void proto_register_ngap(void) { { "uLForwardingUP-TNLInformation", "ngap.uLForwardingUP_TNLInformation", FT_UINT32, BASE_DEC, VALS(ngap_UPTransportLayerInformation_vals), 0, "UPTransportLayerInformation", HFILL }}, + { &hf_ngap_DRBsToQosFlowsMappingList_item, + { "DRBsToQosFlowsMappingItem", "ngap.DRBsToQosFlowsMappingItem_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ngap_qosFlowMappingList, + { "qosFlowMappingList", "ngap.qosFlowMappingList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, { &hf_ngap_priorityLevelQos, { "priorityLevelQos", "ngap.priorityLevelQos", FT_UINT32, BASE_DEC, NULL, 0, @@ -12023,6 +12293,18 @@ void proto_register_ngap(void) { { "ePS-TAC", "ngap.ePS_TAC", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_ngap_E_RABInformationList_item, + { "E-RABInformationItem", "ngap.E_RABInformationItem_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ngap_e_RAB_ID, + { "e-RAB-ID", "ngap.e_RAB_ID", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ngap_dLForwarding, + { "dLForwarding", "ngap.dLForwarding", + FT_UINT32, BASE_DEC, VALS(ngap_DLForwarding_vals), 0, + NULL, HFILL }}, { &hf_ngap_eUTRACellIdentity, { "eUTRACellIdentity", "ngap.eUTRACellIdentity", FT_BYTES, BASE_NONE, NULL, 0, @@ -12267,6 +12549,18 @@ void proto_register_ngap(void) { { "cause", "ngap.cause", FT_UINT32, BASE_DEC, VALS(ngap_Cause_vals), 0, NULL, HFILL }}, + { &hf_ngap_PDUSessionResourceInformationList_item, + { "PDUSessionResourceInformationItem", "ngap.PDUSessionResourceInformationItem_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ngap_qosFlowInformationList, + { "qosFlowInformationList", "ngap.qosFlowInformationList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ngap_dRBsToQosFlowsMappingList, + { "dRBsToQosFlowsMappingList", "ngap.dRBsToQosFlowsMappingList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, { &hf_ngap_qosFlowModifyConfirmList, { "qosFlowModifyConfirmList", "ngap.qosFlowModifyConfirmList", FT_UINT32, BASE_DEC, NULL, 0, @@ -12363,14 +12657,14 @@ void proto_register_ngap(void) { { "qosFlowLevelQosParameters", "ngap.qosFlowLevelQosParameters_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_ngap_e_RAB_ID, - { "e-RAB-ID", "ngap.e_RAB_ID", - FT_UINT32, BASE_DEC, NULL, 0, - NULL, HFILL }}, { &hf_ngap_QosFlowAddOrModifyResponseList_item, { "QosFlowAddOrModifyResponseItem", "ngap.QosFlowAddOrModifyResponseItem_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_ngap_QosFlowInformationList_item, + { "QosFlowInformationItem", "ngap.QosFlowInformationItem_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_ngap_qosCharacteristics, { "qosCharacteristics", "ngap.qosCharacteristics", FT_UINT32, BASE_DEC, VALS(ngap_QosCharacteristics_vals), 0, @@ -12399,6 +12693,10 @@ void proto_register_ngap(void) { { "QosFlowItem", "ngap.QosFlowItem_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_ngap_QosFlowMappingList_item, + { "QosFlowMappingItem", "ngap.QosFlowMappingItem_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_ngap_QosFlowModifyConfirmList_item, { "QosFlowModifyConfirmItem", "ngap.QosFlowModifyConfirmItem_element", FT_NONE, BASE_NONE, NULL, 0, @@ -12563,6 +12861,26 @@ void proto_register_ngap(void) { { "sONInformationReply", "ngap.sONInformationReply_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_ngap_rRCContainer, + { "rRCContainer", "ngap.rRCContainer", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_ngap_pDUSessionResourceInformationList, + { "pDUSessionResourceInformationList", "ngap.pDUSessionResourceInformationList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ngap_e_RABInformationList, + { "e-RABInformationList", "ngap.e_RABInformationList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_ngap_targetCell_ID, + { "targetCell-ID", "ngap.targetCell_ID", + FT_UINT32, BASE_DEC, VALS(ngap_NGRAN_CGI_vals), 0, + "NGRAN_CGI", HFILL }}, + { &hf_ngap_indexToRFSP, + { "indexToRFSP", "ngap.indexToRFSP", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, { &hf_ngap_globalRANNodeID, { "globalRANNodeID", "ngap.globalRANNodeID", FT_UINT32, BASE_DEC, VALS(ngap_GlobalRANNodeID_vals), 0, @@ -13021,7 +13339,7 @@ void proto_register_ngap(void) { "UnsuccessfulOutcome_value", HFILL }}, /*--- End of included file: packet-ngap-hfarr.c ---*/ -#line 319 "./asn1/ngap/packet-ngap-template.c" +#line 320 "./asn1/ngap/packet-ngap-template.c" }; /* List of subtrees */ @@ -13086,6 +13404,8 @@ void proto_register_ngap(void) { &ett_ngap_CriticalityDiagnostics_IE_Item, &ett_ngap_DataForwardingResponseDRBList, &ett_ngap_DataForwardingResponseDRBItem, + &ett_ngap_DRBsToQosFlowsMappingList, + &ett_ngap_DRBsToQosFlowsMappingItem, &ett_ngap_Dynamic5QIDescriptor, &ett_ngap_EmergencyAreaIDBroadcastEUTRA, &ett_ngap_EmergencyAreaIDBroadcastEUTRA_Item, @@ -13099,6 +13419,8 @@ void proto_register_ngap(void) { &ett_ngap_EmergencyAreaIDListForRestart, &ett_ngap_EquivalentPLMNs, &ett_ngap_EPS_TAI, + &ett_ngap_E_RABInformationList, + &ett_ngap_E_RABInformationItem, &ett_ngap_EUTRA_CGI, &ett_ngap_EUTRA_CGIList, &ett_ngap_EUTRA_CGIListForWarning, @@ -13132,6 +13454,8 @@ void proto_register_ngap(void) { &ett_ngap_PathSwitchRequestTransfer, &ett_ngap_PDUSessionList, &ett_ngap_PDUSessionItem, + &ett_ngap_PDUSessionResourceInformationList, + &ett_ngap_PDUSessionResourceInformationItem, &ett_ngap_PDUSessionResourceModifyConfirmTransfer, &ett_ngap_PDUSessionResourceModifyRequestTransfer, &ett_ngap_PDUSessionResourceModifyResponseTransfer, @@ -13149,9 +13473,13 @@ void proto_register_ngap(void) { &ett_ngap_QosFlowAddOrModifyRequestItem, &ett_ngap_QosFlowAddOrModifyResponseList, &ett_ngap_QosFlowAddOrModifyResponseItem, + &ett_ngap_QosFlowInformationList, + &ett_ngap_QosFlowInformationItem, &ett_ngap_QosFlowLevelQosParameters, &ett_ngap_QosFlowList, &ett_ngap_QosFlowItem, + &ett_ngap_QosFlowMappingList, + &ett_ngap_QosFlowMappingItem, &ett_ngap_QosFlowModifyConfirmList, &ett_ngap_QosFlowModifyConfirmItem, &ett_ngap_QosFlowNotifyList, @@ -13184,6 +13512,7 @@ void proto_register_ngap(void) { &ett_ngap_SONConfigurationTransfer, &ett_ngap_SONInformation, &ett_ngap_SONInformationReply, + &ett_ngap_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer, &ett_ngap_SourceRANNodeID, &ett_ngap_SupportedTAList, &ett_ngap_SupportedTAItem, @@ -13200,6 +13529,7 @@ void proto_register_ngap(void) { &ett_ngap_TAIListForWarning, &ett_ngap_TargeteNB_ID, &ett_ngap_TargetID, + &ett_ngap_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer, &ett_ngap_TargetRANNodeID, &ett_ngap_TNLAssociationList, &ett_ngap_TNLAssociationItem, @@ -13352,7 +13682,7 @@ void proto_register_ngap(void) { &ett_ngap_UnsuccessfulOutcome, /*--- End of included file: packet-ngap-ettarr.c ---*/ -#line 325 "./asn1/ngap/packet-ngap-template.c" +#line 326 "./asn1/ngap/packet-ngap-template.c" }; static ei_register_info ei[] = { diff --git a/epan/dissectors/packet-ngap.h b/epan/dissectors/packet-ngap.h new file mode 100644 index 0000000000..77ddd6328f --- /dev/null +++ b/epan/dissectors/packet-ngap.h @@ -0,0 +1,44 @@ +/* Do not modify this file. Changes will be overwritten. */ +/* Generated automatically by the ASN.1 to Wireshark dissector compiler */ +/* packet-ngap.h */ +/* asn2wrs.py -p ngap -c ./ngap.cnf -s ./packet-ngap-template -D . -O ../.. NGAP-CommonDataTypes.asn NGAP-Constants.asn NGAP-Containers.asn NGAP-IEs.asn NGAP-PDU-Contents.asn NGAP-PDU-Descriptions.asn */ + +/* Input file: packet-ngap-template.h */ + +#line 1 "./asn1/ngap/packet-ngap-template.h" +/* packet-s1ap.h + * Routines for E-UTRAN NG Application Protocol (NGAP) packet dissection + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef PACKET_NGAP_H +#define PACKET_NGAP_H + + +/*--- Included file: packet-ngap-exp.h ---*/ +#line 1 "./asn1/ngap/packet-ngap-exp.h" +int dissect_ngap_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); +int dissect_ngap_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); + +/*--- End of included file: packet-ngap-exp.h ---*/ +#line 15 "./asn1/ngap/packet-ngap-template.h" + +#endif /* PACKET_NGAP_H */ + +/* + * Editor modelines + * + * Local Variables: + * c-basic-offset: 2 + * tab-width: 8 + * indent-tabs-mode: nil + * End: + * + * ex: set shiftwidth=2 tabstop=8 expandtab: + * :indentSize=2:tabSize=8:noTabs=true: + */ diff --git a/epan/dissectors/packet-s1ap.c b/epan/dissectors/packet-s1ap.c index 7f3afc36c1..d8c11c0037 100644 --- a/epan/dissectors/packet-s1ap.c +++ b/epan/dissectors/packet-s1ap.c @@ -46,6 +46,7 @@ #include "packet-cell_broadcast.h" #include "packet-gsm_a_common.h" #include "packet-ntp.h" +#include "packet-ngap.h" #define PNAME "S1 Application Protocol" #define PSNAME "S1AP" @@ -453,15 +454,36 @@ typedef enum _ProtocolIE_ID_enum { id_SecondaryRATDataUsageRequest = 268, id_NRUESecurityCapabilities = 269, id_UnlicensedSpectrumRestriction = 270, - id_CE_ModeBRestricted = 271 + id_CE_ModeBRestricted = 271, + id_LTE_M_Indication = 272, + id_DownlinkPacketLossRate = 273, + id_UplinkPacketLossRate = 274, + id_UECapabilityInfoRequest = 275, + id_serviceType = 276, + id_AerialUEsubscriptionInformation = 277, + id_Unknown_278 = 278, + id_Unknown_279 = 279, + id_EndIndication = 280, + id_EDT_Session = 281, + id_CNTypeRestrictions = 282 } ProtocolIE_ID_enum; +typedef enum _HandoverType_enum { + intralte = 0, + ltetoutran = 1, + ltetogeran = 2, + utrantolte = 3, + gerantolte = 4, + ltetonr = 5, + nrtolte = 6 +} HandoverType_enum; + typedef enum _RAT_Type_enum { nbiot = 0 } RAT_Type_enum; /*--- End of included file: packet-s1ap-val.h ---*/ -#line 61 "./asn1/s1ap/packet-s1ap-template.c" +#line 62 "./asn1/s1ap/packet-s1ap-template.c" /* Initialize the protocol and registered fields */ static int proto_s1ap = -1; @@ -509,12 +531,14 @@ 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_QoE_Measurement_for_streaming_service = -1; +static int hf_s1ap_UE_Application_Layer_Measurement_Capability_QoE_Measurement_for_MTSI_service = -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" static int hf_s1ap_Additional_GUTI_PDU = -1; /* Additional_GUTI */ +static int hf_s1ap_AerialUEsubscriptionInformation_PDU = -1; /* AerialUEsubscriptionInformation */ static int hf_s1ap_AssistanceDataForPaging_PDU = -1; /* AssistanceDataForPaging */ static int hf_s1ap_Bearers_SubjectToStatusTransfer_Item_PDU = -1; /* Bearers_SubjectToStatusTransfer_Item */ static int hf_s1ap_BearerType_PDU = -1; /* BearerType */ @@ -532,6 +556,7 @@ static int hf_s1ap_Cdma2000HORequiredIndication_PDU = -1; /* Cdma2000HORequired static int hf_s1ap_Cdma2000OneXSRVCCInfo_PDU = -1; /* Cdma2000OneXSRVCCInfo */ static int hf_s1ap_Cdma2000OneXRAND_PDU = -1; /* Cdma2000OneXRAND */ static int hf_s1ap_CNDomain_PDU = -1; /* CNDomain */ +static int hf_s1ap_CNTypeRestrictions_PDU = -1; /* CNTypeRestrictions */ static int hf_s1ap_ConcurrentWarningMessageIndicator_PDU = -1; /* ConcurrentWarningMessageIndicator */ static int hf_s1ap_Correlation_ID_PDU = -1; /* Correlation_ID */ static int hf_s1ap_CSFallbackIndicator_PDU = -1; /* CSFallbackIndicator */ @@ -551,12 +576,14 @@ static int hf_s1ap_Direct_Forwarding_Path_Availability_PDU = -1; /* Direct_Forw static int hf_s1ap_Data_Forwarding_Not_Possible_PDU = -1; /* Data_Forwarding_Not_Possible */ static int hf_s1ap_DLNASPDUDeliveryAckRequest_PDU = -1; /* DLNASPDUDeliveryAckRequest */ static int hf_s1ap_PWSfailedECGIList_PDU = -1; /* PWSfailedECGIList */ +static int hf_s1ap_EDT_Session_PDU = -1; /* EDT_Session */ static int hf_s1ap_EmergencyAreaIDListForRestart_PDU = -1; /* EmergencyAreaIDListForRestart */ static int hf_s1ap_s1ap_Global_ENB_ID_PDU = -1; /* Global_ENB_ID */ static int hf_s1ap_GUMMEIList_PDU = -1; /* GUMMEIList */ static int hf_s1ap_s1ap_ENB_StatusTransfer_TransparentContainer_PDU = -1; /* ENB_StatusTransfer_TransparentContainer */ static int hf_s1ap_ENB_UE_S1AP_ID_PDU = -1; /* ENB_UE_S1AP_ID */ static int hf_s1ap_ENBname_PDU = -1; /* ENBname */ +static int hf_s1ap_EndIndication_PDU = -1; /* EndIndication */ static int hf_s1ap_EnhancedCoverageRestricted_PDU = -1; /* EnhancedCoverageRestricted */ static int hf_s1ap_CE_ModeBRestricted_PDU = -1; /* CE_ModeBRestricted */ static int hf_s1ap_E_RABInformationListItem_PDU = -1; /* E_RABInformationListItem */ @@ -583,6 +610,7 @@ static int hf_s1ap_LAI_PDU = -1; /* LAI */ static int hf_s1ap_LPPa_PDU_PDU = -1; /* LPPa_PDU */ static int hf_s1ap_LHN_ID_PDU = -1; /* LHN_ID */ static int hf_s1ap_LoggedMBSFNMDT_PDU = -1; /* LoggedMBSFNMDT */ +static int hf_s1ap_LTE_M_Indication_PDU = -1; /* LTE_M_Indication */ static int hf_s1ap_M3Configuration_PDU = -1; /* M3Configuration */ static int hf_s1ap_M4Configuration_PDU = -1; /* M4Configuration */ static int hf_s1ap_M5Configuration_PDU = -1; /* M5Configuration */ @@ -613,6 +641,7 @@ 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_Packet_LossRate_PDU = -1; /* Packet_LossRate */ static int hf_s1ap_Paging_eDRXInformation_PDU = -1; /* Paging_eDRXInformation */ static int hf_s1ap_PagingDRX_PDU = -1; /* PagingDRX */ static int hf_s1ap_PagingPriority_PDU = -1; /* PagingPriority */ @@ -637,6 +666,7 @@ static int hf_s1ap_SecondaryRATDataUsageRequest_PDU = -1; /* SecondaryRATDataUs static int hf_s1ap_SecondaryRATDataUsageReportList_PDU = -1; /* SecondaryRATDataUsageReportList */ static int hf_s1ap_SecondaryRATDataUsageReportItem_PDU = -1; /* SecondaryRATDataUsageReportItem */ static int hf_s1ap_SerialNumber_PDU = -1; /* SerialNumber */ +static int hf_s1ap_ServiceType_PDU = -1; /* ServiceType */ static int hf_s1ap_SONInformationReport_PDU = -1; /* SONInformationReport */ static int hf_s1ap_SONConfigurationTransfer_PDU = -1; /* SONConfigurationTransfer */ static int hf_s1ap_SynchronisationInformation_PDU = -1; /* SynchronisationInformation */ @@ -666,6 +696,7 @@ 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_UECapabilityInfoRequest_PDU = -1; /* UECapabilityInfoRequest */ 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 */ @@ -902,6 +933,9 @@ static int hf_s1ap_pLMNidentity = -1; /* PLMNidentity */ static int hf_s1ap_lAC = -1; /* LAC */ static int hf_s1ap_cI = -1; /* CI */ static int hf_s1ap_rAC = -1; /* RAC */ +static int hf_s1ap_CNTypeRestrictions_item = -1; /* CNTypeRestrictions_Item */ +static int hf_s1ap_pLMN_Identity = -1; /* PLMNidentity */ +static int hf_s1ap_cNType = -1; /* CNType */ static int hf_s1ap_CSG_IdList_item = -1; /* CSG_IdList_Item */ static int hf_s1ap_cSG_Id = -1; /* CSG_Id */ static int hf_s1ap_pDCP_SN = -1; /* PDCP_SN */ @@ -961,8 +995,8 @@ static int hf_s1ap_expectedHOInterval = -1; /* ExpectedHOInterval */ static int hf_s1ap_expectedActivityPeriod = -1; /* ExpectedActivityPeriod */ static int hf_s1ap_expectedIdlePeriod = -1; /* ExpectedIdlePeriod */ static int hf_s1ap_sourceofUEActivityBehaviourInformation = -1; /* SourceOfUEActivityBehaviourInformation */ +static int hf_s1ap_fiveGSTAC = -1; /* FiveGSTAC */ static int hf_s1ap_ForbiddenTAs_item = -1; /* ForbiddenTAs_Item */ -static int hf_s1ap_pLMN_Identity = -1; /* PLMNidentity */ static int hf_s1ap_forbiddenTACs = -1; /* ForbiddenTACs */ static int hf_s1ap_ForbiddenTACs_item = -1; /* TAC */ static int hf_s1ap_ForbiddenLAs_item = -1; /* ForbiddenLAs_Item */ @@ -1104,8 +1138,17 @@ 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_targetgNgRanNode_ID = -1; /* TargetNgRanNode_ID */ static int hf_s1ap_rNC_ID = -1; /* RNC_ID */ static int hf_s1ap_extendedRNC_ID = -1; /* ExtendedRNC_ID */ +static int hf_s1ap_global_RAN_NODE_ID = -1; /* Global_RAN_NODE_ID */ +static int hf_s1ap_selected_TAI_01 = -1; /* FiveGSTAI */ +static int hf_s1ap_gNB = -1; /* GNB */ +static int hf_s1ap_ng_eNB = -1; /* NG_eNB */ +static int hf_s1ap_global_gNB_ID = -1; /* Global_GNB_ID */ +static int hf_s1ap_gNB_ID = -1; /* GNB_Identity */ +static int hf_s1ap_gNB_ID_01 = -1; /* GNB_ID */ +static int hf_s1ap_global_ng_eNB_ID = -1; /* Global_ENB_ID */ static int hf_s1ap_measurementThreshold = -1; /* MeasurementThresholdA2 */ static int hf_s1ap_transportLayerAddress = -1; /* TransportLayerAddress */ static int hf_s1ap_uL_GTP_TEID = -1; /* GTP_TEID */ @@ -1247,7 +1290,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 111 "./asn1/s1ap/packet-s1ap-template.c" +#line 113 "./asn1/s1ap/packet-s1ap-template.c" /* Initialize the subtree pointers */ static int ett_s1ap = -1; @@ -1322,6 +1365,8 @@ static gint ett_s1ap_CellIdListforQMC = -1; static gint ett_s1ap_Cdma2000OneXSRVCCInfo = -1; static gint ett_s1ap_CellType = -1; static gint ett_s1ap_CGI = -1; +static gint ett_s1ap_CNTypeRestrictions = -1; +static gint ett_s1ap_CNTypeRestrictions_Item = -1; static gint ett_s1ap_CSG_IdList = -1; static gint ett_s1ap_CSG_IdList_Item = -1; static gint ett_s1ap_COUNTvalue = -1; @@ -1361,6 +1406,7 @@ 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; +static gint ett_s1ap_FiveGSTAI = -1; static gint ett_s1ap_ForbiddenTAs = -1; static gint ett_s1ap_ForbiddenTAs_Item = -1; static gint ett_s1ap_ForbiddenTACs = -1; @@ -1450,6 +1496,12 @@ static gint ett_s1ap_CompletedCellinTAI_Item = -1; static gint ett_s1ap_TargetID = -1; static gint ett_s1ap_TargeteNB_ID = -1; static gint ett_s1ap_TargetRNC_ID = -1; +static gint ett_s1ap_TargetNgRanNode_ID = -1; +static gint ett_s1ap_Global_RAN_NODE_ID = -1; +static gint ett_s1ap_GNB = -1; +static gint ett_s1ap_Global_GNB_ID = -1; +static gint ett_s1ap_GNB_Identity = -1; +static gint ett_s1ap_NG_eNB = -1; static gint ett_s1ap_TargeteNB_ToSourceeNB_TransparentContainer = -1; static gint ett_s1ap_M1ThresholdEventA2 = -1; static gint ett_s1ap_TransportInformation = -1; @@ -1639,7 +1691,7 @@ static gint ett_s1ap_EHRPDCompositeAvailableCapacity = -1; static gint ett_s1ap_EHRPDMultiSectorLoadReportingResponseItem = -1; /*--- End of included file: packet-s1ap-ett.c ---*/ -#line 146 "./asn1/s1ap/packet-s1ap-template.c" +#line 148 "./asn1/s1ap/packet-s1ap-template.c" static expert_field ei_s1ap_number_pages_le15 = EI_INIT; @@ -1808,6 +1860,12 @@ static const true_false_string s1ap_tfs_activate_do_not_activate = { "Do not activate" }; +static void +s1ap_Packet_LossRate_fmt(gchar *s, guint32 v) +{ + g_snprintf(s, ITEM_LABEL_LENGTH, "%.1f %% (%u)", (float)v/10, v); +} + static struct s1ap_private_data* s1ap_get_private_data(packet_info *pinfo) { @@ -1877,7 +1935,7 @@ dissect_s1ap_INTEGER_0_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_T_global(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 202 "./asn1/s1ap/s1ap.cnf" +#line 205 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); offset = dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &s1ap_data->obj_id); @@ -1902,7 +1960,7 @@ static const per_choice_t PrivateIE_ID_choice[] = { static int dissect_s1ap_PrivateIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 198 "./asn1/s1ap/s1ap.cnf" +#line 201 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); s1ap_data->obj_id = NULL; @@ -1987,7 +2045,7 @@ static value_string_ext s1ap_ProcedureCode_vals_ext = VALUE_STRING_EXT_INIT(s1ap static int dissect_s1ap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 116 "./asn1/s1ap/s1ap.cnf" +#line 119 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 255U, &s1ap_data->procedure_code, FALSE); @@ -2001,7 +2059,7 @@ dissect_s1ap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ static int dissect_s1ap_ProtocolExtensionID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 110 "./asn1/s1ap/s1ap.cnf" +#line 113 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 65535U, &s1ap_data->protocol_extension_id, FALSE); @@ -2286,6 +2344,17 @@ static const value_string s1ap_ProtocolIE_ID_vals[] = { { id_NRUESecurityCapabilities, "id-NRUESecurityCapabilities" }, { id_UnlicensedSpectrumRestriction, "id-UnlicensedSpectrumRestriction" }, { id_CE_ModeBRestricted, "id-CE-ModeBRestricted" }, + { id_LTE_M_Indication, "id-LTE-M-Indication" }, + { id_DownlinkPacketLossRate, "id-DownlinkPacketLossRate" }, + { id_UplinkPacketLossRate, "id-UplinkPacketLossRate" }, + { id_UECapabilityInfoRequest, "id-UECapabilityInfoRequest" }, + { id_serviceType, "id-serviceType" }, + { id_AerialUEsubscriptionInformation, "id-AerialUEsubscriptionInformation" }, + { id_Unknown_278, "id-Unknown-278" }, + { id_Unknown_279, "id-Unknown-279" }, + { id_EndIndication, "id-EndIndication" }, + { id_EDT_Session, "id-EDT-Session" }, + { id_CNTypeRestrictions, "id-CNTypeRestrictions" }, { 0, NULL } }; @@ -2294,7 +2363,7 @@ static value_string_ext s1ap_ProtocolIE_ID_vals_ext = VALUE_STRING_EXT_INIT(s1ap static int dissect_s1ap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 92 "./asn1/s1ap/s1ap.cnf" +#line 95 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 65535U, &s1ap_data->protocol_ie_id, FALSE); @@ -2302,7 +2371,7 @@ dissect_s1ap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ -#line 96 "./asn1/s1ap/s1ap.cnf" +#line 99 "./asn1/s1ap/s1ap.cnf" if (tree) { proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(s1ap_data->protocol_ie_id, &s1ap_ProtocolIE_ID_vals_ext, "unknown (%d)")); @@ -2383,7 +2452,7 @@ static const per_sequence_t ProtocolIE_ContainerList_sequence_of[1] = { static int dissect_s1ap_ProtocolIE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 143 "./asn1/s1ap/s1ap.cnf" +#line 146 "./asn1/s1ap/s1ap.cnf" static const asn1_par_def_t ProtocolIE_ContainerList_pars[] = { { "lowerBound", ASN1_PAR_INTEGER }, { "upperBound", ASN1_PAR_INTEGER }, @@ -2441,7 +2510,7 @@ dissect_s1ap_ProtocolExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ static int dissect_s1ap_T_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 206 "./asn1/s1ap/s1ap.cnf" +#line 209 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); if (s1ap_data->obj_id) { offset = call_per_oid_callback(s1ap_data->obj_id, tvb, actx->pinfo, tree, offset, actx, hf_index); @@ -2492,7 +2561,7 @@ dissect_s1ap_PrivateIE_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int dissect_s1ap_PLMNidentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 219 "./asn1/s1ap/s1ap.cnf" +#line 222 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); @@ -2519,7 +2588,7 @@ dissect_s1ap_PLMNidentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U static int dissect_s1ap_MME_Group_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 793 "./asn1/s1ap/s1ap.cnf" +#line 811 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 2, 2, FALSE, ¶meter_tvb); @@ -2537,7 +2606,7 @@ dissect_s1ap_MME_Group_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U static int dissect_s1ap_MME_Code(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 784 "./asn1/s1ap/s1ap.cnf" +#line 802 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 1, 1, FALSE, ¶meter_tvb); @@ -2572,7 +2641,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 1075 "./asn1/s1ap/s1ap.cnf" +#line 1094 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 4, 4, FALSE, ¶meter_tvb); @@ -2603,10 +2672,26 @@ dissect_s1ap_Additional_GUTI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } +static const value_string s1ap_AerialUEsubscriptionInformation_vals[] = { + { 0, "allowed" }, + { 1, "not-allowed" }, + { 0, NULL } +}; + + +static int +dissect_s1ap_AerialUEsubscriptionInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + static int dissect_s1ap_CellIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2129 "./asn1/s1ap/s1ap.cnf" +#line 2170 "./asn1/s1ap/s1ap.cnf" tvbuff_t *cell_id_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, -1, 28, 28, FALSE, &cell_id_tvb, NULL); @@ -2669,7 +2754,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 1042 "./asn1/s1ap/s1ap.cnf" +#line 1061 "./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, @@ -2737,7 +2822,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 1141 "./asn1/s1ap/s1ap.cnf" +#line 1160 "./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); @@ -3037,7 +3122,7 @@ dissect_s1ap_AllocationAndRetentionPriority(tvbuff_t *tvb _U_, int offset _U_, a static int dissect_s1ap_CELevel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 680 "./asn1/s1ap/s1ap.cnf" +#line 698 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -3748,7 +3833,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 2100 "./asn1/s1ap/s1ap.cnf" +#line 2141 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 36, &value, TRUE, 4, NULL); @@ -3770,7 +3855,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 2105 "./asn1/s1ap/s1ap.cnf" +#line 2146 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 2, &value, TRUE, 0, NULL); @@ -3795,7 +3880,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 2110 "./asn1/s1ap/s1ap.cnf" +#line 2151 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 4, &value, TRUE, 1, NULL); @@ -3822,7 +3907,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 2115 "./asn1/s1ap/s1ap.cnf" +#line 2156 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 7, &value, TRUE, 0, NULL); @@ -3848,7 +3933,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 2120 "./asn1/s1ap/s1ap.cnf" +#line 2161 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 6, &value, TRUE, 0, NULL); @@ -3922,7 +4007,7 @@ dissect_s1ap_CE_mode_B_SupportIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ static int dissect_s1ap_Cdma2000PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 620 "./asn1/s1ap/s1ap.cnf" +#line 638 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -3964,7 +4049,7 @@ dissect_s1ap_Cdma2000RATType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_Cdma2000SectorID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 635 "./asn1/s1ap/s1ap.cnf" +#line 653 "./asn1/s1ap/s1ap.cnf" /* 9.2.1.25 * This IE is set to CDMA2000 Reference Cell ID * corresponding to the HRPD/1xRTT sector under @@ -4114,7 +4199,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 1057 "./asn1/s1ap/s1ap.cnf" +#line 1076 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 2, 2, FALSE, ¶meter_tvb); @@ -4142,7 +4227,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 1066 "./asn1/s1ap/s1ap.cnf" +#line 1085 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 1, 1, FALSE, ¶meter_tvb); @@ -4191,6 +4276,51 @@ dissect_s1ap_CNDomain(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p } +static const value_string s1ap_CNType_vals[] = { + { 0, "fiveGCForbiddden" }, + { 0, NULL } +}; + + +static int +dissect_s1ap_CNType(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 CNTypeRestrictions_Item_sequence[] = { + { &hf_s1ap_pLMN_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_PLMNidentity }, + { &hf_s1ap_cNType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_CNType }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_CNTypeRestrictions_Item(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_CNTypeRestrictions_Item, CNTypeRestrictions_Item_sequence); + + return offset; +} + + +static const per_sequence_t CNTypeRestrictions_sequence_of[1] = { + { &hf_s1ap_CNTypeRestrictions_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_CNTypeRestrictions_Item }, +}; + +static int +dissect_s1ap_CNTypeRestrictions(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_CNTypeRestrictions, CNTypeRestrictions_sequence_of, + 1, maxnoofEPLMNsPlusOne, FALSE); + + return offset; +} + + static const value_string s1ap_ConcurrentWarningMessageIndicator_vals[] = { { 0, "true" }, { 0, NULL } @@ -4458,7 +4588,7 @@ dissect_s1ap_CriticalityDiagnostics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ static int dissect_s1ap_DataCodingScheme(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 881 "./asn1/s1ap/s1ap.cnf" +#line 899 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 8, 8, FALSE, ¶meter_tvb, NULL); @@ -4650,6 +4780,21 @@ dissect_s1ap_PWSfailedECGIList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac } +static const value_string s1ap_EDT_Session_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_s1ap_EDT_Session(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 EmergencyAreaIDList_sequence_of[1] = { { &hf_s1ap_EmergencyAreaIDList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_EmergencyAreaID }, }; @@ -4839,7 +4984,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 1135 "./asn1/s1ap/s1ap.cnf" +#line 1154 "./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, @@ -4856,7 +5001,7 @@ dissect_s1ap_ENB_UE_S1AP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_ENBname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 239 "./asn1/s1ap/s1ap.cnf" +#line 242 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; int length; int p_offset; @@ -4890,7 +5035,7 @@ dissect_s1ap_ENBname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr static int dissect_s1ap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 306 "./asn1/s1ap/s1ap.cnf" +#line 309 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; proto_tree *subtree; gint tvb_len; @@ -4940,7 +5085,7 @@ dissect_s1ap_ENBX2TLAs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, static int dissect_s1ap_EncryptionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 800 "./asn1/s1ap/s1ap.cnf" +#line 818 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 16, 16, TRUE, ¶meter_tvb, NULL); @@ -4963,6 +5108,22 @@ dissect_s1ap_EncryptionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } +static const value_string s1ap_EndIndication_vals[] = { + { 0, "no-further-data" }, + { 1, "further-data-exists" }, + { 0, NULL } +}; + + +static int +dissect_s1ap_EndIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + static const value_string s1ap_EnhancedCoverageRestricted_vals[] = { { 0, "restricted" }, { 0, NULL } @@ -5147,7 +5308,7 @@ dissect_s1ap_E_RABUsageReportList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t 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 970 "./asn1/s1ap/s1ap.cnf" +#line 988 "./asn1/s1ap/s1ap.cnf" tvbuff_t *timestamp_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 4, 4, FALSE, ×tamp_tvb); @@ -5155,7 +5316,7 @@ dissect_s1ap_T_startTimestamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act -#line 974 "./asn1/s1ap/s1ap.cnf" +#line 992 "./asn1/s1ap/s1ap.cnf" if (timestamp_tvb) { proto_item_append_text(actx->created_item, " (%s)", tvb_ntp_fmt_ts_sec(timestamp_tvb, 0)); } @@ -5168,7 +5329,7 @@ dissect_s1ap_T_startTimestamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act 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 979 "./asn1/s1ap/s1ap.cnf" +#line 997 "./asn1/s1ap/s1ap.cnf" tvbuff_t *timestamp_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 4, 4, FALSE, ×tamp_tvb); @@ -5176,7 +5337,7 @@ dissect_s1ap_T_endTimestamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx -#line 983 "./asn1/s1ap/s1ap.cnf" +#line 1001 "./asn1/s1ap/s1ap.cnf" if (timestamp_tvb) { proto_item_append_text(actx->created_item, " (%s)", tvb_ntp_fmt_ts_sec(timestamp_tvb, 0)); } @@ -5354,6 +5515,32 @@ dissect_s1ap_Extended_UEIdentityIndexValue(tvbuff_t *tvb _U_, int offset _U_, as } + +static int +dissect_s1ap_FiveGSTAC(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, + 3, 3, FALSE, NULL); + + return offset; +} + + +static const per_sequence_t FiveGSTAI_sequence[] = { + { &hf_s1ap_pLMNidentity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_PLMNidentity }, + { &hf_s1ap_fiveGSTAC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_FiveGSTAC }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_FiveGSTAI(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_FiveGSTAI, FiveGSTAI_sequence); + + return offset; +} + + static const value_string s1ap_ForbiddenInterRATs_vals[] = { { 0, "all" }, { 1, "geran" }, @@ -5538,21 +5725,23 @@ dissect_s1ap_HandoverRestrictionList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx static const value_string s1ap_HandoverType_vals[] = { - { 0, "intralte" }, - { 1, "ltetoutran" }, - { 2, "ltetogeran" }, - { 3, "utrantolte" }, - { 4, "gerantolte" }, + { intralte, "intralte" }, + { ltetoutran, "ltetoutran" }, + { ltetogeran, "ltetogeran" }, + { utrantolte, "utrantolte" }, + { gerantolte, "gerantolte" }, + { ltetonr, "ltetonr" }, + { nrtolte, "nrtolte" }, { 0, NULL } }; static int dissect_s1ap_HandoverType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 356 "./asn1/s1ap/s1ap.cnf" +#line 359 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 5, &s1ap_data->handover_type_value, TRUE, 0, NULL); + 5, &s1ap_data->handover_type_value, TRUE, 2, NULL); @@ -5574,7 +5763,7 @@ dissect_s1ap_Masked_IMEISV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ static int dissect_s1ap_MeasurementsToActivate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 923 "./asn1/s1ap/s1ap.cnf" +#line 941 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 8, 8, FALSE, ¶meter_tvb, NULL); @@ -5761,7 +5950,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 1082 "./asn1/s1ap/s1ap.cnf" +#line 1101 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 3, 8, FALSE, ¶meter_tvb); @@ -5825,7 +6014,7 @@ dissect_s1ap_InformationOnRecommendedCellsAndENBsForPaging(tvbuff_t *tvb _U_, in static int dissect_s1ap_IntegrityProtectionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 815 "./asn1/s1ap/s1ap.cnf" +#line 833 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 16, 16, TRUE, ¶meter_tvb, NULL); @@ -5851,7 +6040,7 @@ dissect_s1ap_IntegrityProtectionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, as static int dissect_s1ap_InterfacesToTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 764 "./asn1/s1ap/s1ap.cnf" +#line 782 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 8, 8, FALSE, ¶meter_tvb, NULL); @@ -5919,7 +6108,7 @@ dissect_s1ap_LastVisitedEUTRANCellInformation(tvbuff_t *tvb _U_, int offset _U_, static int dissect_s1ap_LastVisitedUTRANCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 836 "./asn1/s1ap/s1ap.cnf" +#line 854 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -5986,7 +6175,7 @@ dissect_s1ap_LastVisitedCell_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int dissect_s1ap_LPPa_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 297 "./asn1/s1ap/s1ap.cnf" +#line 300 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; @@ -6006,7 +6195,7 @@ dissect_s1ap_LPPa_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p static int dissect_s1ap_LHN_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 958 "./asn1/s1ap/s1ap.cnf" +#line 976 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 32, 256, FALSE, ¶meter_tvb); @@ -6194,6 +6383,21 @@ dissect_s1ap_LoggedMBSFNMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } +static const value_string s1ap_LTE_M_Indication_vals[] = { + { 0, "lte-m" }, + { 0, NULL } +}; + + +static int +dissect_s1ap_LTE_M_Indication(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_M3period_vals[] = { { 0, "ms100" }, { 1, "ms1000" }, @@ -6411,7 +6615,7 @@ dissect_s1ap_MDT_Activation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_MDT_Location_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 942 "./asn1/s1ap/s1ap.cnf" +#line 960 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 8, 8, FALSE, ¶meter_tvb, NULL); @@ -6531,7 +6735,7 @@ dissect_s1ap_PrivacyIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act static int dissect_s1ap_MessageIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 851 "./asn1/s1ap/s1ap.cnf" +#line 869 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, -1, 16, 16, FALSE, ¶meter_tvb, NULL); @@ -6559,7 +6763,7 @@ dissect_s1ap_MobilityInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int dissect_s1ap_MMEname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 262 "./asn1/s1ap/s1ap.cnf" +#line 265 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; int length; int p_offset; @@ -6640,7 +6844,7 @@ dissect_s1ap_MME_UE_S1AP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_MSClassmark2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 901 "./asn1/s1ap/s1ap.cnf" +#line 919 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb); @@ -6659,7 +6863,7 @@ dissect_s1ap_MSClassmark2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U static int dissect_s1ap_MSClassmark3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 909 "./asn1/s1ap/s1ap.cnf" +#line 927 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb); @@ -6729,7 +6933,7 @@ dissect_s1ap_MutingPatternInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ct static int dissect_s1ap_NAS_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 288 "./asn1/s1ap/s1ap.cnf" +#line 291 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; @@ -6749,7 +6953,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 1090 "./asn1/s1ap/s1ap.cnf" +#line 1109 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb); @@ -6768,7 +6972,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 1098 "./asn1/s1ap/s1ap.cnf" +#line 1117 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb); @@ -6889,7 +7093,7 @@ 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 997 "./asn1/s1ap/s1ap.cnf" +#line 1015 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 16, 16, TRUE, ¶meter_tvb, NULL); @@ -6915,7 +7119,7 @@ dissect_s1ap_NRencryptionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ 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 1012 "./asn1/s1ap/s1ap.cnf" +#line 1030 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 16, 16, TRUE, ¶meter_tvb, NULL); @@ -7020,6 +7224,16 @@ dissect_s1ap_OverloadResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act } + +static int +dissect_s1ap_Packet_LossRate(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, 1000U, NULL, FALSE); + + return offset; +} + + static const value_string s1ap_Paging_eDRX_Cycle_vals[] = { { 0, "hfhalf" }, { 1, "hf1" }, @@ -7137,7 +7351,7 @@ dissect_s1ap_PagingPriority(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_Port_Number(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 337 "./asn1/s1ap/s1ap.cnf" +#line 340 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 2, 2, FALSE, ¶meter_tvb); @@ -7315,7 +7529,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 1120 "./asn1/s1ap/s1ap.cnf" +#line 1139 "./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, @@ -7372,7 +7586,7 @@ dissect_s1ap_RequestType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ static int dissect_s1ap_RIMInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 604 "./asn1/s1ap/s1ap.cnf" +#line 622 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -7487,7 +7701,7 @@ dissect_s1ap_RepetitionPeriod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act static int dissect_s1ap_UE_RLF_Report_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 699 "./asn1/s1ap/s1ap.cnf" +#line 717 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -7510,7 +7724,7 @@ dissect_s1ap_UE_RLF_Report_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx static int dissect_s1ap_UE_RLF_Report_Container_for_extended_bands(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 713 "./asn1/s1ap/s1ap.cnf" +#line 731 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -7549,7 +7763,7 @@ dissect_s1ap_RLFReportInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int dissect_s1ap_RRC_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 498 "./asn1/s1ap/s1ap.cnf" +#line 516 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; @@ -7737,7 +7951,7 @@ dissect_s1ap_SecondaryRATDataUsageReportItem(tvbuff_t *tvb _U_, int offset _U_, 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_) { -#line 858 "./asn1/s1ap/s1ap.cnf" +#line 876 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 16, 16, FALSE, ¶meter_tvb, NULL); @@ -7755,6 +7969,22 @@ dissect_s1ap_SerialNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U } +static const value_string s1ap_ServiceType_vals[] = { + { 0, "qMC-for-streaming-service" }, + { 1, "qMC-for-MTSI-service" }, + { 0, NULL } +}; + + +static int +dissect_s1ap_ServiceType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + static const value_string s1ap_SONInformationRequest_vals[] = { { 0, "x2TNL-Configuration-Info" }, { 1, "time-Synchronisation-Info" }, @@ -7935,7 +8165,7 @@ dissect_s1ap_SynchronisationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ static int dissect_s1ap_Source_ToTarget_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 381 "./asn1/s1ap/s1ap.cnf" +#line 384 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -7958,36 +8188,44 @@ dissect_s1ap_Source_ToTarget_TransparentContainer(tvbuff_t *tvb _U_, int offset utrantolte, gerantolte, ... + ltetonr, + nrtolte } */ - case 0: + case intralte: /* intralte Intra E-UTRAN handover Source eNB to Target eNB Transparent Container 36.413 */ dissect_SourceeNB_ToTargeteNB_TransparentContainer_PDU(parameter_tvb, actx->pinfo, subtree, NULL); break; - case 1: + case ltetoutran: /* ltetoutran Source RNC to Target RNC Transparent Container 25.413 */ dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU(parameter_tvb, actx->pinfo, subtree, NULL); break; - case 2: + case ltetogeran: /* ltetogeran Source BSS to Target BSS Transparent Container 48.018 */ de_bssgp_source_BSS_to_target_BSS_transp_cont(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(parameter_tvb), NULL, 0); break; - case 3: + case utrantolte: /* utrantolte */ break; - case 4: + case gerantolte: /* gerantolte */ break; + case ltetonr: + /* ltetonr */ + dissect_ngap_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + break; + case nrtolte: + /* nrtolte */ + break; default: - DISSECTOR_ASSERT_NOT_REACHED(); break; } /* Enable writing of the column again */ @@ -8090,6 +8328,7 @@ dissect_s1ap_SourceeNB_ToTargeteNB_TransparentContainer(tvbuff_t *tvb _U_, int o + static const per_sequence_t ServedPLMNs_sequence_of[1] = { { &hf_s1ap_ServedPLMNs_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_PLMNidentity }, }; @@ -8172,7 +8411,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 1106 "./asn1/s1ap/s1ap.cnf" +#line 1125 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); if (!PINFO_FD_VISITED(actx->pinfo) && @@ -8187,7 +8426,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 1117 "./asn1/s1ap/s1ap.cnf" +#line 1136 "./asn1/s1ap/s1ap.cnf" s1ap_data->supported_ta = NULL; @@ -8271,10 +8510,125 @@ dissect_s1ap_TAIListforWarning(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac } + +static int +dissect_s1ap_GNB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 22, 32, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string s1ap_GNB_Identity_vals[] = { + { 0, "gNB-ID" }, + { 0, NULL } +}; + +static const per_choice_t GNB_Identity_choice[] = { + { 0, &hf_s1ap_gNB_ID_01 , ASN1_EXTENSION_ROOT , dissect_s1ap_GNB_ID }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_s1ap_GNB_Identity(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_GNB_Identity, GNB_Identity_choice, + NULL); + + return offset; +} + + +static const per_sequence_t Global_GNB_ID_sequence[] = { + { &hf_s1ap_pLMN_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_PLMNidentity }, + { &hf_s1ap_gNB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_GNB_Identity }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_Global_GNB_ID(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_Global_GNB_ID, Global_GNB_ID_sequence); + + return offset; +} + + +static const per_sequence_t GNB_sequence[] = { + { &hf_s1ap_global_gNB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_Global_GNB_ID }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_GNB(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_GNB, GNB_sequence); + + return offset; +} + + +static const per_sequence_t NG_eNB_sequence[] = { + { &hf_s1ap_global_ng_eNB_ID, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_Global_ENB_ID }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_NG_eNB(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_NG_eNB, NG_eNB_sequence); + + return offset; +} + + +static const value_string s1ap_Global_RAN_NODE_ID_vals[] = { + { 0, "gNB" }, + { 1, "ng-eNB" }, + { 0, NULL } +}; + +static const per_choice_t Global_RAN_NODE_ID_choice[] = { + { 0, &hf_s1ap_gNB , ASN1_EXTENSION_ROOT , dissect_s1ap_GNB }, + { 1, &hf_s1ap_ng_eNB , ASN1_EXTENSION_ROOT , dissect_s1ap_NG_eNB }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_s1ap_Global_RAN_NODE_ID(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_Global_RAN_NODE_ID, Global_RAN_NODE_ID_choice, + NULL); + + return offset; +} + + +static const per_sequence_t TargetNgRanNode_ID_sequence[] = { + { &hf_s1ap_global_RAN_NODE_ID, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_Global_RAN_NODE_ID }, + { &hf_s1ap_selected_TAI_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_FiveGSTAI }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_TargetNgRanNode_ID(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_TargetNgRanNode_ID, TargetNgRanNode_ID_sequence); + + return offset; +} + + static const value_string s1ap_TargetID_vals[] = { { 0, "targeteNB-ID" }, { 1, "targetRNC-ID" }, { 2, "cGI" }, + { 3, "targetgNgRanNode-ID" }, { 0, NULL } }; @@ -8282,6 +8636,7 @@ static const per_choice_t TargetID_choice[] = { { 0, &hf_s1ap_targeteNB_ID , ASN1_EXTENSION_ROOT , dissect_s1ap_TargeteNB_ID }, { 1, &hf_s1ap_targetRNC_ID , ASN1_EXTENSION_ROOT , dissect_s1ap_TargetRNC_ID }, { 2, &hf_s1ap_cGI , ASN1_EXTENSION_ROOT , dissect_s1ap_CGI }, + { 3, &hf_s1ap_targetgNgRanNode_ID, ASN1_EXTENSION_ROOT , dissect_s1ap_TargetNgRanNode_ID }, { 0, NULL, 0, NULL } }; @@ -8313,7 +8668,7 @@ dissect_s1ap_TargeteNB_ToSourceeNB_TransparentContainer(tvbuff_t *tvb _U_, int o static int dissect_s1ap_Target_ToSource_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 439 "./asn1/s1ap/s1ap.cnf" +#line 450 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -8335,37 +8690,44 @@ dissect_s1ap_Target_ToSource_TransparentContainer(tvbuff_t *tvb _U_, int offset utrantolte, gerantolte, ... + ltetonr, + nrtolte } */ - case 0: + case intralte: /* intralte Intra E-UTRAN handover Target eNB to Source eNB Transparent Container 36.413 */ dissect_TargeteNB_ToSourceeNB_TransparentContainer_PDU(parameter_tvb, actx->pinfo, subtree, NULL); break; - case 1: + case ltetoutran: /* ltetoutran Target RNC to Source RNC Transparent Container 25.413 */ dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer_PDU(parameter_tvb, actx->pinfo, subtree, NULL); break; - case 2: + case ltetogeran: /* ltetogeran Target BSS to Source BSS Transparent Container 48.018 */ de_bssgp_target_BSS_to_source_BSS_transp_cont(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(parameter_tvb), NULL, 0); - break; - case 3: + case utrantolte: /* utrantolte */ break; - case 4: + case gerantolte: /* gerantolte */ break; + case ltetonr: + /* ltetonr */ + dissect_ngap_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + break; + case nrtolte: + /* nrtolte */ + break; default: - DISSECTOR_ASSERT_NOT_REACHED(); break; } } @@ -8378,6 +8740,7 @@ dissect_s1ap_Target_ToSource_TransparentContainer(tvbuff_t *tvb _U_, int offset + static const value_string s1ap_TimeToWait_vals[] = { { 0, "v1s" }, { 1, "v2s" }, @@ -8426,7 +8789,7 @@ dissect_s1ap_TransportInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int dissect_s1ap_E_UTRAN_Trace_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 753 "./asn1/s1ap/s1ap.cnf" +#line 771 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -8565,6 +8928,21 @@ dissect_s1ap_UEAppLayerMeasConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } +static const value_string s1ap_UECapabilityInfoRequest_vals[] = { + { 0, "requested" }, + { 0, NULL } +}; + + +static int +dissect_s1ap_UECapabilityInfoRequest(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_UE_RetentionInformation_vals[] = { { 0, "ues-retained" }, { 0, NULL } @@ -8647,7 +9025,7 @@ dissect_s1ap_UEIdentityIndexValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int dissect_s1ap_UE_HistoryInformationFromTheUE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 561 "./asn1/s1ap/s1ap.cnf" +#line 579 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -8693,7 +9071,7 @@ dissect_s1ap_UEPagingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, static int dissect_s1ap_UERadioCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 574 "./asn1/s1ap/s1ap.cnf" +#line 592 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -8726,7 +9104,7 @@ dissect_s1ap_UERadioCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static int dissect_s1ap_UERadioCapabilityForPaging(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 655 "./asn1/s1ap/s1ap.cnf" +#line 673 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -8883,14 +9261,15 @@ 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 1027 "./asn1/s1ap/s1ap.cnf" +#line 1045 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 8, 8, FALSE, ¶meter_tvb, NULL); if(parameter_tvb){ const gint *fields[] = { - &hf_s1ap_UE_Application_Layer_Measurement_Capability_QoE_Measurement, + &hf_s1ap_UE_Application_Layer_Measurement_Capability_QoE_Measurement_for_streaming_service, + &hf_s1ap_UE_Application_Layer_Measurement_Capability_QoE_Measurement_for_MTSI_service, &hf_s1ap_UE_Application_Layer_Measurement_Capability_Reserved, NULL }; @@ -8995,7 +9374,7 @@ dissect_s1ap_WarningAreaList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_WarningType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 871 "./asn1/s1ap/s1ap.cnf" +#line 889 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 2, 2, FALSE, ¶meter_tvb); @@ -9026,7 +9405,7 @@ dissect_s1ap_WarningSecurityInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int dissect_s1ap_WarningMessageContents(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 892 "./asn1/s1ap/s1ap.cnf" +#line 910 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 1, 9600, FALSE, ¶meter_tvb); @@ -9104,7 +9483,7 @@ dissect_s1ap_ENBIndirectX2TransportLayerAddresses(tvbuff_t *tvb _U_, int offset static int dissect_s1ap_E_RAB_IE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 170 "./asn1/s1ap/s1ap.cnf" +#line 173 "./asn1/s1ap/s1ap.cnf" asn1_stack_frame_push(actx, "ProtocolIE-ContainerList"); asn1_param_push_integer(actx, 1); asn1_param_push_integer(actx, maxnoofE_RABs); @@ -9124,9 +9503,9 @@ static const per_sequence_t HandoverRequired_sequence[] = { static int dissect_s1ap_HandoverRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 361 "./asn1/s1ap/s1ap.cnf" +#line 364 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); - s1ap_data->handover_type_value = 0; + s1ap_data->handover_type_value = 0xff; col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequired"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9143,9 +9522,9 @@ static const per_sequence_t HandoverCommand_sequence[] = { static int dissect_s1ap_HandoverCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 364 "./asn1/s1ap/s1ap.cnf" +#line 367 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); - s1ap_data->handover_type_value = 0; + s1ap_data->handover_type_value = 0xff; col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCommand"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9190,7 +9569,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 1914 "./asn1/s1ap/s1ap.cnf" +#line 1955 "./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, @@ -9207,9 +9586,9 @@ static const per_sequence_t HandoverRequest_sequence[] = { static int dissect_s1ap_HandoverRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 367 "./asn1/s1ap/s1ap.cnf" +#line 370 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); - s1ap_data->handover_type_value = 0; + s1ap_data->handover_type_value = 0xff; col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -9253,9 +9632,9 @@ static const per_sequence_t HandoverRequestAcknowledge_sequence[] = { static int dissect_s1ap_HandoverRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 370 "./asn1/s1ap/s1ap.cnf" +#line 373 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); - s1ap_data->handover_type_value = 0; + s1ap_data->handover_type_value = 0xff; col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequestAcknowledge"); @@ -9328,7 +9707,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 1920 "./asn1/s1ap/s1ap.cnf" +#line 1961 "./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, @@ -9345,7 +9724,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 1922 "./asn1/s1ap/s1ap.cnf" +#line 1963 "./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, @@ -9362,7 +9741,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 1924 "./asn1/s1ap/s1ap.cnf" +#line 1965 "./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, @@ -9405,7 +9784,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 1926 "./asn1/s1ap/s1ap.cnf" +#line 1967 "./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, @@ -9448,7 +9827,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 1928 "./asn1/s1ap/s1ap.cnf" +#line 1969 "./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, @@ -9465,7 +9844,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 1930 "./asn1/s1ap/s1ap.cnf" +#line 1971 "./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, @@ -9482,7 +9861,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 1932 "./asn1/s1ap/s1ap.cnf" +#line 1973 "./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, @@ -9499,7 +9878,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 1934 "./asn1/s1ap/s1ap.cnf" +#line 1975 "./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, @@ -9549,7 +9928,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 1936 "./asn1/s1ap/s1ap.cnf" +#line 1977 "./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, @@ -9597,7 +9976,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 1938 "./asn1/s1ap/s1ap.cnf" +#line 1979 "./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, @@ -9645,7 +10024,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 1940 "./asn1/s1ap/s1ap.cnf" +#line 1981 "./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, @@ -9691,7 +10070,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 1942 "./asn1/s1ap/s1ap.cnf" +#line 1983 "./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, @@ -9708,7 +10087,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 1944 "./asn1/s1ap/s1ap.cnf" +#line 1985 "./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, @@ -9754,7 +10133,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 1946 "./asn1/s1ap/s1ap.cnf" +#line 1987 "./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, @@ -9771,7 +10150,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 1948 "./asn1/s1ap/s1ap.cnf" +#line 1989 "./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, @@ -9821,7 +10200,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 1950 "./asn1/s1ap/s1ap.cnf" +#line 1991 "./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, @@ -9869,7 +10248,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 1952 "./asn1/s1ap/s1ap.cnf" +#line 1993 "./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, @@ -9886,7 +10265,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 1954 "./asn1/s1ap/s1ap.cnf" +#line 1995 "./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, @@ -9932,7 +10311,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 1956 "./asn1/s1ap/s1ap.cnf" +#line 1997 "./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, @@ -9949,7 +10328,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 1958 "./asn1/s1ap/s1ap.cnf" +#line 1999 "./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, @@ -9966,7 +10345,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 1960 "./asn1/s1ap/s1ap.cnf" +#line 2001 "./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, @@ -9983,7 +10362,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 1962 "./asn1/s1ap/s1ap.cnf" +#line 2003 "./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, @@ -10000,7 +10379,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 1964 "./asn1/s1ap/s1ap.cnf" +#line 2005 "./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, @@ -10017,7 +10396,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 1966 "./asn1/s1ap/s1ap.cnf" +#line 2007 "./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, @@ -10034,7 +10413,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 1968 "./asn1/s1ap/s1ap.cnf" +#line 2009 "./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, @@ -10051,7 +10430,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 1970 "./asn1/s1ap/s1ap.cnf" +#line 2011 "./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, @@ -10068,7 +10447,7 @@ static const per_sequence_t DownlinkNASTransport_sequence[] = { static int dissect_s1ap_DownlinkNASTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 348 "./asn1/s1ap/s1ap.cnf" +#line 351 "./asn1/s1ap/s1ap.cnf" /* Set the direction of the message */ actx->pinfo->link_dir=P2P_DIR_DL; @@ -10088,7 +10467,7 @@ static const per_sequence_t InitialUEMessage_sequence[] = { static int dissect_s1ap_InitialUEMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 344 "./asn1/s1ap/s1ap.cnf" +#line 347 "./asn1/s1ap/s1ap.cnf" /* Set the direction of the message */ actx->pinfo->link_dir=P2P_DIR_UL; @@ -10108,7 +10487,7 @@ static const per_sequence_t UplinkNASTransport_sequence[] = { static int dissect_s1ap_UplinkNASTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 352 "./asn1/s1ap/s1ap.cnf" +#line 355 "./asn1/s1ap/s1ap.cnf" /* Set the direction of the message */ actx->pinfo->link_dir=P2P_DIR_UL; @@ -10128,7 +10507,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 1978 "./asn1/s1ap/s1ap.cnf" +#line 2019 "./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, @@ -10145,7 +10524,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 1980 "./asn1/s1ap/s1ap.cnf" +#line 2021 "./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, @@ -10158,7 +10537,7 @@ dissect_s1ap_RerouteNASRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static int dissect_s1ap_S1_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 742 "./asn1/s1ap/s1ap.cnf" +#line 760 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -10184,7 +10563,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 2084 "./asn1/s1ap/s1ap.cnf" +#line 2125 "./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, @@ -10201,7 +10580,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 1982 "./asn1/s1ap/s1ap.cnf" +#line 2023 "./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, @@ -10269,7 +10648,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 1984 "./asn1/s1ap/s1ap.cnf" +#line 2025 "./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, @@ -10314,7 +10693,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 1988 "./asn1/s1ap/s1ap.cnf" +#line 2029 "./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, @@ -10331,7 +10710,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 1990 "./asn1/s1ap/s1ap.cnf" +#line 2031 "./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, @@ -10348,7 +10727,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 1992 "./asn1/s1ap/s1ap.cnf" +#line 2033 "./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, @@ -10365,7 +10744,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 1994 "./asn1/s1ap/s1ap.cnf" +#line 2035 "./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, @@ -10382,7 +10761,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 1996 "./asn1/s1ap/s1ap.cnf" +#line 2037 "./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, @@ -10399,7 +10778,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 1998 "./asn1/s1ap/s1ap.cnf" +#line 2039 "./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, @@ -10416,7 +10795,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 2000 "./asn1/s1ap/s1ap.cnf" +#line 2041 "./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, @@ -10433,7 +10812,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 2002 "./asn1/s1ap/s1ap.cnf" +#line 2043 "./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, @@ -10450,7 +10829,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 2004 "./asn1/s1ap/s1ap.cnf" +#line 2045 "./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, @@ -10467,7 +10846,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 2006 "./asn1/s1ap/s1ap.cnf" +#line 2047 "./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, @@ -10484,7 +10863,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 2008 "./asn1/s1ap/s1ap.cnf" +#line 2049 "./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, @@ -10501,7 +10880,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 2010 "./asn1/s1ap/s1ap.cnf" +#line 2051 "./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, @@ -10518,7 +10897,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 2012 "./asn1/s1ap/s1ap.cnf" +#line 2053 "./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, @@ -10535,7 +10914,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 2014 "./asn1/s1ap/s1ap.cnf" +#line 2055 "./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, @@ -10552,7 +10931,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 2016 "./asn1/s1ap/s1ap.cnf" +#line 2057 "./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, @@ -10569,7 +10948,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 2018 "./asn1/s1ap/s1ap.cnf" +#line 2059 "./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, @@ -10586,7 +10965,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 2020 "./asn1/s1ap/s1ap.cnf" +#line 2061 "./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, @@ -10603,7 +10982,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 2022 "./asn1/s1ap/s1ap.cnf" +#line 2063 "./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, @@ -10620,7 +10999,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 2024 "./asn1/s1ap/s1ap.cnf" +#line 2065 "./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, @@ -10637,7 +11016,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 2026 "./asn1/s1ap/s1ap.cnf" +#line 2067 "./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, @@ -10654,7 +11033,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 2028 "./asn1/s1ap/s1ap.cnf" +#line 2069 "./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, @@ -10671,7 +11050,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 2030 "./asn1/s1ap/s1ap.cnf" +#line 2071 "./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, @@ -10688,7 +11067,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 2032 "./asn1/s1ap/s1ap.cnf" +#line 2073 "./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, @@ -10705,7 +11084,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 2034 "./asn1/s1ap/s1ap.cnf" +#line 2075 "./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, @@ -10722,7 +11101,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 2036 "./asn1/s1ap/s1ap.cnf" +#line 2077 "./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, @@ -10739,7 +11118,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 2038 "./asn1/s1ap/s1ap.cnf" +#line 2079 "./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, @@ -10776,7 +11155,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 2040 "./asn1/s1ap/s1ap.cnf" +#line 2081 "./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, @@ -10793,7 +11172,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 2042 "./asn1/s1ap/s1ap.cnf" +#line 2083 "./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, @@ -10810,7 +11189,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 2044 "./asn1/s1ap/s1ap.cnf" +#line 2085 "./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, @@ -10827,7 +11206,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 2046 "./asn1/s1ap/s1ap.cnf" +#line 2087 "./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, @@ -10844,7 +11223,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 2048 "./asn1/s1ap/s1ap.cnf" +#line 2089 "./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, @@ -10861,7 +11240,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 2050 "./asn1/s1ap/s1ap.cnf" +#line 2091 "./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, @@ -10878,7 +11257,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 2052 "./asn1/s1ap/s1ap.cnf" +#line 2093 "./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, @@ -10895,7 +11274,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 2054 "./asn1/s1ap/s1ap.cnf" +#line 2095 "./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, @@ -10912,7 +11291,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 2056 "./asn1/s1ap/s1ap.cnf" +#line 2097 "./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, @@ -10929,7 +11308,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 2058 "./asn1/s1ap/s1ap.cnf" +#line 2099 "./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, @@ -10946,7 +11325,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 2060 "./asn1/s1ap/s1ap.cnf" +#line 2101 "./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, @@ -10963,7 +11342,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 2062 "./asn1/s1ap/s1ap.cnf" +#line 2103 "./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, @@ -10980,7 +11359,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 2064 "./asn1/s1ap/s1ap.cnf" +#line 2105 "./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, @@ -11067,7 +11446,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 2066 "./asn1/s1ap/s1ap.cnf" +#line 2107 "./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, @@ -11113,7 +11492,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 2068 "./asn1/s1ap/s1ap.cnf" +#line 2109 "./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, @@ -11130,7 +11509,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 2070 "./asn1/s1ap/s1ap.cnf" +#line 2111 "./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, @@ -11147,7 +11526,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 2072 "./asn1/s1ap/s1ap.cnf" +#line 2113 "./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, @@ -11164,7 +11543,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 2074 "./asn1/s1ap/s1ap.cnf" +#line 2115 "./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, @@ -11181,7 +11560,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 2076 "./asn1/s1ap/s1ap.cnf" +#line 2117 "./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, @@ -11223,7 +11602,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 2078 "./asn1/s1ap/s1ap.cnf" +#line 2119 "./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, @@ -11265,7 +11644,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 2080 "./asn1/s1ap/s1ap.cnf" +#line 2121 "./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, @@ -11282,7 +11661,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 2082 "./asn1/s1ap/s1ap.cnf" +#line 2123 "./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, @@ -11299,7 +11678,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 2086 "./asn1/s1ap/s1ap.cnf" +#line 2127 "./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, @@ -11316,7 +11695,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 2088 "./asn1/s1ap/s1ap.cnf" +#line 2129 "./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, @@ -11333,7 +11712,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 2090 "./asn1/s1ap/s1ap.cnf" +#line 2131 "./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, @@ -11350,7 +11729,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 2092 "./asn1/s1ap/s1ap.cnf" +#line 2133 "./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, @@ -11367,7 +11746,7 @@ static const per_sequence_t SecondaryRATDataUsageReport_sequence[] = { static int dissect_s1ap_SecondaryRATDataUsageReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 2094 "./asn1/s1ap/s1ap.cnf" +#line 2135 "./asn1/s1ap/s1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SecondaryRATDataUsageReport"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -11380,7 +11759,7 @@ dissect_s1ap_SecondaryRATDataUsageReport(tvbuff_t *tvb _U_, int offset _U_, asn1 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_) { -#line 122 "./asn1/s1ap/s1ap.cnf" +#line 125 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); s1ap_data->message_type = INITIATING_MESSAGE; @@ -11409,7 +11788,7 @@ dissect_s1ap_InitiatingMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static int dissect_s1ap_SuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 126 "./asn1/s1ap/s1ap.cnf" +#line 129 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); s1ap_data->message_type = SUCCESSFUL_OUTCOME; @@ -11438,7 +11817,7 @@ dissect_s1ap_SuccessfulOutcome(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static int dissect_s1ap_UnsuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 130 "./asn1/s1ap/s1ap.cnf" +#line 133 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); s1ap_data->message_type = UNSUCCESSFUL_OUTCOME; @@ -11838,7 +12217,7 @@ dissect_s1ap_CellStateIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int dissect_s1ap_T_uERLFReportContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 727 "./asn1/s1ap/s1ap.cnf" +#line 745 "./asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -12327,6 +12706,14 @@ static int dissect_Additional_GUTI_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_ offset += 7; offset >>= 3; return offset; } +static int dissect_AerialUEsubscriptionInformation_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_AerialUEsubscriptionInformation(tvb, offset, &asn1_ctx, tree, hf_s1ap_AerialUEsubscriptionInformation_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_AssistanceDataForPaging_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -12463,6 +12850,14 @@ static int dissect_CNDomain_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto offset += 7; offset >>= 3; return offset; } +static int dissect_CNTypeRestrictions_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_CNTypeRestrictions(tvb, offset, &asn1_ctx, tree, hf_s1ap_CNTypeRestrictions_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_ConcurrentWarningMessageIndicator_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -12615,6 +13010,14 @@ static int dissect_PWSfailedECGIList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _ offset += 7; offset >>= 3; return offset; } +static int dissect_EDT_Session_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_EDT_Session(tvb, offset, &asn1_ctx, tree, hf_s1ap_EDT_Session_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_EmergencyAreaIDListForRestart_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -12663,6 +13066,14 @@ static int dissect_ENBname_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_ offset += 7; offset >>= 3; return offset; } +static int dissect_EndIndication_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_EndIndication(tvb, offset, &asn1_ctx, tree, hf_s1ap_EndIndication_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_EnhancedCoverageRestricted_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -12871,6 +13282,14 @@ static int dissect_LoggedMBSFNMDT_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, offset += 7; offset >>= 3; return offset; } +static int dissect_LTE_M_Indication_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_LTE_M_Indication(tvb, offset, &asn1_ctx, tree, hf_s1ap_LTE_M_Indication_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_M3Configuration_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -13111,6 +13530,14 @@ static int dissect_OverloadResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U offset += 7; offset >>= 3; return offset; } +static int dissect_Packet_LossRate_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_Packet_LossRate(tvb, offset, &asn1_ctx, tree, hf_s1ap_Packet_LossRate_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_Paging_eDRXInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -13303,6 +13730,14 @@ static int dissect_SerialNumber_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, p offset += 7; offset >>= 3; return offset; } +static int dissect_ServiceType_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_ServiceType(tvb, offset, &asn1_ctx, tree, hf_s1ap_ServiceType_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_SONInformationReport_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -13535,6 +13970,14 @@ static int dissect_UEAppLayerMeasConfig_PDU(tvbuff_t *tvb _U_, packet_info *pinf offset += 7; offset >>= 3; return offset; } +static int dissect_UECapabilityInfoRequest_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_UECapabilityInfoRequest(tvb, offset, &asn1_ctx, tree, hf_s1ap_UECapabilityInfoRequest_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; @@ -14874,7 +15317,7 @@ int dissect_s1ap_SONtransferCause_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, /*--- End of included file: packet-s1ap-fn.c ---*/ -#line 350 "./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_) { @@ -15202,6 +15645,11 @@ proto_reg_handoff_s1ap(void) dissector_add_uint("s1ap.ies", id_HandoverFlag, create_dissector_handle(dissect_HandoverFlag_PDU, proto_s1ap)); dissector_add_uint("s1ap.ies", id_EmergencyAreaIDListForRestart, create_dissector_handle(dissect_EmergencyAreaIDListForRestart_PDU, proto_s1ap)); dissector_add_uint("s1ap.ies", id_CE_ModeBRestricted, create_dissector_handle(dissect_CE_ModeBRestricted_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_AerialUEsubscriptionInformation, create_dissector_handle(dissect_AerialUEsubscriptionInformation_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_UECapabilityInfoRequest, create_dissector_handle(dissect_UECapabilityInfoRequest_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_EndIndication, create_dissector_handle(dissect_EndIndication_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_EDT_Session, create_dissector_handle(dissect_EDT_Session_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_LTE_M_Indication, create_dissector_handle(dissect_LTE_M_Indication_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)); @@ -15244,6 +15692,10 @@ proto_reg_handoff_s1ap(void) 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.extension", id_UnlicensedSpectrumRestriction, create_dissector_handle(dissect_UnlicensedSpectrumRestriction_PDU, proto_s1ap)); + dissector_add_uint("s1ap.extension", id_CNTypeRestrictions, create_dissector_handle(dissect_CNTypeRestrictions_PDU, proto_s1ap)); + dissector_add_uint("s1ap.extension", id_DownlinkPacketLossRate, create_dissector_handle(dissect_Packet_LossRate_PDU, proto_s1ap)); + dissector_add_uint("s1ap.extension", id_UplinkPacketLossRate, create_dissector_handle(dissect_Packet_LossRate_PDU, proto_s1ap)); + dissector_add_uint("s1ap.extension", id_serviceType, create_dissector_handle(dissect_ServiceType_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)); @@ -15340,7 +15792,7 @@ proto_reg_handoff_s1ap(void) /*--- End of included file: packet-s1ap-dis-tab.c ---*/ -#line 470 "./asn1/s1ap/packet-s1ap-template.c" +#line 478 "./asn1/s1ap/packet-s1ap-template.c" } else { if (SctpPort != 0) { dissector_delete_uint("sctp.port", SctpPort, s1ap_handle); @@ -15531,13 +15983,17 @@ void proto_register_s1ap(void) { { "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", + { &hf_s1ap_UE_Application_Layer_Measurement_Capability_QoE_Measurement_for_streaming_service, + { "QoE Measurement for streaming service", "s1ap.UE_Application_Layer_Measurement_Capability.QoE_Measurement_for_streaming_service", FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x80, NULL, HFILL }}, + { &hf_s1ap_UE_Application_Layer_Measurement_Capability_QoE_Measurement_for_MTSI_service, + { "QoE Measurement for MTSI service", "s1ap.UE_Application_Layer_Measurement_Capability.QoE_Measurement_for_MTSI_service", + FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x40, + NULL, HFILL }}, { &hf_s1ap_UE_Application_Layer_Measurement_Capability_Reserved, { "Reserved", "s1ap.UE_Application_Layer_Measurement_Capability.Reserved", - FT_UINT8, BASE_HEX, NULL, 0x7f, + FT_UINT8, BASE_HEX, NULL, 0x3f, NULL, HFILL }}, /*--- Included file: packet-s1ap-hfarr.c ---*/ @@ -15546,6 +16002,10 @@ void proto_register_s1ap(void) { { "Additional-GUTI", "s1ap.Additional_GUTI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_AerialUEsubscriptionInformation_PDU, + { "AerialUEsubscriptionInformation", "s1ap.AerialUEsubscriptionInformation", + FT_UINT32, BASE_DEC, VALS(s1ap_AerialUEsubscriptionInformation_vals), 0, + NULL, HFILL }}, { &hf_s1ap_AssistanceDataForPaging_PDU, { "AssistanceDataForPaging", "s1ap.AssistanceDataForPaging_element", FT_NONE, BASE_NONE, NULL, 0, @@ -15614,6 +16074,10 @@ void proto_register_s1ap(void) { { "CNDomain", "s1ap.CNDomain", FT_UINT32, BASE_DEC, VALS(s1ap_CNDomain_vals), 0, NULL, HFILL }}, + { &hf_s1ap_CNTypeRestrictions_PDU, + { "CNTypeRestrictions", "s1ap.CNTypeRestrictions", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_ConcurrentWarningMessageIndicator_PDU, { "ConcurrentWarningMessageIndicator", "s1ap.ConcurrentWarningMessageIndicator", FT_UINT32, BASE_DEC, VALS(s1ap_ConcurrentWarningMessageIndicator_vals), 0, @@ -15690,6 +16154,10 @@ void proto_register_s1ap(void) { { "PWSfailedECGIList", "s1ap.PWSfailedECGIList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_EDT_Session_PDU, + { "EDT-Session", "s1ap.EDT_Session", + FT_UINT32, BASE_DEC, VALS(s1ap_EDT_Session_vals), 0, + NULL, HFILL }}, { &hf_s1ap_EmergencyAreaIDListForRestart_PDU, { "EmergencyAreaIDListForRestart", "s1ap.EmergencyAreaIDListForRestart", FT_UINT32, BASE_DEC, NULL, 0, @@ -15714,6 +16182,10 @@ void proto_register_s1ap(void) { { "ENBname", "s1ap.ENBname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_EndIndication_PDU, + { "EndIndication", "s1ap.EndIndication", + FT_UINT32, BASE_DEC, VALS(s1ap_EndIndication_vals), 0, + NULL, HFILL }}, { &hf_s1ap_EnhancedCoverageRestricted_PDU, { "EnhancedCoverageRestricted", "s1ap.EnhancedCoverageRestricted", FT_UINT32, BASE_DEC, VALS(s1ap_EnhancedCoverageRestricted_vals), 0, @@ -15818,6 +16290,10 @@ void proto_register_s1ap(void) { { "LoggedMBSFNMDT", "s1ap.LoggedMBSFNMDT_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_LTE_M_Indication_PDU, + { "LTE-M-Indication", "s1ap.LTE_M_Indication", + FT_UINT32, BASE_DEC, VALS(s1ap_LTE_M_Indication_vals), 0, + NULL, HFILL }}, { &hf_s1ap_M3Configuration_PDU, { "M3Configuration", "s1ap.M3Configuration_element", FT_NONE, BASE_NONE, NULL, 0, @@ -15938,6 +16414,10 @@ void proto_register_s1ap(void) { { "OverloadResponse", "s1ap.OverloadResponse", FT_UINT32, BASE_DEC, VALS(s1ap_OverloadResponse_vals), 0, NULL, HFILL }}, + { &hf_s1ap_Packet_LossRate_PDU, + { "Packet-LossRate", "s1ap.Packet_LossRate", + FT_UINT32, BASE_CUSTOM, CF_FUNC(s1ap_Packet_LossRate_fmt), 0, + NULL, HFILL }}, { &hf_s1ap_Paging_eDRXInformation_PDU, { "Paging-eDRXInformation", "s1ap.Paging_eDRXInformation_element", FT_NONE, BASE_NONE, NULL, 0, @@ -16034,6 +16514,10 @@ void proto_register_s1ap(void) { { "SerialNumber", "s1ap.SerialNumber", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_ServiceType_PDU, + { "ServiceType", "s1ap.ServiceType", + FT_UINT32, BASE_DEC, VALS(s1ap_ServiceType_vals), 0, + NULL, HFILL }}, { &hf_s1ap_SONInformationReport_PDU, { "SONInformationReport", "s1ap.SONInformationReport", FT_UINT32, BASE_DEC, VALS(s1ap_SONInformationReport_vals), 0, @@ -16150,6 +16634,10 @@ void proto_register_s1ap(void) { { "UEAppLayerMeasConfig", "s1ap.UEAppLayerMeasConfig_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_UECapabilityInfoRequest_PDU, + { "UECapabilityInfoRequest", "s1ap.UECapabilityInfoRequest", + FT_UINT32, BASE_DEC, VALS(s1ap_UECapabilityInfoRequest_vals), 0, + NULL, HFILL }}, { &hf_s1ap_UE_RetentionInformation_PDU, { "UE-RetentionInformation", "s1ap.UE_RetentionInformation", FT_UINT32, BASE_DEC, VALS(s1ap_UE_RetentionInformation_vals), 0, @@ -17094,6 +17582,18 @@ void proto_register_s1ap(void) { { "rAC", "s1ap.rAC", FT_UINT8, BASE_DEC_HEX, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_CNTypeRestrictions_item, + { "CNTypeRestrictions-Item", "s1ap.CNTypeRestrictions_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_pLMN_Identity, + { "pLMN-Identity", "s1ap.pLMN_Identity", + FT_BYTES, BASE_NONE, NULL, 0, + "PLMNidentity", HFILL }}, + { &hf_s1ap_cNType, + { "cNType", "s1ap.cNType", + FT_UINT32, BASE_DEC, VALS(s1ap_CNType_vals), 0, + NULL, HFILL }}, { &hf_s1ap_CSG_IdList_item, { "CSG-IdList-Item", "s1ap.CSG_IdList_Item_element", FT_NONE, BASE_NONE, NULL, 0, @@ -17330,14 +17830,14 @@ void proto_register_s1ap(void) { { "sourceofUEActivityBehaviourInformation", "s1ap.sourceofUEActivityBehaviourInformation", FT_UINT32, BASE_DEC, VALS(s1ap_SourceOfUEActivityBehaviourInformation_vals), 0, NULL, HFILL }}, + { &hf_s1ap_fiveGSTAC, + { "fiveGSTAC", "s1ap.fiveGSTAC", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_ForbiddenTAs_item, { "ForbiddenTAs-Item", "s1ap.ForbiddenTAs_Item_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_s1ap_pLMN_Identity, - { "pLMN-Identity", "s1ap.pLMN_Identity", - FT_BYTES, BASE_NONE, NULL, 0, - "PLMNidentity", HFILL }}, { &hf_s1ap_forbiddenTACs, { "forbiddenTACs", "s1ap.forbiddenTACs", FT_UINT32, BASE_DEC, NULL, 0, @@ -17902,6 +18402,10 @@ void proto_register_s1ap(void) { { "cGI", "s1ap.cGI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_targetgNgRanNode_ID, + { "targetgNgRanNode-ID", "s1ap.targetgNgRanNode_ID_element", + FT_NONE, BASE_NONE, NULL, 0, + "TargetNgRanNode_ID", HFILL }}, { &hf_s1ap_rNC_ID, { "rNC-ID", "s1ap.rNC_ID", FT_UINT32, BASE_DEC, NULL, 0, @@ -17910,6 +18414,38 @@ void proto_register_s1ap(void) { { "extendedRNC-ID", "s1ap.extendedRNC_ID", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_global_RAN_NODE_ID, + { "global-RAN-NODE-ID", "s1ap.global_RAN_NODE_ID", + FT_UINT32, BASE_DEC, VALS(s1ap_Global_RAN_NODE_ID_vals), 0, + NULL, HFILL }}, + { &hf_s1ap_selected_TAI_01, + { "selected-TAI", "s1ap.selected_TAI_element", + FT_NONE, BASE_NONE, NULL, 0, + "FiveGSTAI", HFILL }}, + { &hf_s1ap_gNB, + { "gNB", "s1ap.gNB_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_ng_eNB, + { "ng-eNB", "s1ap.ng_eNB_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_global_gNB_ID, + { "global-gNB-ID", "s1ap.global_gNB_ID_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_gNB_ID, + { "gNB-ID", "s1ap.gNB_ID", + FT_UINT32, BASE_DEC, VALS(s1ap_GNB_Identity_vals), 0, + "GNB_Identity", HFILL }}, + { &hf_s1ap_gNB_ID_01, + { "gNB-ID", "s1ap.gNB_ID", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_global_ng_eNB_ID, + { "global-ng-eNB-ID", "s1ap.global_ng_eNB_ID_element", + FT_NONE, BASE_NONE, NULL, 0, + "Global_ENB_ID", HFILL }}, { &hf_s1ap_measurementThreshold, { "measurementThreshold", "s1ap.measurementThreshold", FT_UINT32, BASE_DEC, VALS(s1ap_MeasurementThresholdA2_vals), 0, @@ -18468,7 +19004,7 @@ void proto_register_s1ap(void) { NULL, HFILL }}, /*--- End of included file: packet-s1ap-hfarr.c ---*/ -#line 669 "./asn1/s1ap/packet-s1ap-template.c" +#line 681 "./asn1/s1ap/packet-s1ap-template.c" }; /* List of subtrees */ @@ -18545,6 +19081,8 @@ void proto_register_s1ap(void) { &ett_s1ap_Cdma2000OneXSRVCCInfo, &ett_s1ap_CellType, &ett_s1ap_CGI, + &ett_s1ap_CNTypeRestrictions, + &ett_s1ap_CNTypeRestrictions_Item, &ett_s1ap_CSG_IdList, &ett_s1ap_CSG_IdList_Item, &ett_s1ap_COUNTvalue, @@ -18584,6 +19122,7 @@ void proto_register_s1ap(void) { &ett_s1ap_EUTRAN_CGI, &ett_s1ap_ExpectedUEBehaviour, &ett_s1ap_ExpectedUEActivityBehaviour, + &ett_s1ap_FiveGSTAI, &ett_s1ap_ForbiddenTAs, &ett_s1ap_ForbiddenTAs_Item, &ett_s1ap_ForbiddenTACs, @@ -18673,6 +19212,12 @@ void proto_register_s1ap(void) { &ett_s1ap_TargetID, &ett_s1ap_TargeteNB_ID, &ett_s1ap_TargetRNC_ID, + &ett_s1ap_TargetNgRanNode_ID, + &ett_s1ap_Global_RAN_NODE_ID, + &ett_s1ap_GNB, + &ett_s1ap_Global_GNB_ID, + &ett_s1ap_GNB_Identity, + &ett_s1ap_NG_eNB, &ett_s1ap_TargeteNB_ToSourceeNB_TransparentContainer, &ett_s1ap_M1ThresholdEventA2, &ett_s1ap_TransportInformation, @@ -18862,7 +19407,7 @@ void proto_register_s1ap(void) { &ett_s1ap_EHRPDMultiSectorLoadReportingResponseItem, /*--- End of included file: packet-s1ap-ettarr.c ---*/ -#line 706 "./asn1/s1ap/packet-s1ap-template.c" +#line 718 "./asn1/s1ap/packet-s1ap-template.c" }; static ei_register_info ei[] = { |