diff options
-rw-r--r-- | epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn | 2 | ||||
-rw-r--r-- | epan/dissectors/asn1/s1ap/S1AP-Constants.asn | 20 | ||||
-rw-r--r-- | epan/dissectors/asn1/s1ap/S1AP-Containers.asn | 2 | ||||
-rw-r--r-- | epan/dissectors/asn1/s1ap/S1AP-IEs.asn | 100 | ||||
-rw-r--r-- | epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn | 151 | ||||
-rw-r--r-- | epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn | 56 | ||||
-rw-r--r-- | epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn | 2 | ||||
-rw-r--r-- | epan/dissectors/asn1/s1ap/packet-s1ap-template.c | 2 | ||||
-rw-r--r-- | epan/dissectors/asn1/s1ap/s1ap.cnf | 217 | ||||
-rw-r--r-- | epan/dissectors/packet-s1ap.c | 1009 |
10 files changed, 1264 insertions, 297 deletions
diff --git a/epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn b/epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn index 466cf9004d..d427777e97 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 V13.6.0 (2017-06) +-- 3GPP TS 36.413 V14.3.0 (2017-06) -- 9.3.5 Common Definitions -- ************************************************************** -- diff --git a/epan/dissectors/asn1/s1ap/S1AP-Constants.asn b/epan/dissectors/asn1/s1ap/S1AP-Constants.asn index ed1f92d9b5..8a44ddd9bb 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 V13.6.0 (2017-06) +-- 3GPP TS 36.413 V14.3.0 (2017-06) -- 9.3.6 Constant Definitions -- ************************************************************** -- @@ -90,6 +90,11 @@ id-UEContextModificationIndication ProcedureCode ::= 53 id-ConnectionEstablishmentIndication ProcedureCode ::= 54 id-UEContextSuspend ProcedureCode ::= 55 id-UEContextResume ProcedureCode ::= 56 +id-NASDeliveryIndication ProcedureCode ::= 57 +id-RetrieveUEInformation ProcedureCode ::= 58 +id-UEInformationTransfer ProcedureCode ::= 59 +id-eNBCPRelocationIndication ProcedureCode ::= 60 +id-MMECPRelocationIndication ProcedureCode ::= 61 -- ************************************************************** -- @@ -122,6 +127,7 @@ maxnoofCells INTEGER ::= 16 maxnoofCellsineNB INTEGER ::= 256 maxnoofTAIforWarning INTEGER ::= 65535 maxnoofCellID INTEGER ::= 65535 +maxnoofDCNs INTEGER ::= 32 maxnoofEmergencyAreaID INTEGER ::= 65535 maxnoofCellinTAI INTEGER ::= 65535 maxnoofCellinEAI INTEGER ::= 65535 @@ -396,12 +402,20 @@ id-E-RABFailedToResumeItemResumeReq ProtocolIE-ID ::= 236 id-E-RABFailedToResumeListResumeRes ProtocolIE-ID ::= 237 id-E-RABFailedToResumeItemResumeRes ProtocolIE-ID ::= 238 id-NB-IoT-Paging-eDRXInformation ProtocolIE-ID ::= 239 ---WS extension -id-Unknown-240 ProtocolIE-ID ::= 240 +id-V2XServicesAuthorized ProtocolIE-ID ::= 240 id-UEUserPlaneCIoTSupportIndicator ProtocolIE-ID ::= 241 id-CE-mode-B-SupportIndicator ProtocolIE-ID ::= 242 id-SRVCCOperationNotPossible ProtocolIE-ID ::= 243 id-NB-IoT-UEIdentityIndexValue ProtocolIE-ID ::= 244 id-RRC-Resume-Cause ProtocolIE-ID ::= 245 +id-DCN-ID ProtocolIE-ID ::= 246 +id-ServedDCNs ProtocolIE-ID ::= 247 +id-UESidelinkAggregateMaximumBitrate ProtocolIE-ID ::= 248 +id-DLNASPDUDeliveryAckRequest ProtocolIE-ID ::= 249 +id-Coverage-Level ProtocolIE-ID ::= 250 +id-EnhancedCoverageRestricted ProtocolIE-ID ::= 251 +id-UE-Level-QoS-Parameters ProtocolIE-ID ::= 252 +id-DL-CP-SecurityInformation ProtocolIE-ID ::= 253 +id-UL-CP-SecurityInformation ProtocolIE-ID ::= 254 END diff --git a/epan/dissectors/asn1/s1ap/S1AP-Containers.asn b/epan/dissectors/asn1/s1ap/S1AP-Containers.asn index 82d842c4e7..b1960fc849 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 V13.6.0 (2017-06) +-- 3GPP TS 36.413 V14.3.0 (2017-06) -- 9.3.7 Container Definitions -- ************************************************************** -- diff --git a/epan/dissectors/asn1/s1ap/S1AP-IEs.asn b/epan/dissectors/asn1/s1ap/S1AP-IEs.asn index 90cacfef05..b0b928324a 100644 --- a/epan/dissectors/asn1/s1ap/S1AP-IEs.asn +++ b/epan/dissectors/asn1/s1ap/S1AP-IEs.asn @@ -1,4 +1,4 @@ --- 3GPP TS 36.413 V13.6.0 (2017-06) +-- 3GPP TS 36.413 V14.3.0 (2017-06) -- 9.3.4 Information Element Definitions -- ************************************************************** -- @@ -61,6 +61,7 @@ IMPORTS maxnoofForbTACs, maxnoofCells, maxnoofCellID, + maxnoofDCNs, maxnoofEmergencyAreaID, maxnoofTAIforWarning, maxnoofCellinTAI, @@ -542,6 +543,11 @@ COUNTvaluePDCP-SNlength18-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ... } +Coverage-Level ::= ENUMERATED { + extendedcoverage, + ... +} + CriticalityDiagnostics ::= SEQUENCE { procedureCode ProcedureCode OPTIONAL, triggeringMessage TriggeringMessage OPTIONAL, @@ -574,11 +580,38 @@ CriticalityDiagnostics-IE-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { DataCodingScheme ::= BIT STRING (SIZE (8)) +DCN-ID ::= INTEGER (0..65535) + +ServedDCNs ::= SEQUENCE (SIZE(0..maxnoofDCNs)) OF ServedDCNsItem + +ServedDCNsItem ::= SEQUENCE { + dCN-ID DCN-ID, + relativeDCNCapacity RelativeMMECapacity, + iE-Extensions ProtocolExtensionContainer { {ServedDCNsItem-ExtIEs} } OPTIONAL, + ... +} + +ServedDCNsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +DL-CP-SecurityInformation ::= SEQUENCE { + dl-NAS-MAC DL-NAS-MAC, + iE-Extensions ProtocolExtensionContainer { { DL-CP-SecurityInformation-ExtIEs} } OPTIONAL, + ... +} + +DL-CP-SecurityInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + DL-Forwarding ::= ENUMERATED { dL-Forwarding-proposed, ... } +DL-NAS-MAC ::= BIT STRING (SIZE (16)) + Direct-Forwarding-Path-Availability ::= ENUMERATED { directPathAvailable, ... @@ -589,6 +622,11 @@ Data-Forwarding-Not-Possible ::= ENUMERATED { ... } +DLNASPDUDeliveryAckRequest ::= ENUMERATED { + requested, + ... +} + -- E EARFCN ::= INTEGER(0..maxEARFCN, ...) @@ -646,7 +684,9 @@ EmergencyAreaIDListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartEmergencyAreaI ENB-ID ::= CHOICE { macroENB-ID BIT STRING (SIZE(20)), homeENB-ID BIT STRING (SIZE(28)), - ... + ... , + short-macroENB-ID BIT STRING (SIZE(18)), + long-macroENB-ID BIT STRING (SIZE(21)) } GERAN-Cell-ID ::= SEQUENCE { @@ -692,6 +732,11 @@ ENBX2TLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2TLAs)) OF TransportLayerAddress EncryptionAlgorithms ::= BIT STRING (SIZE (16,...)) +EnhancedCoverageRestricted ::= ENUMERATED { + restricted, + ... +} + EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMNidentity EventType ::= ENUMERATED { direct, @@ -1296,7 +1341,9 @@ OverloadAction ::= ENUMERATED { ..., permit-high-priority-sessions-and-mobile-terminated-services-only, reject-delay-tolerant-access, + not-accept-mo-data-or-delay-tolerant-access-from-CP-CIoT, permit-high-priority-sessions-and-exception-reporting-and-mobile-terminated-services-only + } OverloadResponse ::= CHOICE { @@ -2085,8 +2132,34 @@ UESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ... } +UESidelinkAggregateMaximumBitrate ::= SEQUENCE { + uESidelinkAggregateMaximumBitRate BitRate, + iE-Extensions ProtocolExtensionContainer { {UE-Sidelink-Aggregate-MaximumBitrates-ExtIEs} } OPTIONAL, + ... +} + +UE-Sidelink-Aggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + UE-Usage-Type ::= INTEGER (0..255) +UL-CP-SecurityInformation ::= SEQUENCE { + ul-NAS-MAC UL-NAS-MAC, + ul-NAS-Count UL-NAS-Count, + iE-Extensions ProtocolExtensionContainer { { UL-CP-SecurityInformation-ExtIEs} } OPTIONAL, + ... +} + +UL-CP-SecurityInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +UL-NAS-MAC ::= BIT STRING (SIZE (16)) + +UL-NAS-Count ::= BIT STRING (SIZE (5)) + + UserLocationInformation ::= SEQUENCE { eutran-cgi EUTRAN-CGI, tai TAI, @@ -2111,6 +2184,29 @@ VoiceSupportMatchIndicator ::= ENUMERATED { ... } +V2XServicesAuthorized ::= SEQUENCE { + vehicleUE VehicleUE OPTIONAL, + pedestrianUE PedestrianUE OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {V2XServicesAuthorized-ExtIEs} } OPTIONAL, + ... +} + +V2XServicesAuthorized-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +VehicleUE ::= ENUMERATED { + authorized, + not-authorized, + ... +} + +PedestrianUE ::= ENUMERATED { + authorized, + not-authorized, + ... +} + -- W WarningAreaList ::= CHOICE { diff --git a/epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn b/epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn index 8546b77131..5bc8cd6eb1 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 V13.6.0 (2017-06) +-- 3GPP TS 36.413 V14.3.0 (2017-06) -- 9.3.3 PDU Definitions -- ************************************************************** -- @@ -154,7 +154,16 @@ IMPORTS NB-IoT-DefaultPagingDRX, NB-IoT-Paging-eDRXInformation, CE-mode-B-SupportIndicator, - NB-IoT-UEIdentityIndexValue + NB-IoT-UEIdentityIndexValue, + V2XServicesAuthorized, + DCN-ID, + ServedDCNs, + UESidelinkAggregateMaximumBitrate, + DLNASPDUDeliveryAckRequest, + Coverage-Level, + EnhancedCoverageRestricted, + DL-CP-SecurityInformation, + UL-CP-SecurityInformation @@ -316,6 +325,7 @@ FROM S1AP-Containers id-UE-RetentionInformation, id-UESecurityCapabilities, id-UE-S1AP-IDs, + id-V2XServicesAuthorized, id-ResetType, id-MessageIdentifier, id-SerialNumber, @@ -378,7 +388,16 @@ FROM S1AP-Containers id-NB-IoT-Paging-eDRXInformation, id-CE-mode-B-SupportIndicator, id-NB-IoT-UEIdentityIndexValue, - id-RRC-Resume-Cause + id-RRC-Resume-Cause, + id-DCN-ID, + id-ServedDCNs, + id-UESidelinkAggregateMaximumBitrate, + id-DLNASPDUDeliveryAckRequest, + id-Coverage-Level, + id-EnhancedCoverageRestricted, + id-UE-Level-QoS-Parameters, + id-DL-CP-SecurityInformation, + id-UL-CP-SecurityInformation FROM S1AP-Constants; @@ -537,7 +556,10 @@ HandoverRequestIEs S1AP-PROTOCOL-IES ::= { { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| - { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}, + { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}, ... } @@ -751,7 +773,10 @@ PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| - { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}, + { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}, ... } @@ -1155,7 +1180,10 @@ InitialContextSetupRequestIEs S1AP-PROTOCOL-IES ::= { { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}| { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}| { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| - { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}, + { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}, ... } @@ -1400,7 +1428,9 @@ UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= { { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}| { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}| { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| - { ID id-SRVCCOperationNotPossible CRITICALITY ignore TYPE SRVCCOperationNotPossible PRESENCE optional}, + { ID id-SRVCCOperationNotPossible CRITICALITY ignore TYPE SRVCCOperationNotPossible PRESENCE optional}| + { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}| + { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}, ... } -- ************************************************************** @@ -1506,7 +1536,9 @@ DownlinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| - { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}, + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}| + { ID id-DLNASPDUDeliveryAckRequest CRITICALITY ignore TYPE DLNASPDUDeliveryAckRequest PRESENCE optional}| + { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}, ... } @@ -1541,7 +1573,10 @@ InitialUEMessage-IEs S1AP-PROTOCOL-IES ::= { { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}| { ID id-MME-Group-ID CRITICALITY ignore TYPE MME-Group-ID PRESENCE optional}| { ID id-UE-Usage-Type CRITICALITY ignore TYPE UE-Usage-Type PRESENCE optional}| - { ID id-CE-mode-B-SupportIndicator CRITICALITY ignore TYPE CE-mode-B-SupportIndicator PRESENCE optional}, + { ID id-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}, + ... } @@ -1613,6 +1648,22 @@ RerouteNASRequest-IEs S1AP-PROTOCOL-IES ::= { ... } + +-- ************************************************************** +-- +-- NAS DELIVERY INDICATION +-- +-- ************************************************************** + +NASDeliveryIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { NASDeliveryIndicationIEs} }, + ... +} + +NASDeliveryIndicationIEs S1AP-PROTOCOL-IES ::= { + ... +} + -- ************************************************************** -- -- RESET ELEMENTARY PROCEDURE @@ -1752,7 +1803,8 @@ S1SetupResponseIEs S1AP-PROTOCOL-IES ::= { { ID id-RelativeMMECapacity CRITICALITY ignore TYPE RelativeMMECapacity PRESENCE mandatory}| { ID id-MMERelaySupportIndicator CRITICALITY ignore TYPE MMERelaySupportIndicator PRESENCE optional}| { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| - { ID id-UE-RetentionInformation CRITICALITY ignore TYPE UE-RetentionInformation PRESENCE optional}, + { ID id-UE-RetentionInformation CRITICALITY ignore TYPE UE-RetentionInformation PRESENCE optional}| + { ID id-ServedDCNs CRITICALITY ignore TYPE ServedDCNs PRESENCE optional}, ... } @@ -1856,7 +1908,8 @@ MMEConfigurationUpdate ::= SEQUENCE { MMEConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }| { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE optional }| - { ID id-RelativeMMECapacity CRITICALITY reject TYPE RelativeMMECapacity PRESENCE optional }, + { ID id-RelativeMMECapacity CRITICALITY reject TYPE RelativeMMECapacity PRESENCE optional }| + { ID id-ServedDCNs CRITICALITY ignore TYPE ServedDCNs PRESENCE optional}, ... } @@ -2874,8 +2927,84 @@ ConnectionEstablishmentIndication::= SEQUENCE { ConnectionEstablishmentIndicationIEs 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-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 }, + ... +} + +-- ************************************************************** +-- +-- Retrieve UE Information +-- +-- ************************************************************** + +RetrieveUEInformation ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { RetrieveUEInformationIEs} }, + ... +} + +RetrieveUEInformationIEs S1AP-PROTOCOL-IES ::= { + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory}, +... + +} + + +-- ************************************************************** + +-- UE Information Transfer +-- +-- ************************************************************** +UEInformationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { UEInformationTransferIEs} }, + ... +} + +UEInformationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory}| + { ID id-UE-Level-QoS-Parameters CRITICALITY ignore TYPE E-RABLevelQoSParameters PRESENCE optional}| { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}, ... } + +-- ************************************************************** +-- +-- eNB CP Relocation Indication +-- +-- ************************************************************** + +ENBCPRelocationIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { ENBCPRelocationIndicationIEs} }, + ... +} + +ENBCPRelocationIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| + { ID id-UL-CP-SecurityInformation CRITICALITY reject TYPE UL-CP-SecurityInformation PRESENCE mandatory}, + ... +} + + +-- ************************************************************** +-- +-- MME CP Relocation Indication +-- +-- ************************************************************** + +MMECPRelocationIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container { { MMECPRelocationIndicationIEs} }, + ... +} + +MMECPRelocationIndicationIEs 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}, + ... +} + END diff --git a/epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn b/epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn index 592ceaf56f..49f8f8960b 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 V13.6.0 (2017-06) +-- 3GPP TS 36.413 V14.3.0 (2017-06) -- 9.3.2 Elementary Procedure Definitions -- ************************************************************** -- @@ -111,7 +111,12 @@ FROM S1AP-CommonDataTypes UEContextResumeRequest, UEContextResumeResponse, UEContextResumeFailure, - ConnectionEstablishmentIndication + ConnectionEstablishmentIndication, + NASDeliveryIndication, + RetrieveUEInformation, + UEInformationTransfer, + ENBCPRelocationIndication, + MMECPRelocationIndication FROM S1AP-PDU-Contents @@ -172,7 +177,14 @@ FROM S1AP-PDU-Contents id-PWSFailureIndication, id-UEContextSuspend, id-UEContextResume, - id-ConnectionEstablishmentIndication + id-ConnectionEstablishmentIndication, + id-NASDeliveryIndication, + id-RetrieveUEInformation, + id-UEInformationTransfer, + id-eNBCPRelocationIndication, + id-MMECPRelocationIndication + + FROM S1AP-Constants; @@ -303,7 +315,12 @@ S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= { pWSRestartIndication | rerouteNASRequest | pWSFailureIndication | - connectionEstablishmentIndication + connectionEstablishmentIndication | + nASDeliveryIndication | + retrieveUEInformation | + uEInformationTransfer | + eNBCPRelocationIndication | + mMECPRelocationIndication } -- ************************************************************** @@ -682,4 +699,35 @@ connectionEstablishmentIndication S1AP-ELEMENTARY-PROCEDURE ::= { CRITICALITY reject } +nASDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE NASDeliveryIndication + PROCEDURE CODE id-NASDeliveryIndication + CRITICALITY ignore +} + +retrieveUEInformation S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RetrieveUEInformation + PROCEDURE CODE id-RetrieveUEInformation + CRITICALITY reject +} + +uEInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEInformationTransfer + PROCEDURE CODE id-UEInformationTransfer + CRITICALITY reject +} + +eNBCPRelocationIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBCPRelocationIndication + PROCEDURE CODE id-eNBCPRelocationIndication + CRITICALITY reject +} + +mMECPRelocationIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMECPRelocationIndication + PROCEDURE CODE id-MMECPRelocationIndication + CRITICALITY reject +} + + END diff --git a/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn b/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn index babcc0b941..f64a1ff0a0 100644 --- a/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn +++ b/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn @@ -1,4 +1,4 @@ --- 3GPP TS 36.413 V13.6.0 (2017-06) +-- 3GPP TS 36.413 V14.3.0 (2017-06) -- B.2 ASN.1 definition -- ************************************************************** -- diff --git a/epan/dissectors/asn1/s1ap/packet-s1ap-template.c b/epan/dissectors/asn1/s1ap/packet-s1ap-template.c index 7a495bddb9..6b6dcb3530 100644 --- a/epan/dissectors/asn1/s1ap/packet-s1ap-template.c +++ b/epan/dissectors/asn1/s1ap/packet-s1ap-template.c @@ -22,7 +22,7 @@ * * Based on the RANAP dissector * - * References: 3GPP TS 36.413 V13.6.0 (2017-06) + * References: 3GPP TS 36.413 V14.3.0 (2017-06) */ #include "config.h" diff --git a/epan/dissectors/asn1/s1ap/s1ap.cnf b/epan/dissectors/asn1/s1ap/s1ap.cnf index 7a031802cb..eaa3f7939b 100644 --- a/epan/dissectors/asn1/s1ap/s1ap.cnf +++ b/epan/dissectors/asn1/s1ap/s1ap.cnf @@ -1144,6 +1144,11 @@ id-UEContextModificationIndication ProcedureCode id-ConnectionEstablishmentIndication ProcedureCode id-UEContextSuspend ProcedureCode id-UEContextResume ProcedureCode +id-NASDeliveryIndication ProcedureCode +id-RetrieveUEInformation ProcedureCode +id-UEInformationTransfer ProcedureCode +id-eNBCPRelocationIndication ProcedureCode +id-MMECPRelocationIndication ProcedureCode # ProtocolIE-ID id-MME-UE-S1AP-ID ProtocolIE-ID @@ -1368,11 +1373,21 @@ id-E-RABFailedToResumeItemResumeReq ProtocolIE-ID id-E-RABFailedToResumeListResumeRes ProtocolIE-ID id-E-RABFailedToResumeItemResumeRes ProtocolIE-ID id-NB-IoT-Paging-eDRXInformation ProtocolIE-ID +id-V2XServicesAuthorized ProtocolIE-ID id-UEUserPlaneCIoTSupportIndicator ProtocolIE-ID id-CE-mode-B-SupportIndicator ProtocolIE-ID id-SRVCCOperationNotPossible ProtocolIE-ID id-NB-IoT-UEIdentityIndexValue ProtocolIE-ID id-RRC-Resume-Cause ProtocolIE-ID +id-DCN-ID ProtocolIE-ID +id-ServedDCNs ProtocolIE-ID +id-UESidelinkAggregateMaximumBitrate ProtocolIE-ID +id-DLNASPDUDeliveryAckRequest ProtocolIE-ID +id-Coverage-Level ProtocolIE-ID +id-EnhancedCoverageRestricted ProtocolIE-ID +id-UE-Level-QoS-Parameters ProtocolIE-ID +id-DL-CP-SecurityInformation ProtocolIE-ID +id-UL-CP-SecurityInformation ProtocolIE-ID #.END #.REGISTER @@ -1568,6 +1583,16 @@ CE-mode-B-SupportIndicator N s1ap.ies id-CE-mode-B-SupportI SRVCCOperationNotPossible N s1ap.ies id-SRVCCOperationNotPossible NB-IoT-UEIdentityIndexValue N s1ap.ies id-NB-IoT-UEIdentityIndexValue RRC-Establishment-Cause N s1ap.ies id-RRC-Resume-Cause +V2XServicesAuthorized N s1ap.ies id-V2XServicesAuthorized +UESidelinkAggregateMaximumBitrate N s1ap.ies id-UESidelinkAggregateMaximumBitrate +EnhancedCoverageRestricted N s1ap.ies id-EnhancedCoverageRestricted +DLNASPDUDeliveryAckRequest N s1ap.ies id-DLNASPDUDeliveryAckRequest +DCN-ID N s1ap.ies id-DCN-ID +Coverage-Level N s1ap.ies id-Coverage-Level +ServedDCNs N s1ap.ies id-ServedDCNs +DL-CP-SecurityInformation N s1ap.ies id-DL-CP-SecurityInformation +E-RABLevelQoSParameters N s1ap.ies id-UE-Level-QoS-Parameters +UL-CP-SecurityInformation N s1ap.ies id-UL-CP-SecurityInformation #S1AP-PROTOCOL-IES-PAIR #RAB-SetupOrModifyItemFirst N s1ap.ies.pair.first id-RAB-SetupOrModifyItem @@ -1756,181 +1781,201 @@ UEContextResumeRequest N s1ap.proc.imsg id-UEContextResume UEContextResumeResponse N s1ap.proc.sout id-UEContextResume UEContextResumeFailure N s1ap.proc.uout id-UEContextResume +NASDeliveryIndication N s1ap.proc.imsg id-NASDeliveryIndication + +RetrieveUEInformation N s1ap.proc.imsg id-RetrieveUEInformation + +UEInformationTransfer N s1ap.proc.imsg id-UEInformationTransfer + +ENBCPRelocationIndication N s1ap.proc.imsg id-eNBCPRelocationIndication + +MMECPRelocationIndication N s1ap.proc.imsg id-MMECPRelocationIndication + #.FN_HDR HandoverRequired -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequired"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequired"); #.FN_HDR HandoverCommand -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCommand"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCommand"); #.FN_HDR HandoverPreparationFailure -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverPreparationFailure"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverPreparationFailure"); #.FN_HDR HandoverRequest -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequest"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequest"); #.FN_HDR HandoverRequestAcknowledge -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequestAcknowledge"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequestAcknowledge"); #.FN_HDR HandoverFailure -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverFailure"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverFailure"); #.FN_HDR HandoverNotify -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverNotify"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverNotify"); #.FN_HDR PathSwitchRequest -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequest"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequest"); #.FN_HDR PathSwitchRequestAcknowledge -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestAcknowledge"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestAcknowledge"); #.FN_HDR PathSwitchRequestFailure -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestFailure"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestFailure"); #.FN_HDR HandoverCancel -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancel"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancel"); #.FN_HDR HandoverCancelAcknowledge -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancelAcknowledge"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancelAcknowledge"); #.FN_HDR E-RABSetupRequest -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABSetupRequest"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABSetupRequest"); #.FN_HDR E-RABSetupResponse -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABSetupResponse"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABSetupResponse"); #.FN_HDR E-RABModifyRequest -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModifyRequest"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModifyRequest"); #.FN_HDR E-RABModifyResponse -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModifyResponse"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModifyResponse"); #.FN_HDR E-RABReleaseCommand -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseCommand"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseCommand"); #.FN_HDR E-RABReleaseResponse -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseResponse"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseResponse"); #.FN_HDR E-RABReleaseIndication -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseIndication"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseIndication"); #.FN_HDR InitialContextSetupRequest -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupRequest"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupRequest"); #.FN_HDR InitialContextSetupResponse -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupResponse"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupResponse"); #.FN_HDR InitialContextSetupFailure -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupFailure"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupFailure"); #.FN_HDR Paging -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Paging"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Paging"); #.FN_HDR UEContextReleaseRequest -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseRequest"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseRequest"); #.FN_HDR UEContextReleaseCommand -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseCommand"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseCommand"); #.FN_HDR UEContextReleaseComplete -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseComplete"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseComplete"); #.FN_HDR UEContextModificationRequest -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationRequest"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationRequest"); #.FN_HDR UEContextModificationResponse -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationResponse"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationResponse"); #.FN_HDR UEContextModificationFailure -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationFailure"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationFailure"); #.FN_HDR UERadioCapabilityMatchRequest -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityMatchRequest"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityMatchRequest"); #.FN_HDR UERadioCapabilityMatchResponse -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityMatchResponse"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityMatchResponse"); #.FN_HDR DownlinkNASTransport -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkNASTransport"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkNASTransport"); #.FN_HDR InitialUEMessage -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialUEMessage"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialUEMessage"); #.FN_HDR UplinkNASTransport -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkNASTransport"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkNASTransport"); #.FN_HDR NASNonDeliveryIndication -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NASNonDeliveryIndication"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NASNonDeliveryIndication"); #.FN_HDR RerouteNASRequest -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RerouteNASRequest"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RerouteNASRequest"); #.FN_HDR Reset -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Reset"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Reset"); #.FN_HDR ResetAcknowledge -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetAcknowledge"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetAcknowledge"); # FN_HDR ErrorIndication #col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ErrorIndication"); #.FN_HDR S1SetupRequest -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupRequest"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupRequest"); #.FN_HDR S1SetupResponse -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupResponse"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupResponse"); #.FN_HDR S1SetupFailure -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupFailure"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupFailure"); #.FN_HDR ENBConfigurationUpdate -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdate"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdate"); #.FN_HDR ENBConfigurationUpdateAcknowledge -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdateAcknowledge"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdateAcknowledge"); #.FN_HDR ENBConfigurationUpdateFailure -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdateFailure"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdateFailure"); #.FN_HDR MMEConfigurationUpdate -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdate"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdate"); #.FN_HDR MMEConfigurationUpdateAcknowledge -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdateAcknowledge"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdateAcknowledge"); #.FN_HDR MMEConfigurationUpdateFailure -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdateFailure"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdateFailure"); #.FN_HDR DownlinkS1cdma2000tunnelling -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkS1cdma2000tunnelling"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkS1cdma2000tunnelling"); #.FN_HDR UplinkS1cdma2000tunnelling -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkS1cdma2000tunnelling"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkS1cdma2000tunnelling"); #.FN_HDR UECapabilityInfoIndication -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UECapabilityInfoIndication"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UECapabilityInfoIndication"); #.FN_HDR ENBStatusTransfer -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBStatusTransfer"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBStatusTransfer"); #.FN_HDR MMEStatusTransfer -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEStatusTransfer"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEStatusTransfer"); #.FN_HDR TraceStart -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceStart"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceStart"); #.FN_HDR TraceFailureIndication -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceFailureIndication"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceFailureIndication"); #.FN_HDR DeactivateTrace -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DeactivateTrace"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DeactivateTrace"); #.FN_HDR CellTrafficTrace -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CellTrafficTrace"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CellTrafficTrace"); #.FN_HDR LocationReportingControl -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReportingControl"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReportingControl"); #.FN_HDR LocationReportingFailureIndication -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReportingFailureIndication"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReportingFailureIndication"); #.FN_HDR LocationReport -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReport"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReport"); #.FN_HDR OverloadStart -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "OverloadStart"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "OverloadStart"); #.FN_HDR OverloadStop -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "OverloadStop"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "OverloadStop"); #.FN_HDR WriteReplaceWarningRequest -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningRequest"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningRequest"); #.FN_HDR WriteReplaceWarningResponse -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningResponse"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningResponse"); #.FN_HDR ENBDirectInformationTransfer -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBDirectInformationTransfer"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBDirectInformationTransfer"); #.FN_HDR MMEDirectInformationTransfer -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEDirectInformationTransfer"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEDirectInformationTransfer"); #.FN_HDR ENBConfigurationTransfer -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationTransfer"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationTransfer"); #.FN_HDR MMEConfigurationTransfer -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationTransfer"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationTransfer"); #.FN_HDR PrivateMessage -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PrivateMessage"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PrivateMessage"); #.FN_HDR KillRequest -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "KillRequest"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "KillRequest"); #.FN_HDR KillResponse -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "KillResponse"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "KillResponse"); #.FN_HDR PWSRestartIndication -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSRestartIndication"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSRestartIndication"); #.FN_HDR PWSFailureIndication -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSFailureIndication"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSFailureIndication"); #.FN_HDR DownlinkUEAssociatedLPPaTransport -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkUEAssociatedLPPaTransport"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkUEAssociatedLPPaTransport"); #.FN_HDR UplinkUEAssociatedLPPaTransport -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkUEAssociatedLPPaTransport"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkUEAssociatedLPPaTransport"); #.FN_HDR DownlinkNonUEAssociatedLPPaTransport -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkNonUEAssociatedLPPaTransport"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkNonUEAssociatedLPPaTransport"); #.FN_HDR UplinkNonUEAssociatedLPPaTransport -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkNonUEAssociatedLPPaTransport"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkNonUEAssociatedLPPaTransport"); #.FN_HDR E-RABModificationIndication -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModificationIndication"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModificationIndication"); #.FN_HDR E-RABModificationConfirm -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModificationConfirm"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModificationConfirm"); #.FN_HDR UEContextModificationIndication -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationIndication"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationIndication"); #.FN_HDR UEContextModificationConfirm -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationConfirm"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationConfirm"); #.FN_HDR UEContextSuspendRequest -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSuspendRequest"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSuspendRequest"); #.FN_HDR UEContextSuspendResponse -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSuspendResponse"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSuspendResponse"); #.FN_HDR UEContextResumeRequest -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeRequest"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeRequest"); #.FN_HDR UEContextResumeResponse -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeResponse"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeResponse"); #.FN_HDR UEContextResumeFailure -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeFailure"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeFailure"); #.FN_HDR ConnectionEstablishmentIndication -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ConnectionEstablishmentIndication"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ConnectionEstablishmentIndication"); +#.FN_HDR NASDeliveryIndication + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NASDeliveryIndication"); +#.FN_HDR RetrieveUEInformation + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RetrieveUEInformation"); +#.FN_HDR UEInformationTransfer + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEInformationTransfer"); +#.FN_HDR ENBCPRelocationIndication + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBCPRelocationIndication"); +#.FN_HDR MMECPRelocationIndication + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMECPRelocationIndication"); #.END # Whenever a Cause appears, look up the reason and show it in the Info column diff --git a/epan/dissectors/packet-s1ap.c b/epan/dissectors/packet-s1ap.c index cf44a97459..e840eacfbf 100644 --- a/epan/dissectors/packet-s1ap.c +++ b/epan/dissectors/packet-s1ap.c @@ -30,7 +30,7 @@ * * Based on the RANAP dissector * - * References: 3GPP TS 36.413 V13.6.0 (2017-06) + * References: 3GPP TS 36.413 V14.3.0 (2017-06) */ #include "config.h" @@ -94,6 +94,7 @@ static dissector_handle_t bssgp_handle; #define maxnoofCellsineNB 256 #define maxnoofTAIforWarning 65535 #define maxnoofCellID 65535 +#define maxnoofDCNs 32 #define maxnoofEmergencyAreaID 65535 #define maxnoofCellinTAI 65535 #define maxnoofCellinEAI 65535 @@ -174,7 +175,12 @@ typedef enum _ProcedureCode_enum { id_UEContextModificationIndication = 53, id_ConnectionEstablishmentIndication = 54, id_UEContextSuspend = 55, - id_UEContextResume = 56 + id_UEContextResume = 56, + id_NASDeliveryIndication = 57, + id_RetrieveUEInformation = 58, + id_UEInformationTransfer = 59, + id_eNBCPRelocationIndication = 60, + id_MMECPRelocationIndication = 61 } ProcedureCode_enum; typedef enum _ProtocolIE_ID_enum { @@ -416,12 +422,21 @@ typedef enum _ProtocolIE_ID_enum { id_E_RABFailedToResumeListResumeRes = 237, id_E_RABFailedToResumeItemResumeRes = 238, id_NB_IoT_Paging_eDRXInformation = 239, - id_Unknown_240 = 240, + id_V2XServicesAuthorized = 240, id_UEUserPlaneCIoTSupportIndicator = 241, id_CE_mode_B_SupportIndicator = 242, id_SRVCCOperationNotPossible = 243, id_NB_IoT_UEIdentityIndexValue = 244, - id_RRC_Resume_Cause = 245 + id_RRC_Resume_Cause = 245, + id_DCN_ID = 246, + id_ServedDCNs = 247, + id_UESidelinkAggregateMaximumBitrate = 248, + id_DLNASPDUDeliveryAckRequest = 249, + id_Coverage_Level = 250, + id_EnhancedCoverageRestricted = 251, + id_UE_Level_QoS_Parameters = 252, + id_DL_CP_SecurityInformation = 253, + id_UL_CP_SecurityInformation = 254 } ProtocolIE_ID_enum; typedef enum _RAT_Type_enum { @@ -499,10 +514,15 @@ static int hf_s1ap_CSG_IdList_PDU = -1; /* CSG_IdList */ static int hf_s1ap_CSGMembershipStatus_PDU = -1; /* CSGMembershipStatus */ static int hf_s1ap_COUNTValueExtended_PDU = -1; /* COUNTValueExtended */ static int hf_s1ap_COUNTvaluePDCP_SNlength18_PDU = -1; /* COUNTvaluePDCP_SNlength18 */ +static int hf_s1ap_Coverage_Level_PDU = -1; /* Coverage_Level */ static int hf_s1ap_CriticalityDiagnostics_PDU = -1; /* CriticalityDiagnostics */ static int hf_s1ap_DataCodingScheme_PDU = -1; /* DataCodingScheme */ +static int hf_s1ap_DCN_ID_PDU = -1; /* DCN_ID */ +static int hf_s1ap_ServedDCNs_PDU = -1; /* ServedDCNs */ +static int hf_s1ap_DL_CP_SecurityInformation_PDU = -1; /* DL_CP_SecurityInformation */ static int hf_s1ap_Direct_Forwarding_Path_Availability_PDU = -1; /* Direct_Forwarding_Path_Availability */ 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_EmergencyAreaIDListForRestart_PDU = -1; /* EmergencyAreaIDListForRestart */ static int hf_s1ap_s1ap_Global_ENB_ID_PDU = -1; /* Global_ENB_ID */ @@ -510,9 +530,11 @@ 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_EnhancedCoverageRestricted_PDU = -1; /* EnhancedCoverageRestricted */ static int hf_s1ap_E_RABInformationListItem_PDU = -1; /* E_RABInformationListItem */ static int hf_s1ap_E_RABList_PDU = -1; /* E_RABList */ static int hf_s1ap_E_RABItem_PDU = -1; /* E_RABItem */ +static int hf_s1ap_E_RABLevelQoSParameters_PDU = -1; /* E_RABLevelQoSParameters */ static int hf_s1ap_EUTRAN_CGI_PDU = -1; /* EUTRAN_CGI */ static int hf_s1ap_EUTRANRoundTripDelayEstimationInfo_PDU = -1; /* EUTRANRoundTripDelayEstimationInfo */ static int hf_s1ap_ExpectedUEBehaviour_PDU = -1; /* ExpectedUEBehaviour */ @@ -617,10 +639,13 @@ static int hf_s1ap_UEPagingID_PDU = -1; /* UEPagingID */ static int hf_s1ap_UERadioCapability_PDU = -1; /* UERadioCapability */ static int hf_s1ap_UERadioCapabilityForPaging_PDU = -1; /* UERadioCapabilityForPaging */ static int hf_s1ap_UESecurityCapabilities_PDU = -1; /* UESecurityCapabilities */ +static int hf_s1ap_UESidelinkAggregateMaximumBitrate_PDU = -1; /* UESidelinkAggregateMaximumBitrate */ static int hf_s1ap_UE_Usage_Type_PDU = -1; /* UE_Usage_Type */ +static int hf_s1ap_UL_CP_SecurityInformation_PDU = -1; /* UL_CP_SecurityInformation */ static int hf_s1ap_UserLocationInformation_PDU = -1; /* UserLocationInformation */ static int hf_s1ap_UEUserPlaneCIoTSupportIndicator_PDU = -1; /* UEUserPlaneCIoTSupportIndicator */ static int hf_s1ap_VoiceSupportMatchIndicator_PDU = -1; /* VoiceSupportMatchIndicator */ +static int hf_s1ap_V2XServicesAuthorized_PDU = -1; /* V2XServicesAuthorized */ static int hf_s1ap_WarningAreaList_PDU = -1; /* WarningAreaList */ static int hf_s1ap_WarningType_PDU = -1; /* WarningType */ static int hf_s1ap_WarningSecurityInfo_PDU = -1; /* WarningSecurityInfo */ @@ -693,6 +718,7 @@ static int hf_s1ap_UplinkNASTransport_PDU = -1; /* UplinkNASTransport */ static int hf_s1ap_NASNonDeliveryIndication_PDU = -1; /* NASNonDeliveryIndication */ static int hf_s1ap_RerouteNASRequest_PDU = -1; /* RerouteNASRequest */ static int hf_s1ap_S1_Message_PDU = -1; /* S1_Message */ +static int hf_s1ap_NASDeliveryIndication_PDU = -1; /* NASDeliveryIndication */ static int hf_s1ap_Reset_PDU = -1; /* Reset */ static int hf_s1ap_ResetType_PDU = -1; /* ResetType */ static int hf_s1ap_ResetAcknowledge_PDU = -1; /* ResetAcknowledge */ @@ -758,6 +784,10 @@ static int hf_s1ap_E_RABFailedToResumeListResumeRes_PDU = -1; /* E_RABFailedToR static int hf_s1ap_E_RABFailedToResumeItemResumeRes_PDU = -1; /* E_RABFailedToResumeItemResumeRes */ static int hf_s1ap_UEContextResumeFailure_PDU = -1; /* UEContextResumeFailure */ static int hf_s1ap_ConnectionEstablishmentIndication_PDU = -1; /* ConnectionEstablishmentIndication */ +static int hf_s1ap_RetrieveUEInformation_PDU = -1; /* RetrieveUEInformation */ +static int hf_s1ap_UEInformationTransfer_PDU = -1; /* UEInformationTransfer */ +static int hf_s1ap_ENBCPRelocationIndication_PDU = -1; /* ENBCPRelocationIndication */ +static int hf_s1ap_MMECPRelocationIndication_PDU = -1; /* MMECPRelocationIndication */ static int hf_s1ap_S1AP_PDU_PDU = -1; /* S1AP_PDU */ static int hf_s1ap_s1ap_SONtransferApplicationIdentity_PDU = -1; /* SONtransferApplicationIdentity */ static int hf_s1ap_s1ap_SONtransferRequestContainer_PDU = -1; /* SONtransferRequestContainer */ @@ -842,6 +872,10 @@ static int hf_s1ap_CriticalityDiagnostics_IE_List_item = -1; /* CriticalityDiag static int hf_s1ap_iECriticality = -1; /* Criticality */ static int hf_s1ap_iE_ID = -1; /* ProtocolIE_ID */ static int hf_s1ap_typeOfError = -1; /* TypeOfError */ +static int hf_s1ap_ServedDCNs_item = -1; /* ServedDCNsItem */ +static int hf_s1ap_dCN_ID = -1; /* DCN_ID */ +static int hf_s1ap_relativeDCNCapacity = -1; /* RelativeMMECapacity */ +static int hf_s1ap_dl_NAS_MAC = -1; /* DL_NAS_MAC */ static int hf_s1ap_ECGIList_item = -1; /* EUTRAN_CGI */ static int hf_s1ap_PWSfailedECGIList_item = -1; /* EUTRAN_CGI */ static int hf_s1ap_EmergencyAreaIDList_item = -1; /* EmergencyAreaID */ @@ -855,6 +889,8 @@ static int hf_s1ap_ECGI_List_item = -1; /* EUTRAN_CGI */ static int hf_s1ap_EmergencyAreaIDListForRestart_item = -1; /* EmergencyAreaID */ static int hf_s1ap_macroENB_ID = -1; /* BIT_STRING_SIZE_20 */ static int hf_s1ap_homeENB_ID = -1; /* BIT_STRING_SIZE_28 */ +static int hf_s1ap_short_macroENB_ID = -1; /* BIT_STRING_SIZE_18 */ +static int hf_s1ap_long_macroENB_ID = -1; /* BIT_STRING_SIZE_21 */ static int hf_s1ap_lAI = -1; /* LAI */ static int hf_s1ap_eNB_ID = -1; /* ENB_ID */ static int hf_s1ap_GUMMEIList_item = -1; /* GUMMEI */ @@ -1027,8 +1063,13 @@ static int hf_s1ap_s_TMSI = -1; /* S_TMSI */ static int hf_s1ap_iMSI = -1; /* IMSI */ static int hf_s1ap_encryptionAlgorithms = -1; /* EncryptionAlgorithms */ static int hf_s1ap_integrityProtectionAlgorithms = -1; /* IntegrityProtectionAlgorithms */ +static int hf_s1ap_uESidelinkAggregateMaximumBitRate = -1; /* BitRate */ +static int hf_s1ap_ul_NAS_MAC = -1; /* UL_NAS_MAC */ +static int hf_s1ap_ul_NAS_Count = -1; /* UL_NAS_Count */ static int hf_s1ap_eutran_cgi = -1; /* EUTRAN_CGI */ static int hf_s1ap_tai = -1; /* TAI */ +static int hf_s1ap_vehicleUE = -1; /* VehicleUE */ +static int hf_s1ap_pedestrianUE = -1; /* PedestrianUE */ static int hf_s1ap_cellIDList = -1; /* ECGIList */ static int hf_s1ap_trackingAreaListforWarning = -1; /* TAIListforWarning */ static int hf_s1ap_emergencyAreaIDList = -1; /* EmergencyAreaIDList */ @@ -1219,6 +1260,9 @@ static gint ett_s1ap_COUNTvaluePDCP_SNlength18 = -1; static gint ett_s1ap_CriticalityDiagnostics = -1; static gint ett_s1ap_CriticalityDiagnostics_IE_List = -1; static gint ett_s1ap_CriticalityDiagnostics_IE_Item = -1; +static gint ett_s1ap_ServedDCNs = -1; +static gint ett_s1ap_ServedDCNsItem = -1; +static gint ett_s1ap_DL_CP_SecurityInformation = -1; static gint ett_s1ap_ECGIList = -1; static gint ett_s1ap_PWSfailedECGIList = -1; static gint ett_s1ap_EmergencyAreaIDList = -1; @@ -1338,7 +1382,10 @@ static gint ett_s1ap_UE_associatedLogicalS1_ConnectionItem = -1; static gint ett_s1ap_UE_HistoryInformation = -1; static gint ett_s1ap_UEPagingID = -1; static gint ett_s1ap_UESecurityCapabilities = -1; +static gint ett_s1ap_UESidelinkAggregateMaximumBitrate = -1; +static gint ett_s1ap_UL_CP_SecurityInformation = -1; static gint ett_s1ap_UserLocationInformation = -1; +static gint ett_s1ap_V2XServicesAuthorized = -1; static gint ett_s1ap_WarningAreaList = -1; static gint ett_s1ap_X2TNLConfigurationInfo = -1; static gint ett_s1ap_ENBX2ExtTLAs = -1; @@ -1403,6 +1450,7 @@ static gint ett_s1ap_InitialUEMessage = -1; static gint ett_s1ap_UplinkNASTransport = -1; static gint ett_s1ap_NASNonDeliveryIndication = -1; static gint ett_s1ap_RerouteNASRequest = -1; +static gint ett_s1ap_NASDeliveryIndication = -1; static gint ett_s1ap_Reset = -1; static gint ett_s1ap_ResetType = -1; static gint ett_s1ap_UE_associatedLogicalS1_ConnectionListRes = -1; @@ -1465,6 +1513,10 @@ static gint ett_s1ap_UEContextResumeResponse = -1; static gint ett_s1ap_E_RABFailedToResumeItemResumeRes = -1; static gint ett_s1ap_UEContextResumeFailure = -1; static gint ett_s1ap_ConnectionEstablishmentIndication = -1; +static gint ett_s1ap_RetrieveUEInformation = -1; +static gint ett_s1ap_UEInformationTransfer = -1; +static gint ett_s1ap_ENBCPRelocationIndication = -1; +static gint ett_s1ap_MMECPRelocationIndication = -1; static gint ett_s1ap_S1AP_PDU = -1; static gint ett_s1ap_InitiatingMessage = -1; static gint ett_s1ap_SuccessfulOutcome = -1; @@ -1838,6 +1890,11 @@ static const value_string s1ap_ProcedureCode_vals[] = { { id_ConnectionEstablishmentIndication, "id-ConnectionEstablishmentIndication" }, { id_UEContextSuspend, "id-UEContextSuspend" }, { id_UEContextResume, "id-UEContextResume" }, + { id_NASDeliveryIndication, "id-NASDeliveryIndication" }, + { id_RetrieveUEInformation, "id-RetrieveUEInformation" }, + { id_UEInformationTransfer, "id-UEInformationTransfer" }, + { id_eNBCPRelocationIndication, "id-eNBCPRelocationIndication" }, + { id_MMECPRelocationIndication, "id-MMECPRelocationIndication" }, { 0, NULL } }; @@ -2111,12 +2168,21 @@ static const value_string s1ap_ProtocolIE_ID_vals[] = { { id_E_RABFailedToResumeListResumeRes, "id-E-RABFailedToResumeListResumeRes" }, { id_E_RABFailedToResumeItemResumeRes, "id-E-RABFailedToResumeItemResumeRes" }, { id_NB_IoT_Paging_eDRXInformation, "id-NB-IoT-Paging-eDRXInformation" }, - { id_Unknown_240, "id-Unknown-240" }, + { id_V2XServicesAuthorized, "id-V2XServicesAuthorized" }, { id_UEUserPlaneCIoTSupportIndicator, "id-UEUserPlaneCIoTSupportIndicator" }, { id_CE_mode_B_SupportIndicator, "id-CE-mode-B-SupportIndicator" }, { id_SRVCCOperationNotPossible, "id-SRVCCOperationNotPossible" }, { id_NB_IoT_UEIdentityIndexValue, "id-NB-IoT-UEIdentityIndexValue" }, { id_RRC_Resume_Cause, "id-RRC-Resume-Cause" }, + { id_DCN_ID, "id-DCN-ID" }, + { id_ServedDCNs, "id-ServedDCNs" }, + { id_UESidelinkAggregateMaximumBitrate, "id-UESidelinkAggregateMaximumBitrate" }, + { id_DLNASPDUDeliveryAckRequest, "id-DLNASPDUDeliveryAckRequest" }, + { id_Coverage_Level, "id-Coverage-Level" }, + { id_EnhancedCoverageRestricted, "id-EnhancedCoverageRestricted" }, + { id_UE_Level_QoS_Parameters, "id-UE-Level-QoS-Parameters" }, + { id_DL_CP_SecurityInformation, "id-DL-CP-SecurityInformation" }, + { id_UL_CP_SecurityInformation, "id-UL-CP-SecurityInformation" }, { 0, NULL } }; @@ -3428,7 +3494,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 1939 "./asn1/s1ap/s1ap.cnf" +#line 1984 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 36, &value, TRUE, 3, NULL); @@ -3450,7 +3516,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 1944 "./asn1/s1ap/s1ap.cnf" +#line 1989 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 2, &value, TRUE, 0, NULL); @@ -3475,7 +3541,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 1949 "./asn1/s1ap/s1ap.cnf" +#line 1994 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 4, &value, TRUE, 1, NULL); @@ -3502,7 +3568,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 1954 "./asn1/s1ap/s1ap.cnf" +#line 1999 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 7, &value, TRUE, 0, NULL); @@ -3528,7 +3594,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 1959 "./asn1/s1ap/s1ap.cnf" +#line 2004 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 6, &value, TRUE, 0, NULL); @@ -4055,6 +4121,21 @@ dissect_s1ap_COUNTvaluePDCP_SNlength18(tvbuff_t *tvb _U_, int offset _U_, asn1_c } +static const value_string s1ap_Coverage_Level_vals[] = { + { 0, "extendedcoverage" }, + { 0, NULL } +}; + + +static int +dissect_s1ap_Coverage_Level(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_TypeOfError_vals[] = { { 0, "not-understood" }, { 1, "missing" }, @@ -4142,6 +4223,81 @@ dissect_s1ap_DataCodingScheme(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act } + +static int +dissect_s1ap_DCN_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 65535U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_s1ap_RelativeMMECapacity(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, 255U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t ServedDCNsItem_sequence[] = { + { &hf_s1ap_dCN_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_DCN_ID }, + { &hf_s1ap_relativeDCNCapacity, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_RelativeMMECapacity }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_ServedDCNsItem(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_ServedDCNsItem, ServedDCNsItem_sequence); + + return offset; +} + + +static const per_sequence_t ServedDCNs_sequence_of[1] = { + { &hf_s1ap_ServedDCNs_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_ServedDCNsItem }, +}; + +static int +dissect_s1ap_ServedDCNs(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_ServedDCNs, ServedDCNs_sequence_of, + 0, maxnoofDCNs, FALSE); + + return offset; +} + + + +static int +dissect_s1ap_DL_NAS_MAC(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, + 16, 16, FALSE, NULL, NULL); + + return offset; +} + + +static const per_sequence_t DL_CP_SecurityInformation_sequence[] = { + { &hf_s1ap_dl_NAS_MAC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_DL_NAS_MAC }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_DL_CP_SecurityInformation(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_DL_CP_SecurityInformation, DL_CP_SecurityInformation_sequence); + + return offset; +} + + static const value_string s1ap_DL_Forwarding_vals[] = { { 0, "dL-Forwarding-proposed" }, { 0, NULL } @@ -4187,6 +4343,21 @@ dissect_s1ap_Data_Forwarding_Not_Possible(tvbuff_t *tvb _U_, int offset _U_, asn } +static const value_string s1ap_DLNASPDUDeliveryAckRequest_vals[] = { + { 0, "requested" }, + { 0, NULL } +}; + + +static int +dissect_s1ap_DLNASPDUDeliveryAckRequest(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 int dissect_s1ap_EARFCN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -4287,15 +4458,39 @@ dissect_s1ap_BIT_STRING_SIZE_28(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a } + +static int +dissect_s1ap_BIT_STRING_SIZE_18(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 18, 18, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_s1ap_BIT_STRING_SIZE_21(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 21, 21, FALSE, NULL, NULL); + + return offset; +} + + static const value_string s1ap_ENB_ID_vals[] = { { 0, "macroENB-ID" }, { 1, "homeENB-ID" }, + { 2, "short-macroENB-ID" }, + { 3, "long-macroENB-ID" }, { 0, NULL } }; static const per_choice_t ENB_ID_choice[] = { { 0, &hf_s1ap_macroENB_ID , ASN1_EXTENSION_ROOT , dissect_s1ap_BIT_STRING_SIZE_20 }, { 1, &hf_s1ap_homeENB_ID , ASN1_EXTENSION_ROOT , dissect_s1ap_BIT_STRING_SIZE_28 }, + { 2, &hf_s1ap_short_macroENB_ID, ASN1_NOT_EXTENSION_ROOT, dissect_s1ap_BIT_STRING_SIZE_18 }, + { 3, &hf_s1ap_long_macroENB_ID, ASN1_NOT_EXTENSION_ROOT, dissect_s1ap_BIT_STRING_SIZE_21 }, { 0, NULL, 0, NULL } }; @@ -4514,6 +4709,21 @@ dissect_s1ap_EncryptionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } +static const value_string s1ap_EnhancedCoverageRestricted_vals[] = { + { 0, "restricted" }, + { 0, NULL } +}; + + +static int +dissect_s1ap_EnhancedCoverageRestricted(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 EPLMNs_sequence_of[1] = { { &hf_s1ap_EPLMNs_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_PLMNidentity }, }; @@ -6306,7 +6516,8 @@ static const value_string s1ap_OverloadAction_vals[] = { { 2, "permit-emergency-sessions-and-mobile-terminated-services-only" }, { 3, "permit-high-priority-sessions-and-mobile-terminated-services-only" }, { 4, "reject-delay-tolerant-access" }, - { 5, "permit-high-priority-sessions-and-exception-reporting-and-mobile-terminated-services-only" }, + { 5, "not-accept-mo-data-or-delay-tolerant-access-from-CP-CIoT" }, + { 6, "permit-high-priority-sessions-and-exception-reporting-and-mobile-terminated-services-only" }, { 0, NULL } }; @@ -6314,7 +6525,7 @@ static const value_string s1ap_OverloadAction_vals[] = { static int dissect_s1ap_OverloadAction(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, - 3, NULL, TRUE, 3, NULL); + 3, NULL, TRUE, 4, NULL); return offset; } @@ -6612,16 +6823,6 @@ dissect_s1ap_RecommendedENBItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a } - -static int -dissect_s1ap_RelativeMMECapacity(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, 255U, NULL, FALSE); - - return offset; -} - - static const value_string s1ap_RelayNode_Indicator_vals[] = { { 0, "true" }, { 0, NULL } @@ -8007,6 +8208,21 @@ dissect_s1ap_UESecurityCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ } +static const per_sequence_t UESidelinkAggregateMaximumBitrate_sequence[] = { + { &hf_s1ap_uESidelinkAggregateMaximumBitRate, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_BitRate }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_UESidelinkAggregateMaximumBitrate(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_UESidelinkAggregateMaximumBitrate, UESidelinkAggregateMaximumBitrate_sequence); + + return offset; +} + + static int dissect_s1ap_UE_Usage_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -8017,6 +8233,42 @@ dissect_s1ap_UE_Usage_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ } + +static int +dissect_s1ap_UL_NAS_MAC(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, + 16, 16, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_s1ap_UL_NAS_Count(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, + 5, 5, FALSE, NULL, NULL); + + return offset; +} + + +static const per_sequence_t UL_CP_SecurityInformation_sequence[] = { + { &hf_s1ap_ul_NAS_MAC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_UL_NAS_MAC }, + { &hf_s1ap_ul_NAS_Count , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_UL_NAS_Count }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_UL_CP_SecurityInformation(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_UL_CP_SecurityInformation, UL_CP_SecurityInformation_sequence); + + return offset; +} + + static const per_sequence_t UserLocationInformation_sequence[] = { { &hf_s1ap_eutran_cgi , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_EUTRAN_CGI }, { &hf_s1ap_tai , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_TAI }, @@ -8064,6 +8316,54 @@ dissect_s1ap_VoiceSupportMatchIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ } +static const value_string s1ap_VehicleUE_vals[] = { + { 0, "authorized" }, + { 1, "not-authorized" }, + { 0, NULL } +}; + + +static int +dissect_s1ap_VehicleUE(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_PedestrianUE_vals[] = { + { 0, "authorized" }, + { 1, "not-authorized" }, + { 0, NULL } +}; + + +static int +dissect_s1ap_PedestrianUE(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 per_sequence_t V2XServicesAuthorized_sequence[] = { + { &hf_s1ap_vehicleUE , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_VehicleUE }, + { &hf_s1ap_pedestrianUE , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_PedestrianUE }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_V2XServicesAuthorized(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_V2XServicesAuthorized, V2XServicesAuthorized_sequence); + + return offset; +} + + static const value_string s1ap_WarningAreaList_vals[] = { { 0, "cellIDList" }, { 1, "trackingAreaListforWarning" }, @@ -8223,7 +8523,7 @@ dissect_s1ap_HandoverRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act #line 361 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); s1ap_data->handover_type_value = 0; -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequired"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequired"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_HandoverRequired, HandoverRequired_sequence); @@ -8242,7 +8542,7 @@ dissect_s1ap_HandoverCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx #line 364 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); s1ap_data->handover_type_value = 0; -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCommand"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCommand"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_HandoverCommand, HandoverCommand_sequence); @@ -8286,8 +8586,8 @@ 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 1765 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverPreparationFailure"); +#line 1800 "./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, ett_s1ap_HandoverPreparationFailure, HandoverPreparationFailure_sequence); @@ -8306,7 +8606,7 @@ dissect_s1ap_HandoverRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx #line 367 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); s1ap_data->handover_type_value = 0; -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequest"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_HandoverRequest, HandoverRequest_sequence); @@ -8353,7 +8653,7 @@ dissect_s1ap_HandoverRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); s1ap_data->handover_type_value = 0; -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequestAcknowledge"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequestAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_HandoverRequestAcknowledge, HandoverRequestAcknowledge_sequence); @@ -8424,8 +8724,8 @@ 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 1771 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverFailure"); +#line 1806 "./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, ett_s1ap_HandoverFailure, HandoverFailure_sequence); @@ -8441,8 +8741,8 @@ 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 1773 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverNotify"); +#line 1808 "./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, ett_s1ap_HandoverNotify, HandoverNotify_sequence); @@ -8458,8 +8758,8 @@ 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 1775 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequest"); +#line 1810 "./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, ett_s1ap_PathSwitchRequest, PathSwitchRequest_sequence); @@ -8501,8 +8801,8 @@ 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 1777 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestAcknowledge"); +#line 1812 "./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, ett_s1ap_PathSwitchRequestAcknowledge, PathSwitchRequestAcknowledge_sequence); @@ -8544,8 +8844,8 @@ 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 1779 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestFailure"); +#line 1814 "./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, ett_s1ap_PathSwitchRequestFailure, PathSwitchRequestFailure_sequence); @@ -8561,8 +8861,8 @@ 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 1781 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancel"); +#line 1816 "./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, ett_s1ap_HandoverCancel, HandoverCancel_sequence); @@ -8578,8 +8878,8 @@ 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 1783 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancelAcknowledge"); +#line 1818 "./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, ett_s1ap_HandoverCancelAcknowledge, HandoverCancelAcknowledge_sequence); @@ -8595,8 +8895,8 @@ 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 1785 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABSetupRequest"); +#line 1820 "./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, ett_s1ap_E_RABSetupRequest, E_RABSetupRequest_sequence); @@ -8645,8 +8945,8 @@ 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 1787 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABSetupResponse"); +#line 1822 "./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, ett_s1ap_E_RABSetupResponse, E_RABSetupResponse_sequence); @@ -8693,8 +8993,8 @@ 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 1789 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModifyRequest"); +#line 1824 "./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, ett_s1ap_E_RABModifyRequest, E_RABModifyRequest_sequence); @@ -8741,8 +9041,8 @@ 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 1791 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModifyResponse"); +#line 1826 "./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, ett_s1ap_E_RABModifyResponse, E_RABModifyResponse_sequence); @@ -8787,8 +9087,8 @@ 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 1793 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseCommand"); +#line 1828 "./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, ett_s1ap_E_RABReleaseCommand, E_RABReleaseCommand_sequence); @@ -8804,8 +9104,8 @@ 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 1795 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseResponse"); +#line 1830 "./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, ett_s1ap_E_RABReleaseResponse, E_RABReleaseResponse_sequence); @@ -8850,8 +9150,8 @@ 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 1797 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseIndication"); +#line 1832 "./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, ett_s1ap_E_RABReleaseIndication, E_RABReleaseIndication_sequence); @@ -8867,8 +9167,8 @@ 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 1799 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupRequest"); +#line 1834 "./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, ett_s1ap_InitialContextSetupRequest, InitialContextSetupRequest_sequence); @@ -8917,8 +9217,8 @@ 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 1801 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupResponse"); +#line 1836 "./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, ett_s1ap_InitialContextSetupResponse, InitialContextSetupResponse_sequence); @@ -8965,8 +9265,8 @@ 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 1803 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupFailure"); +#line 1838 "./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, ett_s1ap_InitialContextSetupFailure, InitialContextSetupFailure_sequence); @@ -8982,8 +9282,8 @@ 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 1805 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Paging"); +#line 1840 "./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, ett_s1ap_Paging, Paging_sequence); @@ -9028,8 +9328,8 @@ 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 1807 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseRequest"); +#line 1842 "./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, ett_s1ap_UEContextReleaseRequest, UEContextReleaseRequest_sequence); @@ -9045,8 +9345,8 @@ 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 1809 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseCommand"); +#line 1844 "./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, ett_s1ap_UEContextReleaseCommand, UEContextReleaseCommand_sequence); @@ -9062,8 +9362,8 @@ 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 1811 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseComplete"); +#line 1846 "./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, ett_s1ap_UEContextReleaseComplete, UEContextReleaseComplete_sequence); @@ -9079,8 +9379,8 @@ 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 1813 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationRequest"); +#line 1848 "./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, ett_s1ap_UEContextModificationRequest, UEContextModificationRequest_sequence); @@ -9096,8 +9396,8 @@ 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 1815 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationResponse"); +#line 1850 "./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, ett_s1ap_UEContextModificationResponse, UEContextModificationResponse_sequence); @@ -9113,8 +9413,8 @@ 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 1817 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationFailure"); +#line 1852 "./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, ett_s1ap_UEContextModificationFailure, UEContextModificationFailure_sequence); @@ -9130,8 +9430,8 @@ 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 1819 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityMatchRequest"); +#line 1854 "./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, ett_s1ap_UERadioCapabilityMatchRequest, UERadioCapabilityMatchRequest_sequence); @@ -9147,8 +9447,8 @@ 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 1821 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityMatchResponse"); +#line 1856 "./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, ett_s1ap_UERadioCapabilityMatchResponse, UERadioCapabilityMatchResponse_sequence); @@ -9168,7 +9468,7 @@ dissect_s1ap_DownlinkNASTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t /* Set the direction of the message */ actx->pinfo->link_dir=P2P_DIR_DL; -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkNASTransport"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkNASTransport"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_DownlinkNASTransport, DownlinkNASTransport_sequence); @@ -9188,7 +9488,7 @@ dissect_s1ap_InitialUEMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act /* Set the direction of the message */ actx->pinfo->link_dir=P2P_DIR_UL; -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialUEMessage"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialUEMessage"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_InitialUEMessage, InitialUEMessage_sequence); @@ -9208,7 +9508,7 @@ dissect_s1ap_UplinkNASTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a /* Set the direction of the message */ actx->pinfo->link_dir=P2P_DIR_UL; -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkNASTransport"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkNASTransport"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_UplinkNASTransport, UplinkNASTransport_sequence); @@ -9224,8 +9524,8 @@ 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 1829 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NASNonDeliveryIndication"); +#line 1864 "./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, ett_s1ap_NASNonDeliveryIndication, NASNonDeliveryIndication_sequence); @@ -9241,8 +9541,8 @@ 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 1831 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RerouteNASRequest"); +#line 1866 "./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, ett_s1ap_RerouteNASRequest, RerouteNASRequest_sequence); @@ -9273,6 +9573,23 @@ dissect_s1ap_S1_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, } +static const per_sequence_t NASDeliveryIndication_sequence[] = { + { &hf_s1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_NASDeliveryIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 1970 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NASDeliveryIndication"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_NASDeliveryIndication, NASDeliveryIndication_sequence); + + return offset; +} + + static const per_sequence_t Reset_sequence[] = { { &hf_s1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_Container }, { NULL, 0, 0, NULL } @@ -9280,8 +9597,8 @@ 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 1833 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Reset"); +#line 1868 "./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, ett_s1ap_Reset, Reset_sequence); @@ -9348,8 +9665,8 @@ 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 1835 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetAcknowledge"); +#line 1870 "./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, ett_s1ap_ResetAcknowledge, ResetAcknowledge_sequence); @@ -9393,8 +9710,8 @@ 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 1839 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupRequest"); +#line 1874 "./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, ett_s1ap_S1SetupRequest, S1SetupRequest_sequence); @@ -9410,8 +9727,8 @@ 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 1841 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupResponse"); +#line 1876 "./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, ett_s1ap_S1SetupResponse, S1SetupResponse_sequence); @@ -9427,8 +9744,8 @@ 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 1843 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupFailure"); +#line 1878 "./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, ett_s1ap_S1SetupFailure, S1SetupFailure_sequence); @@ -9444,8 +9761,8 @@ 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 1845 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdate"); +#line 1880 "./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, ett_s1ap_ENBConfigurationUpdate, ENBConfigurationUpdate_sequence); @@ -9461,8 +9778,8 @@ 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 1847 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdateAcknowledge"); +#line 1882 "./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, ett_s1ap_ENBConfigurationUpdateAcknowledge, ENBConfigurationUpdateAcknowledge_sequence); @@ -9478,8 +9795,8 @@ 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 1849 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdateFailure"); +#line 1884 "./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, ett_s1ap_ENBConfigurationUpdateFailure, ENBConfigurationUpdateFailure_sequence); @@ -9495,8 +9812,8 @@ 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 1851 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdate"); +#line 1886 "./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, ett_s1ap_MMEConfigurationUpdate, MMEConfigurationUpdate_sequence); @@ -9512,8 +9829,8 @@ 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 1853 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdateAcknowledge"); +#line 1888 "./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, ett_s1ap_MMEConfigurationUpdateAcknowledge, MMEConfigurationUpdateAcknowledge_sequence); @@ -9529,8 +9846,8 @@ 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 1855 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdateFailure"); +#line 1890 "./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, ett_s1ap_MMEConfigurationUpdateFailure, MMEConfigurationUpdateFailure_sequence); @@ -9546,8 +9863,8 @@ 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 1857 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkS1cdma2000tunnelling"); +#line 1892 "./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, ett_s1ap_DownlinkS1cdma2000tunnelling, DownlinkS1cdma2000tunnelling_sequence); @@ -9563,8 +9880,8 @@ 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 1859 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkS1cdma2000tunnelling"); +#line 1894 "./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, ett_s1ap_UplinkS1cdma2000tunnelling, UplinkS1cdma2000tunnelling_sequence); @@ -9580,8 +9897,8 @@ 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 1861 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UECapabilityInfoIndication"); +#line 1896 "./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, ett_s1ap_UECapabilityInfoIndication, UECapabilityInfoIndication_sequence); @@ -9597,8 +9914,8 @@ 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 1863 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBStatusTransfer"); +#line 1898 "./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, ett_s1ap_ENBStatusTransfer, ENBStatusTransfer_sequence); @@ -9614,8 +9931,8 @@ 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 1865 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEStatusTransfer"); +#line 1900 "./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, ett_s1ap_MMEStatusTransfer, MMEStatusTransfer_sequence); @@ -9631,8 +9948,8 @@ 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 1867 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceStart"); +#line 1902 "./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, ett_s1ap_TraceStart, TraceStart_sequence); @@ -9648,8 +9965,8 @@ 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 1869 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceFailureIndication"); +#line 1904 "./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, ett_s1ap_TraceFailureIndication, TraceFailureIndication_sequence); @@ -9665,8 +9982,8 @@ 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 1871 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DeactivateTrace"); +#line 1906 "./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, ett_s1ap_DeactivateTrace, DeactivateTrace_sequence); @@ -9682,8 +9999,8 @@ 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 1873 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CellTrafficTrace"); +#line 1908 "./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, ett_s1ap_CellTrafficTrace, CellTrafficTrace_sequence); @@ -9699,8 +10016,8 @@ 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 1875 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReportingControl"); +#line 1910 "./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, ett_s1ap_LocationReportingControl, LocationReportingControl_sequence); @@ -9716,8 +10033,8 @@ 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 1877 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReportingFailureIndication"); +#line 1912 "./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, ett_s1ap_LocationReportingFailureIndication, LocationReportingFailureIndication_sequence); @@ -9733,8 +10050,8 @@ 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 1879 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReport"); +#line 1914 "./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, ett_s1ap_LocationReport, LocationReport_sequence); @@ -9750,8 +10067,8 @@ 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 1881 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "OverloadStart"); +#line 1916 "./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, ett_s1ap_OverloadStart, OverloadStart_sequence); @@ -9767,8 +10084,8 @@ 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 1883 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "OverloadStop"); +#line 1918 "./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, ett_s1ap_OverloadStop, OverloadStop_sequence); @@ -9784,8 +10101,8 @@ 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 1885 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningRequest"); +#line 1920 "./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, ett_s1ap_WriteReplaceWarningRequest, WriteReplaceWarningRequest_sequence); @@ -9801,8 +10118,8 @@ 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 1887 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningResponse"); +#line 1922 "./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, ett_s1ap_WriteReplaceWarningResponse, WriteReplaceWarningResponse_sequence); @@ -9818,8 +10135,8 @@ 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 1889 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBDirectInformationTransfer"); +#line 1924 "./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, ett_s1ap_ENBDirectInformationTransfer, ENBDirectInformationTransfer_sequence); @@ -9855,8 +10172,8 @@ 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 1891 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEDirectInformationTransfer"); +#line 1926 "./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, ett_s1ap_MMEDirectInformationTransfer, MMEDirectInformationTransfer_sequence); @@ -9872,8 +10189,8 @@ 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 1893 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationTransfer"); +#line 1928 "./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, ett_s1ap_ENBConfigurationTransfer, ENBConfigurationTransfer_sequence); @@ -9889,8 +10206,8 @@ 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 1895 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationTransfer"); +#line 1930 "./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, ett_s1ap_MMEConfigurationTransfer, MMEConfigurationTransfer_sequence); @@ -9906,8 +10223,8 @@ 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 1897 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PrivateMessage"); +#line 1932 "./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, ett_s1ap_PrivateMessage, PrivateMessage_sequence); @@ -9923,8 +10240,8 @@ 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 1899 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "KillRequest"); +#line 1934 "./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, ett_s1ap_KillRequest, KillRequest_sequence); @@ -9940,8 +10257,8 @@ 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 1901 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "KillResponse"); +#line 1936 "./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, ett_s1ap_KillResponse, KillResponse_sequence); @@ -9957,8 +10274,8 @@ 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 1903 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSRestartIndication"); +#line 1938 "./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, ett_s1ap_PWSRestartIndication, PWSRestartIndication_sequence); @@ -9974,8 +10291,8 @@ 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 1905 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSFailureIndication"); +#line 1940 "./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, ett_s1ap_PWSFailureIndication, PWSFailureIndication_sequence); @@ -9991,8 +10308,8 @@ 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 1907 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkUEAssociatedLPPaTransport"); +#line 1942 "./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, ett_s1ap_DownlinkUEAssociatedLPPaTransport, DownlinkUEAssociatedLPPaTransport_sequence); @@ -10008,8 +10325,8 @@ 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 1909 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkUEAssociatedLPPaTransport"); +#line 1944 "./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, ett_s1ap_UplinkUEAssociatedLPPaTransport, UplinkUEAssociatedLPPaTransport_sequence); @@ -10025,8 +10342,8 @@ 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 1911 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkNonUEAssociatedLPPaTransport"); +#line 1946 "./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, ett_s1ap_DownlinkNonUEAssociatedLPPaTransport, DownlinkNonUEAssociatedLPPaTransport_sequence); @@ -10042,8 +10359,8 @@ 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 1913 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkNonUEAssociatedLPPaTransport"); +#line 1948 "./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, ett_s1ap_UplinkNonUEAssociatedLPPaTransport, UplinkNonUEAssociatedLPPaTransport_sequence); @@ -10059,8 +10376,8 @@ 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 1915 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModificationIndication"); +#line 1950 "./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, ett_s1ap_E_RABModificationIndication, E_RABModificationIndication_sequence); @@ -10146,8 +10463,8 @@ 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 1917 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModificationConfirm"); +#line 1952 "./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, ett_s1ap_E_RABModificationConfirm, E_RABModificationConfirm_sequence); @@ -10192,8 +10509,8 @@ 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 1919 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationIndication"); +#line 1954 "./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, ett_s1ap_UEContextModificationIndication, UEContextModificationIndication_sequence); @@ -10209,8 +10526,8 @@ 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 1921 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationConfirm"); +#line 1956 "./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, ett_s1ap_UEContextModificationConfirm, UEContextModificationConfirm_sequence); @@ -10226,8 +10543,8 @@ 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 1923 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSuspendRequest"); +#line 1958 "./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, ett_s1ap_UEContextSuspendRequest, UEContextSuspendRequest_sequence); @@ -10243,8 +10560,8 @@ 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 1925 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSuspendResponse"); +#line 1960 "./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, ett_s1ap_UEContextSuspendResponse, UEContextSuspendResponse_sequence); @@ -10260,8 +10577,8 @@ 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 1927 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeRequest"); +#line 1962 "./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, ett_s1ap_UEContextResumeRequest, UEContextResumeRequest_sequence); @@ -10302,8 +10619,8 @@ 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 1929 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeResponse"); +#line 1964 "./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, ett_s1ap_UEContextResumeResponse, UEContextResumeResponse_sequence); @@ -10344,8 +10661,8 @@ 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 1931 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeFailure"); +#line 1966 "./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, ett_s1ap_UEContextResumeFailure, UEContextResumeFailure_sequence); @@ -10361,8 +10678,8 @@ 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 1933 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ConnectionEstablishmentIndication"); +#line 1968 "./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, ett_s1ap_ConnectionEstablishmentIndication, ConnectionEstablishmentIndication_sequence); @@ -10371,6 +10688,74 @@ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ConnectionEstablishmentI } +static const per_sequence_t RetrieveUEInformation_sequence[] = { + { &hf_s1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_RetrieveUEInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 1972 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RetrieveUEInformation"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_RetrieveUEInformation, RetrieveUEInformation_sequence); + + return offset; +} + + +static const per_sequence_t UEInformationTransfer_sequence[] = { + { &hf_s1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_UEInformationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 1974 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEInformationTransfer"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_UEInformationTransfer, UEInformationTransfer_sequence); + + return offset; +} + + +static const per_sequence_t ENBCPRelocationIndication_sequence[] = { + { &hf_s1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_ENBCPRelocationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 1976 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBCPRelocationIndication"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_ENBCPRelocationIndication, ENBCPRelocationIndication_sequence); + + return offset; +} + + +static const per_sequence_t MMECPRelocationIndication_sequence[] = { + { &hf_s1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_MMECPRelocationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 1978 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMECPRelocationIndication"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_MMECPRelocationIndication, MMECPRelocationIndication_sequence); + + return offset; +} + + static int dissect_s1ap_InitiatingMessage_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -11529,6 +11914,14 @@ static int dissect_COUNTvaluePDCP_SNlength18_PDU(tvbuff_t *tvb _U_, packet_info offset += 7; offset >>= 3; return offset; } +static int dissect_Coverage_Level_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_Coverage_Level(tvb, offset, &asn1_ctx, tree, hf_s1ap_Coverage_Level_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_CriticalityDiagnostics_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -11545,6 +11938,30 @@ static int dissect_DataCodingScheme_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U offset += 7; offset >>= 3; return offset; } +static int dissect_DCN_ID_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_DCN_ID(tvb, offset, &asn1_ctx, tree, hf_s1ap_DCN_ID_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_ServedDCNs_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_ServedDCNs(tvb, offset, &asn1_ctx, tree, hf_s1ap_ServedDCNs_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_DL_CP_SecurityInformation_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_DL_CP_SecurityInformation(tvb, offset, &asn1_ctx, tree, hf_s1ap_DL_CP_SecurityInformation_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_Direct_Forwarding_Path_Availability_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -11561,6 +11978,14 @@ static int dissect_Data_Forwarding_Not_Possible_PDU(tvbuff_t *tvb _U_, packet_in offset += 7; offset >>= 3; return offset; } +static int dissect_DLNASPDUDeliveryAckRequest_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_DLNASPDUDeliveryAckRequest(tvb, offset, &asn1_ctx, tree, hf_s1ap_DLNASPDUDeliveryAckRequest_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_PWSfailedECGIList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -11617,6 +12042,14 @@ static int dissect_ENBname_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_ 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; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_EnhancedCoverageRestricted(tvb, offset, &asn1_ctx, tree, hf_s1ap_EnhancedCoverageRestricted_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_E_RABInformationListItem_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -11641,6 +12074,14 @@ static int dissect_E_RABItem_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, prot offset += 7; offset >>= 3; return offset; } +static int dissect_E_RABLevelQoSParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_E_RABLevelQoSParameters(tvb, offset, &asn1_ctx, tree, hf_s1ap_E_RABLevelQoSParameters_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_EUTRAN_CGI_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -12473,6 +12914,14 @@ static int dissect_UESecurityCapabilities_PDU(tvbuff_t *tvb _U_, packet_info *pi offset += 7; offset >>= 3; return offset; } +static int dissect_UESidelinkAggregateMaximumBitrate_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_UESidelinkAggregateMaximumBitrate(tvb, offset, &asn1_ctx, tree, hf_s1ap_UESidelinkAggregateMaximumBitrate_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_UE_Usage_Type_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -12481,6 +12930,14 @@ static int dissect_UE_Usage_Type_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, offset += 7; offset >>= 3; return offset; } +static int dissect_UL_CP_SecurityInformation_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_UL_CP_SecurityInformation(tvb, offset, &asn1_ctx, tree, hf_s1ap_UL_CP_SecurityInformation_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_UserLocationInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -12505,6 +12962,14 @@ static int dissect_VoiceSupportMatchIndicator_PDU(tvbuff_t *tvb _U_, packet_info offset += 7; offset >>= 3; return offset; } +static int dissect_V2XServicesAuthorized_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_V2XServicesAuthorized(tvb, offset, &asn1_ctx, tree, hf_s1ap_V2XServicesAuthorized_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_WarningAreaList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -13081,6 +13546,14 @@ static int dissect_S1_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pro offset += 7; offset >>= 3; return offset; } +static int dissect_NASDeliveryIndication_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_NASDeliveryIndication(tvb, offset, &asn1_ctx, tree, hf_s1ap_NASDeliveryIndication_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_Reset_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -13601,6 +14074,38 @@ static int dissect_ConnectionEstablishmentIndication_PDU(tvbuff_t *tvb _U_, pack offset += 7; offset >>= 3; return offset; } +static int dissect_RetrieveUEInformation_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_RetrieveUEInformation(tvb, offset, &asn1_ctx, tree, hf_s1ap_RetrieveUEInformation_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_UEInformationTransfer_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_UEInformationTransfer(tvb, offset, &asn1_ctx, tree, hf_s1ap_UEInformationTransfer_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_ENBCPRelocationIndication_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_ENBCPRelocationIndication(tvb, offset, &asn1_ctx, tree, hf_s1ap_ENBCPRelocationIndication_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_MMECPRelocationIndication_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_MMECPRelocationIndication(tvb, offset, &asn1_ctx, tree, hf_s1ap_MMECPRelocationIndication_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_S1AP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -13949,6 +14454,16 @@ proto_reg_handoff_s1ap(void) dissector_add_uint("s1ap.ies", id_SRVCCOperationNotPossible, create_dissector_handle(dissect_SRVCCOperationNotPossible_PDU, proto_s1ap)); dissector_add_uint("s1ap.ies", id_NB_IoT_UEIdentityIndexValue, create_dissector_handle(dissect_NB_IoT_UEIdentityIndexValue_PDU, proto_s1ap)); dissector_add_uint("s1ap.ies", id_RRC_Resume_Cause, create_dissector_handle(dissect_RRC_Establishment_Cause_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_V2XServicesAuthorized, create_dissector_handle(dissect_V2XServicesAuthorized_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_UESidelinkAggregateMaximumBitrate, create_dissector_handle(dissect_UESidelinkAggregateMaximumBitrate_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_EnhancedCoverageRestricted, create_dissector_handle(dissect_EnhancedCoverageRestricted_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_DLNASPDUDeliveryAckRequest, create_dissector_handle(dissect_DLNASPDUDeliveryAckRequest_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_DCN_ID, create_dissector_handle(dissect_DCN_ID_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_Coverage_Level, create_dissector_handle(dissect_Coverage_Level_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_ServedDCNs, create_dissector_handle(dissect_ServedDCNs_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_DL_CP_SecurityInformation, create_dissector_handle(dissect_DL_CP_SecurityInformation_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_UE_Level_QoS_Parameters, create_dissector_handle(dissect_E_RABLevelQoSParameters_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_UL_CP_SecurityInformation, create_dissector_handle(dissect_UL_CP_SecurityInformation_PDU, proto_s1ap)); dissector_add_uint("s1ap.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)); @@ -14070,6 +14585,11 @@ proto_reg_handoff_s1ap(void) dissector_add_uint("s1ap.proc.imsg", id_UEContextResume, create_dissector_handle(dissect_UEContextResumeRequest_PDU, proto_s1ap)); dissector_add_uint("s1ap.proc.sout", id_UEContextResume, create_dissector_handle(dissect_UEContextResumeResponse_PDU, proto_s1ap)); dissector_add_uint("s1ap.proc.uout", id_UEContextResume, create_dissector_handle(dissect_UEContextResumeFailure_PDU, proto_s1ap)); + dissector_add_uint("s1ap.proc.imsg", id_NASDeliveryIndication, create_dissector_handle(dissect_NASDeliveryIndication_PDU, proto_s1ap)); + dissector_add_uint("s1ap.proc.imsg", id_RetrieveUEInformation, create_dissector_handle(dissect_RetrieveUEInformation_PDU, proto_s1ap)); + dissector_add_uint("s1ap.proc.imsg", id_UEInformationTransfer, create_dissector_handle(dissect_UEInformationTransfer_PDU, proto_s1ap)); + dissector_add_uint("s1ap.proc.imsg", id_eNBCPRelocationIndication, create_dissector_handle(dissect_ENBCPRelocationIndication_PDU, proto_s1ap)); + dissector_add_uint("s1ap.proc.imsg", id_MMECPRelocationIndication, create_dissector_handle(dissect_MMECPRelocationIndication_PDU, proto_s1ap)); /*--- End of included file: packet-s1ap-dis-tab.c ---*/ @@ -14343,6 +14863,10 @@ void proto_register_s1ap(void) { { "COUNTvaluePDCP-SNlength18", "s1ap.COUNTvaluePDCP_SNlength18_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_Coverage_Level_PDU, + { "Coverage-Level", "s1ap.Coverage_Level", + FT_UINT32, BASE_DEC, VALS(s1ap_Coverage_Level_vals), 0, + NULL, HFILL }}, { &hf_s1ap_CriticalityDiagnostics_PDU, { "CriticalityDiagnostics", "s1ap.CriticalityDiagnostics_element", FT_NONE, BASE_NONE, NULL, 0, @@ -14351,6 +14875,18 @@ void proto_register_s1ap(void) { { "DataCodingScheme", "s1ap.DataCodingScheme", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_DCN_ID_PDU, + { "DCN-ID", "s1ap.DCN_ID", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_ServedDCNs_PDU, + { "ServedDCNs", "s1ap.ServedDCNs", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_DL_CP_SecurityInformation_PDU, + { "DL-CP-SecurityInformation", "s1ap.DL_CP_SecurityInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_Direct_Forwarding_Path_Availability_PDU, { "Direct-Forwarding-Path-Availability", "s1ap.Direct_Forwarding_Path_Availability", FT_UINT32, BASE_DEC, VALS(s1ap_Direct_Forwarding_Path_Availability_vals), 0, @@ -14359,6 +14895,10 @@ void proto_register_s1ap(void) { { "Data-Forwarding-Not-Possible", "s1ap.Data_Forwarding_Not_Possible", FT_UINT32, BASE_DEC, VALS(s1ap_Data_Forwarding_Not_Possible_vals), 0, NULL, HFILL }}, + { &hf_s1ap_DLNASPDUDeliveryAckRequest_PDU, + { "DLNASPDUDeliveryAckRequest", "s1ap.DLNASPDUDeliveryAckRequest", + FT_UINT32, BASE_DEC, VALS(s1ap_DLNASPDUDeliveryAckRequest_vals), 0, + NULL, HFILL }}, { &hf_s1ap_PWSfailedECGIList_PDU, { "PWSfailedECGIList", "s1ap.PWSfailedECGIList", FT_UINT32, BASE_DEC, NULL, 0, @@ -14387,6 +14927,10 @@ void proto_register_s1ap(void) { { "ENBname", "s1ap.ENBname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_EnhancedCoverageRestricted_PDU, + { "EnhancedCoverageRestricted", "s1ap.EnhancedCoverageRestricted", + FT_UINT32, BASE_DEC, VALS(s1ap_EnhancedCoverageRestricted_vals), 0, + NULL, HFILL }}, { &hf_s1ap_E_RABInformationListItem_PDU, { "E-RABInformationListItem", "s1ap.E_RABInformationListItem_element", FT_NONE, BASE_NONE, NULL, 0, @@ -14399,6 +14943,10 @@ void proto_register_s1ap(void) { { "E-RABItem", "s1ap.E_RABItem_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_E_RABLevelQoSParameters_PDU, + { "E-RABLevelQoSParameters", "s1ap.E_RABLevelQoSParameters_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_EUTRAN_CGI_PDU, { "EUTRAN-CGI", "s1ap.EUTRAN_CGI_element", FT_NONE, BASE_NONE, NULL, 0, @@ -14815,10 +15363,18 @@ void proto_register_s1ap(void) { { "UESecurityCapabilities", "s1ap.UESecurityCapabilities_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_UESidelinkAggregateMaximumBitrate_PDU, + { "UESidelinkAggregateMaximumBitrate", "s1ap.UESidelinkAggregateMaximumBitrate_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_UE_Usage_Type_PDU, { "UE-Usage-Type", "s1ap.UE_Usage_Type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_UL_CP_SecurityInformation_PDU, + { "UL-CP-SecurityInformation", "s1ap.UL_CP_SecurityInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_UserLocationInformation_PDU, { "UserLocationInformation", "s1ap.UserLocationInformation_element", FT_NONE, BASE_NONE, NULL, 0, @@ -14831,6 +15387,10 @@ void proto_register_s1ap(void) { { "VoiceSupportMatchIndicator", "s1ap.VoiceSupportMatchIndicator", FT_UINT32, BASE_DEC, VALS(s1ap_VoiceSupportMatchIndicator_vals), 0, NULL, HFILL }}, + { &hf_s1ap_V2XServicesAuthorized_PDU, + { "V2XServicesAuthorized", "s1ap.V2XServicesAuthorized_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_WarningAreaList_PDU, { "WarningAreaList", "s1ap.WarningAreaList", FT_UINT32, BASE_DEC, VALS(s1ap_WarningAreaList_vals), 0, @@ -15119,6 +15679,10 @@ void proto_register_s1ap(void) { { "S1-Message", "s1ap.S1_Message", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_NASDeliveryIndication_PDU, + { "NASDeliveryIndication", "s1ap.NASDeliveryIndication_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_Reset_PDU, { "Reset", "s1ap.Reset_element", FT_NONE, BASE_NONE, NULL, 0, @@ -15379,6 +15943,22 @@ void proto_register_s1ap(void) { { "ConnectionEstablishmentIndication", "s1ap.ConnectionEstablishmentIndication_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_RetrieveUEInformation_PDU, + { "RetrieveUEInformation", "s1ap.RetrieveUEInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_UEInformationTransfer_PDU, + { "UEInformationTransfer", "s1ap.UEInformationTransfer_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_ENBCPRelocationIndication_PDU, + { "ENBCPRelocationIndication", "s1ap.ENBCPRelocationIndication_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_MMECPRelocationIndication_PDU, + { "MMECPRelocationIndication", "s1ap.MMECPRelocationIndication_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_S1AP_PDU_PDU, { "S1AP-PDU", "s1ap.S1AP_PDU", FT_UINT32, BASE_DEC, VALS(s1ap_S1AP_PDU_vals), 0, @@ -15715,6 +16295,22 @@ void proto_register_s1ap(void) { { "typeOfError", "s1ap.typeOfError", FT_UINT32, BASE_DEC, VALS(s1ap_TypeOfError_vals), 0, NULL, HFILL }}, + { &hf_s1ap_ServedDCNs_item, + { "ServedDCNsItem", "s1ap.ServedDCNsItem_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_dCN_ID, + { "dCN-ID", "s1ap.dCN_ID", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_relativeDCNCapacity, + { "relativeDCNCapacity", "s1ap.relativeDCNCapacity", + FT_UINT32, BASE_DEC, NULL, 0, + "RelativeMMECapacity", HFILL }}, + { &hf_s1ap_dl_NAS_MAC, + { "dl-NAS-MAC", "s1ap.dl_NAS_MAC", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_ECGIList_item, { "EUTRAN-CGI", "s1ap.EUTRAN_CGI_element", FT_NONE, BASE_NONE, NULL, 0, @@ -15767,6 +16363,14 @@ void proto_register_s1ap(void) { { "homeENB-ID", "s1ap.homeENB_ID", FT_BYTES, BASE_NONE, NULL, 0, "BIT_STRING_SIZE_28", HFILL }}, + { &hf_s1ap_short_macroENB_ID, + { "short-macroENB-ID", "s1ap.short_macroENB_ID", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_18", HFILL }}, + { &hf_s1ap_long_macroENB_ID, + { "long-macroENB-ID", "s1ap.long_macroENB_ID", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_21", HFILL }}, { &hf_s1ap_lAI, { "lAI", "s1ap.lAI_element", FT_NONE, BASE_NONE, NULL, 0, @@ -16455,6 +17059,18 @@ void proto_register_s1ap(void) { { "integrityProtectionAlgorithms", "s1ap.integrityProtectionAlgorithms", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_uESidelinkAggregateMaximumBitRate, + { "uESidelinkAggregateMaximumBitRate", "s1ap.uESidelinkAggregateMaximumBitRate", + FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0, + "BitRate", HFILL }}, + { &hf_s1ap_ul_NAS_MAC, + { "ul-NAS-MAC", "s1ap.ul_NAS_MAC", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_ul_NAS_Count, + { "ul-NAS-Count", "s1ap.ul_NAS_Count", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_eutran_cgi, { "eutran-cgi", "s1ap.eutran_cgi_element", FT_NONE, BASE_NONE, NULL, 0, @@ -16463,6 +17079,14 @@ void proto_register_s1ap(void) { { "tai", "s1ap.tai_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_vehicleUE, + { "vehicleUE", "s1ap.vehicleUE", + FT_UINT32, BASE_DEC, VALS(s1ap_VehicleUE_vals), 0, + NULL, HFILL }}, + { &hf_s1ap_pedestrianUE, + { "pedestrianUE", "s1ap.pedestrianUE", + FT_UINT32, BASE_DEC, VALS(s1ap_PedestrianUE_vals), 0, + NULL, HFILL }}, { &hf_s1ap_cellIDList, { "cellIDList", "s1ap.cellIDList", FT_UINT32, BASE_DEC, NULL, 0, @@ -16988,6 +17612,9 @@ void proto_register_s1ap(void) { &ett_s1ap_CriticalityDiagnostics, &ett_s1ap_CriticalityDiagnostics_IE_List, &ett_s1ap_CriticalityDiagnostics_IE_Item, + &ett_s1ap_ServedDCNs, + &ett_s1ap_ServedDCNsItem, + &ett_s1ap_DL_CP_SecurityInformation, &ett_s1ap_ECGIList, &ett_s1ap_PWSfailedECGIList, &ett_s1ap_EmergencyAreaIDList, @@ -17107,7 +17734,10 @@ void proto_register_s1ap(void) { &ett_s1ap_UE_HistoryInformation, &ett_s1ap_UEPagingID, &ett_s1ap_UESecurityCapabilities, + &ett_s1ap_UESidelinkAggregateMaximumBitrate, + &ett_s1ap_UL_CP_SecurityInformation, &ett_s1ap_UserLocationInformation, + &ett_s1ap_V2XServicesAuthorized, &ett_s1ap_WarningAreaList, &ett_s1ap_X2TNLConfigurationInfo, &ett_s1ap_ENBX2ExtTLAs, @@ -17172,6 +17802,7 @@ void proto_register_s1ap(void) { &ett_s1ap_UplinkNASTransport, &ett_s1ap_NASNonDeliveryIndication, &ett_s1ap_RerouteNASRequest, + &ett_s1ap_NASDeliveryIndication, &ett_s1ap_Reset, &ett_s1ap_ResetType, &ett_s1ap_UE_associatedLogicalS1_ConnectionListRes, @@ -17234,6 +17865,10 @@ void proto_register_s1ap(void) { &ett_s1ap_E_RABFailedToResumeItemResumeRes, &ett_s1ap_UEContextResumeFailure, &ett_s1ap_ConnectionEstablishmentIndication, + &ett_s1ap_RetrieveUEInformation, + &ett_s1ap_UEInformationTransfer, + &ett_s1ap_ENBCPRelocationIndication, + &ett_s1ap_MMECPRelocationIndication, &ett_s1ap_S1AP_PDU, &ett_s1ap_InitiatingMessage, &ett_s1ap_SuccessfulOutcome, |