From 4567134a56a0abcb61f1aec100ab6f2b126f891d Mon Sep 17 00:00:00 2001 From: AndersBroman Date: Wed, 10 Sep 2014 16:30:41 +0200 Subject: [PATCH] Update to revission V12.2.0 (2014-06) Remove soft deprecated APIs Change-Id: I30adcb9f381c77142385c22fcc4a208169b0cf5e Reviewed-on: https://code.wireshark.org/review/4062 Petri-Dish: Anders Broman Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman --- asn1/s1ap/S1AP-CommonDataTypes.asn | 5 +- asn1/s1ap/S1AP-Constants.asn | 21 +- asn1/s1ap/S1AP-Containers.asn | 3 +- asn1/s1ap/S1AP-IEs.asn | 53 ++- asn1/s1ap/S1AP-PDU-Contents.asn | 245 ++++++---- asn1/s1ap/S1AP-PDU-Descriptions.asn | 19 +- asn1/s1ap/S1AP-SonTransfer-IEs.asn | 41 +- asn1/s1ap/s1ap.cnf | 44 +- epan/dissectors/packet-s1ap.c | 662 +++++++++++++++++++++++++--- 9 files changed, 899 insertions(+), 194 deletions(-) diff --git a/asn1/s1ap/S1AP-CommonDataTypes.asn b/asn1/s1ap/S1AP-CommonDataTypes.asn index 539f21633e..697ee75c5a 100644 --- a/asn1/s1ap/S1AP-CommonDataTypes.asn +++ b/asn1/s1ap/S1AP-CommonDataTypes.asn @@ -1,4 +1,4 @@ --- 3GPP TS 36.413 V11.6.0 (2013-12) +-- 3GPP TS 36.413 V12.2.0 (2014-06) -- 9.3.5 Common Definitions -- ************************************************************** -- @@ -32,6 +32,3 @@ ProtocolIE-ID ::= INTEGER (0..65535) TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome } END - - - diff --git a/asn1/s1ap/S1AP-Constants.asn b/asn1/s1ap/S1AP-Constants.asn index df6c2b79a4..f465593d0f 100644 --- a/asn1/s1ap/S1AP-Constants.asn +++ b/asn1/s1ap/S1AP-Constants.asn @@ -1,4 +1,4 @@ --- 3GPP TS 36.413 V11.6.0 (2013-12) +-- 3GPP TS 36.413 V12.2.0 (2014-06) -- 9.3.6 Constant Definitions -- ************************************************************** -- @@ -82,6 +82,7 @@ id-uplinkUEAssociatedLPPaTransport ProcedureCode ::= 45 id-downlinkNonUEAssociatedLPPaTransport ProcedureCode ::= 46 id-uplinkNonUEAssociatedLPPaTransport ProcedureCode ::= 47 id-UERadioCapabilityMatch ProcedureCode ::= 48 +id-PWSRestartIndication ProcedureCode ::= 49 -- ************************************************************** -- @@ -125,6 +126,9 @@ maxnoofMMECs INTEGER ::= 256 maxnoofCellIDforMDT INTEGER ::= 32 maxnoofTAforMDT INTEGER ::= 8 maxnoofMDTPLMNs INTEGER ::= 16 +maxnoofCellsforRestart INTEGER ::= 256 +maxnoofRestartTAIs INTEGER ::= 2048 +maxnoofRestartEmergencyAreaIDs INTEGER ::= 256 -- ************************************************************** -- @@ -227,8 +231,6 @@ id-Unknown-81 ProtocolIE-ID ::= 81 id-Unknown-82 ProtocolIE-ID ::= 82 id-cdma2000HOStatus ProtocolIE-ID ::= 83 id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84 ---WS extension -id-Unknown-85 ProtocolIE-ID ::= 85 id-E-UTRAN-Trace-ID ProtocolIE-ID ::= 86 id-RelativeMMECapacity ProtocolIE-ID ::= 87 id-SourceMME-UE-S1AP-ID ProtocolIE-ID ::= 88 @@ -325,6 +327,17 @@ id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 178 id-ULCOUNTValueExtended ProtocolIE-ID ::= 179 id-DLCOUNTValueExtended ProtocolIE-ID ::= 180 id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 181 +id-ECGIListForRestart ProtocolIE-ID ::= 182 +id-SIPTO-Correlation-ID ProtocolIE-ID ::= 183 +id-SIPTO-L-GW-TransportLayerAddress ProtocolIE-ID ::= 184 +id-TransportInformation ProtocolIE-ID ::= 185 +id-LHN-ID ProtocolIE-ID ::= 186 +id-AdditionalCSFallbackIndicator ProtocolIE-ID ::= 187 +id-TAIListForRestart ProtocolIE-ID ::= 188 +id-UserLocationInformation ProtocolIE-ID ::= 189 +id-EmergencyAreaIDListForRestart ProtocolIE-ID ::= 190 +id-KillAllWarningMessages ProtocolIE-ID ::= 191 +id-Masked-IMEISV ProtocolIE-ID ::= 192 +id-eNBIndirectX2TransportLayerAddresses ProtocolIE-ID ::= 193 END - diff --git a/asn1/s1ap/S1AP-Containers.asn b/asn1/s1ap/S1AP-Containers.asn index b2a5da75a8..9ac6f054da 100644 --- a/asn1/s1ap/S1AP-Containers.asn +++ b/asn1/s1ap/S1AP-Containers.asn @@ -1,4 +1,4 @@ --- 3GPP TS 36.413 V11.6.0 (2013-12) +-- 3GPP TS 36.413 V12.2.0 (2014-06) -- 9.3.7 Container Definitions -- ************************************************************** -- @@ -198,4 +198,3 @@ PrivateIE-Field {S1AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { } END - diff --git a/asn1/s1ap/S1AP-IEs.asn b/asn1/s1ap/S1AP-IEs.asn index 143aab6d7e..5ef19e4981 100644 --- a/asn1/s1ap/S1AP-IEs.asn +++ b/asn1/s1ap/S1AP-IEs.asn @@ -1,4 +1,4 @@ --- 3GPP TS 36.413 V11.6.0 (2013-12) +-- 3GPP TS 36.413 V12.2.0 (2014-06) -- 9.3.4 Information Element Definitions -- ************************************************************** -- @@ -33,6 +33,7 @@ IMPORTS id-ULCOUNTValueExtended, id-DLCOUNTValueExtended, id-ReceiveStatusOfULPDCPSDUsExtended, + id-eNBIndirectX2TransportLayerAddresses, maxnoofCSGs, maxnoofE-RABs, maxnoofErrors, @@ -57,7 +58,10 @@ IMPORTS maxnoofMMECs, maxnoofTAforMDT, maxnoofCellIDforMDT, - maxnoofMDTPLMNs + maxnoofMDTPLMNs, + maxnoofCellsforRestart, + maxnoofRestartTAIs, + maxnoofRestartEmergencyAreaIDs @@ -390,6 +394,12 @@ CSFallbackIndicator ::= ENUMERATED { cs-fallback-high-priority } +AdditionalCSFallbackIndicator ::= ENUMERATED { + no-restriction, + restriction, + ... +} + CSG-Id ::= BIT STRING (SIZE (27)) @@ -525,6 +535,8 @@ CompletedCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ... } +EmergencyAreaIDListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartEmergencyAreaIDs)) OF EmergencyAreaID + ENB-ID ::= CHOICE { macroENB-ID BIT STRING (SIZE(20)), homeENB-ID BIT STRING (SIZE(28)), @@ -767,6 +779,8 @@ HFNModified ::= INTEGER (0..131071) -- I +Masked-IMEISV ::= BIT STRING (SIZE (64)) + ImmediateMDT ::= SEQUENCE { measurementsToActivate MeasurementsToActivate, m1reportingTrigger M1ReportingTrigger, @@ -796,6 +810,9 @@ InterfacesToTrace ::= BIT STRING (SIZE (8)) -- J -- K + +KillAllWarningMessages ::= ENUMERATED {true} + -- L @@ -843,6 +860,8 @@ L3-Information ::= OCTET STRING LPPa-PDU ::= OCTET STRING +LHN-ID ::= OCTET STRING(SIZE (32..256)) + Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...} LoggedMDT ::= SEQUENCE { @@ -1110,7 +1129,8 @@ RIMInformation ::= OCTET STRING RIMRoutingAddress ::= CHOICE { gERAN-Cell-ID GERAN-Cell-ID, ..., - targetRNC-ID TargetRNC-ID + targetRNC-ID TargetRNC-ID, + eHRPD-Sector-ID OCTET STRING (SIZE(16)) } ReportArea ::= ENUMERATED { @@ -1135,6 +1155,8 @@ RRC-Establishment-Cause ::= ENUMERATED { delay-TolerantAccess } +ECGIListForRestart ::= SEQUENCE (SIZE(1..maxnoofCellsforRestart)) OF EUTRAN-CGI + Routing-ID ::= INTEGER (0..255) -- S @@ -1461,6 +1483,12 @@ Time-UE-StayedInCell ::= INTEGER (0..4095) Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950) +TransportInformation ::= SEQUENCE { + transportLayerAddress TransportLayerAddress, + uL-GTP-TEID GTP-TEID, + ... +} + TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) TraceActivation ::= SEQUENCE { @@ -1509,6 +1537,8 @@ TypeOfError ::= ENUMERATED { ... } +TAIListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartTAIs)) OF TAI + -- U UEAggregateMaximumBitrate ::= SEQUENCE { @@ -1576,6 +1606,17 @@ UESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ... } +UserLocationInformation ::= SEQUENCE { + eutran-cgi EUTRAN-CGI, + tai TAI, + iE-Extensions ProtocolExtensionContainer { { UserLocationInformation-ExtIEs} } OPTIONAL, + ... +} + +UserLocationInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + -- V VoiceSupportMatchIndicator ::= ENUMERATED { @@ -1613,7 +1654,9 @@ X2TNLConfigurationInfo ::= SEQUENCE { X2TNLConfigurationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { -- Extension for Release 10 to transfer the IPsec and U-plane addresses during ANR action -- - {ID id-eNBX2ExtendedTransportLayerAddresses CRITICALITY ignore EXTENSION ENBX2ExtTLAs PRESENCE optional}, + {ID id-eNBX2ExtendedTransportLayerAddresses CRITICALITY ignore EXTENSION ENBX2ExtTLAs PRESENCE optional}| +-- Extension for Release 12 to transfer the IP addresses of the X2 GW -- + {ID id-eNBIndirectX2TransportLayerAddresses CRITICALITY ignore EXTENSION ENBIndirectX2TransportLayerAddresses PRESENCE optional}, ... } @@ -1632,9 +1675,9 @@ ENBX2ExtTLA-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ENBX2GTPTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2GTPTLAs)) OF TransportLayerAddress +ENBIndirectX2TransportLayerAddresses ::= SEQUENCE (SIZE(1..maxnoofeNBX2TLAs)) OF TransportLayerAddress -- Y -- Z END - diff --git a/asn1/s1ap/S1AP-PDU-Contents.asn b/asn1/s1ap/S1AP-PDU-Contents.asn index db09bb1ed8..de205622dd 100644 --- a/asn1/s1ap/S1AP-PDU-Contents.asn +++ b/asn1/s1ap/S1AP-PDU-Contents.asn @@ -1,4 +1,4 @@ --- 3GPP TS 36.413 V11.6.0 (2013-12) +-- 3GPP TS 36.413 V12.2.0 (2014-06) -- 9.3.3 PDU Definitions -- ************************************************************** -- @@ -53,6 +53,7 @@ IMPORTS GUMMEIType, HandoverRestrictionList, HandoverType, + Masked-IMEISV, LAI, LPPa-PDU, ManagementBasedMDTAllowed, @@ -125,7 +126,15 @@ IMPORTS GWContextReleaseIndication, PrivacyIndicator, VoiceSupportMatchIndicator, - TunnelInformation + TunnelInformation, + KillAllWarningMessages, + TransportInformation, + LHN-ID, + UserLocationInformation, + AdditionalCSFallbackIndicator, + ECGIListForRestart, + TAIListForRestart, + EmergencyAreaIDListForRestart @@ -176,6 +185,7 @@ FROM S1AP-Containers id-GUMMEIType, id-HandoverRestrictionList, id-HandoverType, + id-Masked-IMEISV, id-InitialContextSetup, id-Inter-SystemInformationTransferTypeEDT, id-Inter-SystemInformationTransferTypeMDT, @@ -302,7 +312,17 @@ FROM S1AP-Containers id-GWContextReleaseIndication, id-PrivacyIndicator, id-VoiceSupportMatchIndicator, - id-Tunnel-Information-for-BBF + id-Tunnel-Information-for-BBF, + id-SIPTO-Correlation-ID, + id-SIPTO-L-GW-TransportLayerAddress, + id-KillAllWarningMessages, + id-TransportInformation, + id-LHN-ID, + id-UserLocationInformation, + id-AdditionalCSFallbackIndicator, + id-ECGIListForRestart, + id-TAIListForRestart, + id-EmergencyAreaIDListForRestart FROM S1AP-Constants; @@ -438,26 +458,27 @@ HandoverRequest ::= SEQUENCE { } HandoverRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory }| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory }| - { ID id-E-RABToBeSetupListHOReq CRITICALITY reject TYPE E-RABToBeSetupListHOReq PRESENCE mandatory }| - { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory }| - { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory }| - { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional }| - { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional }| - { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional }| - { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional }| - { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory }| + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}| + { ID id-E-RABToBeSetupListHOReq CRITICALITY reject TYPE E-RABToBeSetupListHOReq PRESENCE mandatory}| + { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}| { ID id-NASSecurityParameterstoE-UTRAN CRITICALITY reject TYPE NASSecurityParameterstoE-UTRAN PRESENCE conditional - -- This IE shall be present if the Handover Type IE is set to the value "UTRANtoLTE" or "GERANtoLTE" -- }| - { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional }| - { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional }| - { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional }| - { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional }| - { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional }| - { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional }, + -- This IE shall be present if the Handover Type IE is set to the value "UTRANtoLTE" or "GERANtoLTE" -- }| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}| + { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}, ... } @@ -583,12 +604,13 @@ HandoverNotify ::= SEQUENCE { } HandoverNotifyIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }| - { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory }| + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| -- Extension for Release 11 to support BBAI -- - { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional }, + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, ... } @@ -610,18 +632,19 @@ PathSwitchRequest ::= SEQUENCE { } PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory }| - { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }| - { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory }| - { ID id-UESecurityCapabilities CRITICALITY ignore TYPE UESecurityCapabilities PRESENCE mandatory }| - { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional }| - { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional }| - { ID id-SourceMME-GUMMEI CRITICALITY ignore TYPE GUMMEI PRESENCE optional }| - { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory}| + { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY ignore TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional}| + { ID id-SourceMME-GUMMEI CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| -- Extension for Release 11 to support BBAI -- - { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional }, + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, ... } @@ -793,7 +816,8 @@ E-RABToBeSetupItemBearerSUReq ::= SEQUENCE { E-RABToBeSetupItemBearerSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { - { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, ... } @@ -883,6 +907,7 @@ E-RABToBeModifiedItemBearerModReq ::= SEQUENCE { E-RABToBeModifyItemBearerModReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { + { ID id-TransportInformation CRITICALITY reject EXTENSION TransportInformation PRESENCE optional}, ... } @@ -973,7 +998,9 @@ E-RABReleaseResponseIEs S1AP-PROTOCOL-IES ::= { { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| { ID id-E-RABReleaseListBearerRelComp CRITICALITY ignore TYPE E-RABReleaseListBearerRelComp PRESENCE optional }| { ID id-E-RABFailedToReleaseList CRITICALITY ignore TYPE E-RABList PRESENCE optional }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| +-- Extension for Release 12 to support User Location Information -- + { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }, ... } @@ -1018,7 +1045,9 @@ E-RABReleaseIndication ::= SEQUENCE { E-RABReleaseIndicationIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }, + { ID id-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }| +-- Extension for Release 12 to support User Location Information -- + { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }, ... } -- ************************************************************** @@ -1039,24 +1068,26 @@ InitialContextSetupRequest ::= SEQUENCE { } InitialContextSetupRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory }| - { ID id-E-RABToBeSetupListCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupListCtxtSUReq PRESENCE mandatory }| - { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory }| - { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE mandatory }| - { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional }| - { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional }| - { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional }| - { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional }| - { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional }| - { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional }| - { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional }| - { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional }| - { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional }| - { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional }| - { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional }| - { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional }, + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}| + { ID id-E-RABToBeSetupListCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupListCtxtSUReq PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}| + { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE mandatory}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}| + { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}| + { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}| + { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}| + { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional}| + { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}| + { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}, ... } @@ -1082,7 +1113,8 @@ E-RABToBeSetupItemCtxtSUReq ::= SEQUENCE { E-RABToBeSetupItemCtxtSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= { - { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional }, + { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}| + { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}, ... } @@ -1251,7 +1283,9 @@ UEContextReleaseComplete ::= SEQUENCE { UEContextReleaseComplete-IEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }| { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }| +-- Extension for Release 12 to support User Location Information -- + { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }, ... } @@ -1274,15 +1308,16 @@ UEContextModificationRequest ::= SEQUENCE { } UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE optional }| - { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional }| - { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional }| - { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional }| - { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE optional }| - { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional }| - { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional }, + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE optional}| + { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}| + { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}| + { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}| + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}| + { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}| + { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}, ... } -- ************************************************************** @@ -1403,20 +1438,22 @@ InitialUEMessage ::= SEQUENCE { } InitialUEMessage-IEs S1AP-PROTOCOL-IES ::= { - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory }| - { ID id-TAI CRITICALITY reject TYPE TAI PRESENCE mandatory }| - { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }| - { ID id-RRC-Establishment-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE mandatory }| - { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE optional }| - { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional }| - { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE optional }| - { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional }| - { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional }| - { ID id-RelayNode-Indicator CRITICALITY reject TYPE RelayNode-Indicator PRESENCE optional }| - { ID id-GUMMEIType CRITICALITY ignore TYPE GUMMEIType PRESENCE optional }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}| + { ID id-TAI CRITICALITY reject TYPE TAI PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-RRC-Establishment-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE mandatory}| + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE optional}| + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}| + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE optional}| + { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}| + { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-RelayNode-Indicator CRITICALITY reject TYPE RelayNode-Indicator PRESENCE optional}| + { ID id-GUMMEIType CRITICALITY ignore TYPE GUMMEIType PRESENCE optional}| -- Extension for Release 11 to support BBAI -- - { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional }, + { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}| + { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, ... } @@ -1433,12 +1470,14 @@ UplinkNASTransport ::= SEQUENCE { } UplinkNASTransport-IEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory }| - { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }| - { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory }| - { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional }, + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}| + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| + { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}| + { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}, ... } -- ************************************************************** @@ -2247,9 +2286,10 @@ KillRequest ::= SEQUENCE { } KillRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }| - { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }| - { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }, + { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory}| + { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory}| + { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional}| + { ID id-KillAllWarningMessages CRITICALITY reject TYPE KillAllWarningMessages PRESENCE optional}, ... } @@ -2272,6 +2312,25 @@ KillResponseIEs S1AP-PROTOCOL-IES ::= { ... } +-- ************************************************************** +-- +-- PWS Restart Indication +-- +-- ************************************************************** + +PWSRestartIndication::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ PWSRestartIndicationIEs}}, + ... +} + +PWSRestartIndicationIEs S1AP-PROTOCOL-IES ::= { + { ID id-ECGIListForRestart CRITICALITY reject TYPE ECGIListForRestart PRESENCE mandatory}| + { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}| + { ID id-TAIListForRestart CRITICALITY reject TYPE TAIListForRestart PRESENCE mandatory}| + { ID id-EmergencyAreaIDListForRestart CRITICALITY reject TYPE EmergencyAreaIDListForRestart PRESENCE optional}, + ... +} + -- ************************************************************** -- -- LPPA TRANSPORT ELEMENTARY PROCEDURES @@ -2351,5 +2410,3 @@ UplinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= { } END - - diff --git a/asn1/s1ap/S1AP-PDU-Descriptions.asn b/asn1/s1ap/S1AP-PDU-Descriptions.asn index 3bc2be0f7e..aacc5693c8 100644 --- a/asn1/s1ap/S1AP-PDU-Descriptions.asn +++ b/asn1/s1ap/S1AP-PDU-Descriptions.asn @@ -1,4 +1,4 @@ --- 3GPP TS 36.413 V11.6.0 (2013-12) +-- 3GPP TS 36.413 V12.2.0 (2014-06) -- 9.3.2 Elementary Procedure Definitions -- ************************************************************** -- @@ -98,7 +98,8 @@ FROM S1AP-CommonDataTypes WriteReplaceWarningRequest, WriteReplaceWarningResponse, ENBConfigurationTransfer, - MMEConfigurationTransfer + MMEConfigurationTransfer, + PWSRestartIndication FROM S1AP-PDU-Contents @@ -151,7 +152,8 @@ FROM S1AP-PDU-Contents id-UplinkS1cdma2000tunneling, id-WriteReplaceWarning, id-eNBConfigurationTransfer, - id-MMEConfigurationTransfer + id-MMEConfigurationTransfer, + id-PWSRestartIndication FROM S1AP-Constants; @@ -274,7 +276,8 @@ S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= { downlinkUEAssociatedLPPaTransport | uplinkUEAssociatedLPPaTransport | downlinkNonUEAssociatedLPPaTransport | - uplinkNonUEAssociatedLPPaTransport + uplinkNonUEAssociatedLPPaTransport | + pWSRestartIndication } -- ************************************************************** @@ -563,6 +566,12 @@ privateMessage S1AP-ELEMENTARY-PROCEDURE ::= { CRITICALITY ignore } +pWSRestartIndication S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PWSRestartIndication + PROCEDURE CODE id-PWSRestartIndication + CRITICALITY ignore +} + kill S1AP-ELEMENTARY-PROCEDURE ::= { INITIATING MESSAGE KillRequest SUCCESSFUL OUTCOME KillResponse @@ -601,5 +610,3 @@ uERadioCapabilityMatch S1AP-ELEMENTARY-PROCEDURE ::= { } END - - diff --git a/asn1/s1ap/S1AP-SonTransfer-IEs.asn b/asn1/s1ap/S1AP-SonTransfer-IEs.asn index 87e7124c6b..22ab98494a 100644 --- a/asn1/s1ap/S1AP-SonTransfer-IEs.asn +++ b/asn1/s1ap/S1AP-SonTransfer-IEs.asn @@ -1,4 +1,4 @@ --- 3GPP TS 36.413 V11.6.0 (2013-12) +-- 3GPP TS 36.413 V12.2.0 (2014-06) -- B.2 ASN.1 definition -- ************************************************************** -- @@ -106,7 +106,8 @@ CellLoadReportingResponse::= CHOICE{ eUTRAN EUTRANcellLoadReportingResponse, uTRAN OCTET STRING, gERAN OCTET STRING, - ... + ..., + eHRPD EHRPDSectorLoadReportingResponse } CompositeAvailableCapacityGroup ::= OCTET STRING @@ -126,11 +127,14 @@ EUTRANResponse::= SEQUENCE { ... } +EHRPD-Sector-ID ::= OCTET STRING (SIZE (16)) + IRAT-Cell-ID ::= CHOICE{ eUTRAN OCTET STRING, uTRAN OCTET STRING, gERAN OCTET STRING, - ... + ..., + eHRPD EHRPD-Sector-ID } RequestedCellList ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF IRAT-Cell-ID @@ -153,7 +157,8 @@ MultiCellLoadReportingResponse-Item ::= CHOICE{ eUTRANResponse EUTRANResponse, uTRANResponse OCTET STRING, gERANResponse OCTET STRING, - ... + ..., + eHRPD EHRPDMultiSectorLoadReportingResponseItem } @@ -282,6 +287,33 @@ TooEarlyInterRATHOReportReportFromEUTRAN ::= SEQUENCE { --MobilityInformation ::= BIT STRING (SIZE(32)) +-- +-- IEs for reporting of eHRPD load +-- + +EHRPDCapacityValue ::= INTEGER (0..100) + +EHRPDSectorCapacityClassValue ::= INTEGER (1..100, ...) + +EHRPDSectorLoadReportingResponse ::= SEQUENCE { + dL-EHRPD-CompositeAvailableCapacity EHRPDCompositeAvailableCapacity, + uL-EHRPD-CompositeAvailableCapacity EHRPDCompositeAvailableCapacity, + ... +} + +EHRPDCompositeAvailableCapacity ::= SEQUENCE { + eHRPDSectorCapacityClassValue EHRPDSectorCapacityClassValue, + eHRPDCapacityValue EHRPDCapacityValue, + ... +} + +EHRPDMultiSectorLoadReportingResponseItem ::= SEQUENCE { + eHRPD-Sector-ID EHRPD-Sector-ID, + eHRPDSectorLoadReportingResponse EHRPDSectorLoadReportingResponse, + ... +} + + -- ************************************************************** -- -- Constants @@ -294,3 +326,4 @@ maxnoofCellineNB INTEGER ::= 256 END + diff --git a/asn1/s1ap/s1ap.cnf b/asn1/s1ap/s1ap.cnf index cccdc9a38b..58e8480ac3 100644 --- a/asn1/s1ap/s1ap.cnf +++ b/asn1/s1ap/s1ap.cnf @@ -194,7 +194,7 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound") offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 3, 3, FALSE, ¶meter_tvb); - if(tvb_length(tvb)==0) + if(tvb_reported_length(tvb)==0) return offset; if (!parameter_tvb) @@ -213,7 +213,7 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound") if (!parameter_tvb) return offset; - length = tvb_length(parameter_tvb); + length = tvb_reported_length(parameter_tvb); is_ascii = TRUE; for (p_offset=0; p_offset < length; p_offset++){ @@ -234,7 +234,7 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound") %(DEFAULT_BODY)s - if ((tvb_length(parameter_tvb)>0)&&(nas_eps_handle)) + if ((tvb_reported_length(parameter_tvb)>0)&&(nas_eps_handle)) call_dissector(nas_eps_handle,parameter_tvb,%(ACTX)s->pinfo, tree); #.FN_BODY LPPa-PDU VAL_PTR = ¶meter_tvb @@ -243,7 +243,7 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound") %(DEFAULT_BODY)s - if ((tvb_length(parameter_tvb)>0)&&(lppa_handle)) + if ((tvb_reported_length(parameter_tvb)>0)&&(lppa_handle)) call_dissector(lppa_handle, parameter_tvb, %(ACTX)s->pinfo, tree); #.FN_BODY TransportLayerAddress VAL_PTR = ¶meter_tvb @@ -259,7 +259,7 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound") # a) 32 bits in case of IPv4 address according to [6]; and # b) 128 bits in case of IPv6 address according to [5]. /* Get the length */ - tvb_len = tvb_length(parameter_tvb); + tvb_len = tvb_reported_length(parameter_tvb); subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_TransportLayerAddress); if (tvb_len==4){ /* IPv4 */ @@ -338,7 +338,7 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound") Source BSS to Target BSS Transparent Container 48.018 */ - de_bssgp_source_BSS_to_target_BSS_transp_cont(parameter_tvb, subtree, actx->pinfo, 0, tvb_length(parameter_tvb), NULL, 0); + de_bssgp_source_BSS_to_target_BSS_transp_cont(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(parameter_tvb), NULL, 0); break; case 3: /* utrantolte */ @@ -392,7 +392,7 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound") Target BSS to Source BSS Transparent Container 48.018 */ - de_bssgp_target_BSS_to_source_BSS_transp_cont(parameter_tvb, subtree, actx->pinfo, 0, tvb_length(parameter_tvb), NULL, 0); + de_bssgp_target_BSS_to_source_BSS_transp_cont(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(parameter_tvb), NULL, 0); break; case 3: @@ -496,7 +496,7 @@ if (g_s1ap_dissect_container) { return offset; subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_RIMInformation); - if ((tvb_length(parameter_tvb)>0)&&(bssgp_handle)){ + if ((tvb_reported_length(parameter_tvb)>0)&&(bssgp_handle)){ col_set_fence(%(ACTX)s->pinfo->cinfo, COL_INFO); call_dissector(bssgp_handle,parameter_tvb,%(ACTX)s->pinfo, subtree); } @@ -557,6 +557,7 @@ id-uplinkUEAssociatedLPPaTransport ProcedureCode id-downlinkNonUEAssociatedLPPaTransport ProcedureCode id-uplinkNonUEAssociatedLPPaTransport ProcedureCode id-UERadioCapabilityMatch ProcedureCode +id-PWSRestartIndication ProcedureCode # ProtocolIE-ID id-MME-UE-S1AP-ID ProtocolIE-ID @@ -724,6 +725,19 @@ id-SignallingBasedMDTPLMNList ProtocolIE-ID id-ULCOUNTValueExtended ProtocolIE-ID id-DLCOUNTValueExtended ProtocolIE-ID id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID +id-ECGIListForRestart ProtocolIE-ID +id-SIPTO-Correlation-ID ProtocolIE-ID +id-SIPTO-L-GW-TransportLayerAddress ProtocolIE-ID +id-TransportInformation ProtocolIE-ID +id-LHN-ID ProtocolIE-ID +id-AdditionalCSFallbackIndicator ProtocolIE-ID +id-TAIListForRestart ProtocolIE-ID +id-UserLocationInformation ProtocolIE-ID +id-EmergencyAreaIDListForRestart ProtocolIE-ID +id-KillAllWarningMessages ProtocolIE-ID +id-Masked-IMEISV ProtocolIE-ID +id-eNBIndirectX2TransportLayerAddresses ProtocolIE-ID + #.END #.REGISTER_NEW @@ -874,6 +888,14 @@ VoiceSupportMatchIndicator N s1ap.ies id-VoiceSupportMatchIndicator GUMMEIType N s1ap.ies id-GUMMEIType TunnelInformation N s1ap.ies id-Tunnel-Information-for-BBF MDTPLMNList N s1ap.ies id-ManagementBasedMDTPLMNList +ECGIListForRestart N s1ap.ies id-ECGIListForRestart +TransportLayerAddress N s1ap.ies id-SIPTO-L-GW-TransportLayerAddress +LHN-ID N s1ap.ies id-LHN-ID +AdditionalCSFallbackIndicator N s1ap.ies id-AdditionalCSFallbackIndicator +TAIListForRestart N s1ap.ies id-TAIListForRestart +UserLocationInformation N s1ap.ies id-UserLocationInformation +KillAllWarningMessages N s1ap.ies id-KillAllWarningMessages +Masked-IMEISV N s1ap.ies id-Masked-IMEISV #S1AP-PROTOCOL-IES-PAIR #RAB-SetupOrModifyItemFirst N s1ap.ies.pair.first id-RAB-SetupOrModifyItem @@ -899,6 +921,10 @@ MDTPLMNList N s1ap.extension id-SignallingBasedMDTPLMNList COUNTValueExtended N s1ap.extension id-ULCOUNTValueExtended COUNTValueExtended N s1ap.extension id-DLCOUNTValueExtended ReceiveStatusOfULPDCPSDUsExtended N s1ap.extension id-ReceiveStatusOfULPDCPSDUsExtended +Correlation-ID N s1ap.extension id-SIPTO-Correlation-ID +TransportInformation N s1ap.extension id-TransportInformation +EmergencyAreaIDListForRestart N s1ap.extension id-EmergencyAreaIDListForRestart +ENBIndirectX2TransportLayerAddresses N s1ap.extension id-eNBIndirectX2TransportLayerAddresses #S1AP-ELEMENTARY-PROCEDURE HandoverRequired N s1ap.proc.imsg id-HandoverPreparation @@ -1024,6 +1050,8 @@ UplinkNonUEAssociatedLPPaTransport N s1ap.proc.imsg id-uplinkNonUEAssociatedLPP UERadioCapabilityMatchRequest N s1ap.proc.imsg id-UERadioCapabilityMatch UERadioCapabilityMatchResponse N s1ap.proc.sout id-UERadioCapabilityMatch +PWSRestartIndication N s1ap.proc.imsg id-PWSRestartIndication + #.FN_HDR E-RABSetupRequest col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABSetupRequest "); #.FN_HDR E-RABSetupResponse diff --git a/epan/dissectors/packet-s1ap.c b/epan/dissectors/packet-s1ap.c index d9f930d75b..004435b016 100644 --- a/epan/dissectors/packet-s1ap.c +++ b/epan/dissectors/packet-s1ap.c @@ -105,6 +105,9 @@ static dissector_handle_t bssgp_handle; #define maxnoofCellIDforMDT 32 #define maxnoofTAforMDT 8 #define maxnoofMDTPLMNs 16 +#define maxnoofCellsforRestart 256 +#define maxnoofRestartTAIs 2048 +#define maxnoofRestartEmergencyAreaIDs 256 #define maxnoofIRATReportingCells 128 #define maxnoofcandidateCells 16 #define maxnoofCellineNB 256 @@ -158,7 +161,8 @@ typedef enum _ProcedureCode_enum { id_uplinkUEAssociatedLPPaTransport = 45, id_downlinkNonUEAssociatedLPPaTransport = 46, id_uplinkNonUEAssociatedLPPaTransport = 47, - id_UERadioCapabilityMatch = 48 + id_UERadioCapabilityMatch = 48, + id_PWSRestartIndication = 49 } ProcedureCode_enum; typedef enum _ProtocolIE_ID_enum { @@ -247,7 +251,6 @@ typedef enum _ProtocolIE_ID_enum { id_Unknown_82 = 82, id_cdma2000HOStatus = 83, id_cdma2000HORequiredIndication = 84, - id_Unknown_85 = 85, id_E_UTRAN_Trace_ID = 86, id_RelativeMMECapacity = 87, id_SourceMME_UE_S1AP_ID = 88, @@ -343,7 +346,19 @@ typedef enum _ProtocolIE_ID_enum { id_SignallingBasedMDTPLMNList = 178, id_ULCOUNTValueExtended = 179, id_DLCOUNTValueExtended = 180, - id_ReceiveStatusOfULPDCPSDUsExtended = 181 + id_ReceiveStatusOfULPDCPSDUsExtended = 181, + id_ECGIListForRestart = 182, + id_SIPTO_Correlation_ID = 183, + id_SIPTO_L_GW_TransportLayerAddress = 184, + id_TransportInformation = 185, + id_LHN_ID = 186, + id_AdditionalCSFallbackIndicator = 187, + id_TAIListForRestart = 188, + id_UserLocationInformation = 189, + id_EmergencyAreaIDListForRestart = 190, + id_KillAllWarningMessages = 191, + id_Masked_IMEISV = 192, + id_eNBIndirectX2TransportLayerAddresses = 193 } ProtocolIE_ID_enum; /*--- End of included file: packet-s1ap-val.h ---*/ @@ -373,6 +388,7 @@ static int hf_s1ap_CNDomain_PDU = -1; /* CNDomain */ static int hf_s1ap_ConcurrentWarningMessageIndicator_PDU = -1; /* ConcurrentWarningMessageIndicator */ static int hf_s1ap_Correlation_ID_PDU = -1; /* Correlation_ID */ static int hf_s1ap_CSFallbackIndicator_PDU = -1; /* CSFallbackIndicator */ +static int hf_s1ap_AdditionalCSFallbackIndicator_PDU = -1; /* AdditionalCSFallbackIndicator */ static int hf_s1ap_CSG_Id_PDU = -1; /* CSG_Id */ static int hf_s1ap_CSG_IdList_PDU = -1; /* CSG_IdList */ static int hf_s1ap_CSGMembershipStatus_PDU = -1; /* CSGMembershipStatus */ @@ -381,6 +397,7 @@ static int hf_s1ap_CriticalityDiagnostics_PDU = -1; /* CriticalityDiagnostics * static int hf_s1ap_DataCodingScheme_PDU = -1; /* DataCodingScheme */ 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_EmergencyAreaIDListForRestart_PDU = -1; /* EmergencyAreaIDListForRestart */ static int hf_s1ap_s1ap_Global_ENB_ID_PDU = -1; /* Global_ENB_ID */ static int hf_s1ap_GUMMEIList_PDU = -1; /* GUMMEIList */ static int hf_s1ap_s1ap_ENB_StatusTransfer_TransparentContainer_PDU = -1; /* ENB_StatusTransfer_TransparentContainer */ @@ -397,8 +414,11 @@ static int hf_s1ap_GUMMEIType_PDU = -1; /* GUMMEIType */ static int hf_s1ap_GWContextReleaseIndication_PDU = -1; /* GWContextReleaseIndication */ static int hf_s1ap_HandoverRestrictionList_PDU = -1; /* HandoverRestrictionList */ static int hf_s1ap_HandoverType_PDU = -1; /* HandoverType */ +static int hf_s1ap_Masked_IMEISV_PDU = -1; /* Masked_IMEISV */ +static int hf_s1ap_KillAllWarningMessages_PDU = -1; /* KillAllWarningMessages */ static int hf_s1ap_LAI_PDU = -1; /* LAI */ static int hf_s1ap_LPPa_PDU_PDU = -1; /* LPPa_PDU */ +static int hf_s1ap_LHN_ID_PDU = -1; /* LHN_ID */ static int hf_s1ap_M3Configuration_PDU = -1; /* M3Configuration */ static int hf_s1ap_M4Configuration_PDU = -1; /* M4Configuration */ static int hf_s1ap_M5Configuration_PDU = -1; /* M5Configuration */ @@ -428,6 +448,7 @@ static int hf_s1ap_RelayNode_Indicator_PDU = -1; /* RelayNode_Indicator */ static int hf_s1ap_RequestType_PDU = -1; /* RequestType */ static int hf_s1ap_RepetitionPeriod_PDU = -1; /* RepetitionPeriod */ static int hf_s1ap_RRC_Establishment_Cause_PDU = -1; /* RRC_Establishment_Cause */ +static int hf_s1ap_ECGIListForRestart_PDU = -1; /* ECGIListForRestart */ static int hf_s1ap_Routing_ID_PDU = -1; /* Routing_ID */ static int hf_s1ap_SecurityKey_PDU = -1; /* SecurityKey */ static int hf_s1ap_SecurityContext_PDU = -1; /* SecurityContext */ @@ -449,10 +470,12 @@ static int hf_s1ap_TargeteNB_ToSourceeNB_TransparentContainer_PDU = -1; /* Targ static int hf_s1ap_Target_ToSource_TransparentContainer_PDU = -1; /* Target_ToSource_TransparentContainer */ static int hf_s1ap_TimeToWait_PDU = -1; /* TimeToWait */ static int hf_s1ap_Time_UE_StayedInCell_EnhancedGranularity_PDU = -1; /* Time_UE_StayedInCell_EnhancedGranularity */ +static int hf_s1ap_TransportInformation_PDU = -1; /* TransportInformation */ static int hf_s1ap_TransportLayerAddress_PDU = -1; /* TransportLayerAddress */ static int hf_s1ap_TraceActivation_PDU = -1; /* TraceActivation */ static int hf_s1ap_TrafficLoadReductionIndication_PDU = -1; /* TrafficLoadReductionIndication */ static int hf_s1ap_TunnelInformation_PDU = -1; /* TunnelInformation */ +static int hf_s1ap_TAIListForRestart_PDU = -1; /* TAIListForRestart */ static int hf_s1ap_UEAggregateMaximumBitrate_PDU = -1; /* UEAggregateMaximumBitrate */ static int hf_s1ap_UE_S1AP_IDs_PDU = -1; /* UE_S1AP_IDs */ static int hf_s1ap_UE_associatedLogicalS1_ConnectionItem_PDU = -1; /* UE_associatedLogicalS1_ConnectionItem */ @@ -460,6 +483,7 @@ static int hf_s1ap_UEIdentityIndexValue_PDU = -1; /* UEIdentityIndexValue */ static int hf_s1ap_UEPagingID_PDU = -1; /* UEPagingID */ static int hf_s1ap_UERadioCapability_PDU = -1; /* UERadioCapability */ static int hf_s1ap_UESecurityCapabilities_PDU = -1; /* UESecurityCapabilities */ +static int hf_s1ap_UserLocationInformation_PDU = -1; /* UserLocationInformation */ static int hf_s1ap_VoiceSupportMatchIndicator_PDU = -1; /* VoiceSupportMatchIndicator */ static int hf_s1ap_WarningAreaList_PDU = -1; /* WarningAreaList */ static int hf_s1ap_WarningType_PDU = -1; /* WarningType */ @@ -467,6 +491,7 @@ static int hf_s1ap_WarningSecurityInfo_PDU = -1; /* WarningSecurityInfo */ static int hf_s1ap_WarningMessageContents_PDU = -1; /* WarningMessageContents */ static int hf_s1ap_X2TNLConfigurationInfo_PDU = -1; /* X2TNLConfigurationInfo */ static int hf_s1ap_ENBX2ExtTLAs_PDU = -1; /* ENBX2ExtTLAs */ +static int hf_s1ap_ENBIndirectX2TransportLayerAddresses_PDU = -1; /* ENBIndirectX2TransportLayerAddresses */ static int hf_s1ap_HandoverRequired_PDU = -1; /* HandoverRequired */ static int hf_s1ap_HandoverCommand_PDU = -1; /* HandoverCommand */ static int hf_s1ap_E_RABSubjecttoDataForwardingList_PDU = -1; /* E_RABSubjecttoDataForwardingList */ @@ -568,6 +593,7 @@ static int hf_s1ap_MMEConfigurationTransfer_PDU = -1; /* MMEConfigurationTransf static int hf_s1ap_PrivateMessage_PDU = -1; /* PrivateMessage */ static int hf_s1ap_KillRequest_PDU = -1; /* KillRequest */ static int hf_s1ap_KillResponse_PDU = -1; /* KillResponse */ +static int hf_s1ap_PWSRestartIndication_PDU = -1; /* PWSRestartIndication */ static int hf_s1ap_DownlinkUEAssociatedLPPaTransport_PDU = -1; /* DownlinkUEAssociatedLPPaTransport */ static int hf_s1ap_UplinkUEAssociatedLPPaTransport_PDU = -1; /* UplinkUEAssociatedLPPaTransport */ static int hf_s1ap_DownlinkNonUEAssociatedLPPaTransport_PDU = -1; /* DownlinkNonUEAssociatedLPPaTransport */ @@ -653,6 +679,7 @@ static int hf_s1ap_completedCellinEAI = -1; /* CompletedCellinEAI */ static int hf_s1ap_EmergencyAreaID_Cancelled_item = -1; /* EmergencyAreaID_Cancelled_Item */ static int hf_s1ap_cancelledCellinEAI = -1; /* CancelledCellinEAI */ static int hf_s1ap_CompletedCellinEAI_item = -1; /* CompletedCellinEAI_Item */ +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_lAI = -1; /* LAI */ @@ -722,6 +749,8 @@ static int hf_s1ap_rIMInformation = -1; /* RIMInformation */ static int hf_s1ap_rIMRoutingAddress = -1; /* RIMRoutingAddress */ static int hf_s1ap_gERAN_Cell_ID = -1; /* GERAN_Cell_ID */ static int hf_s1ap_targetRNC_ID = -1; /* TargetRNC_ID */ +static int hf_s1ap_eHRPD_Sector_ID = -1; /* OCTET_STRING_SIZE_16 */ +static int hf_s1ap_ECGIListForRestart_item = -1; /* EUTRAN_CGI */ static int hf_s1ap_nextHopChainingCount = -1; /* INTEGER_0_7 */ static int hf_s1ap_nextHopParameter = -1; /* SecurityKey */ static int hf_s1ap_sONInformationRequest = -1; /* SONInformationRequest */ @@ -766,12 +795,14 @@ static int hf_s1ap_cGI = -1; /* CGI */ static int hf_s1ap_rNC_ID = -1; /* RNC_ID */ static int hf_s1ap_extendedRNC_ID = -1; /* ExtendedRNC_ID */ static int hf_s1ap_measurementThreshold = -1; /* MeasurementThresholdA2 */ +static int hf_s1ap_transportLayerAddress = -1; /* TransportLayerAddress */ +static int hf_s1ap_uL_GTP_TEID = -1; /* GTP_TEID */ static int hf_s1ap_e_UTRAN_Trace_ID = -1; /* E_UTRAN_Trace_ID */ static int hf_s1ap_interfacesToTrace = -1; /* InterfacesToTrace */ static int hf_s1ap_traceDepth = -1; /* TraceDepth */ static int hf_s1ap_traceCollectionEntityIPAddress = -1; /* TransportLayerAddress */ -static int hf_s1ap_transportLayerAddress = -1; /* TransportLayerAddress */ static int hf_s1ap_uDP_Port_Number = -1; /* Port_Number */ +static int hf_s1ap_TAIListForRestart_item = -1; /* TAI */ static int hf_s1ap_uEaggregateMaximumBitRateDL = -1; /* BitRate */ static int hf_s1ap_uEaggregateMaximumBitRateUL = -1; /* BitRate */ static int hf_s1ap_uE_S1AP_ID_pair = -1; /* UE_S1AP_ID_pair */ @@ -782,6 +813,8 @@ 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_eutran_cgi = -1; /* EUTRAN_CGI */ +static int hf_s1ap_tai = -1; /* TAI */ static int hf_s1ap_cellIDList = -1; /* ECGIList */ static int hf_s1ap_trackingAreaListforWarning = -1; /* TAIListforWarning */ static int hf_s1ap_emergencyAreaIDList = -1; /* EmergencyAreaIDList */ @@ -790,11 +823,11 @@ static int hf_s1ap_ENBX2ExtTLAs_item = -1; /* ENBX2ExtTLA */ static int hf_s1ap_iPsecTLA = -1; /* TransportLayerAddress */ static int hf_s1ap_gTPTLAa = -1; /* ENBX2GTPTLAs */ static int hf_s1ap_ENBX2GTPTLAs_item = -1; /* TransportLayerAddress */ +static int hf_s1ap_ENBIndirectX2TransportLayerAddresses_item = -1; /* TransportLayerAddress */ static int hf_s1ap_protocolIEs = -1; /* ProtocolIE_Container */ static int hf_s1ap_dL_transportLayerAddress = -1; /* TransportLayerAddress */ static int hf_s1ap_dL_gTP_TEID = -1; /* GTP_TEID */ static int hf_s1ap_uL_TransportLayerAddress = -1; /* TransportLayerAddress */ -static int hf_s1ap_uL_GTP_TEID = -1; /* GTP_TEID */ static int hf_s1ap_gTP_TEID = -1; /* GTP_TEID */ static int hf_s1ap_e_RABlevelQosParameters = -1; /* E_RABLevelQoSParameters */ static int hf_s1ap_E_RABToBeSetupListBearerSUReq_item = -1; /* ProtocolIE_SingleContainer */ @@ -844,10 +877,12 @@ static int hf_s1ap_failureEventReporting_02 = -1; /* FailureEventReportingCause static int hf_s1ap_eUTRAN = -1; /* EUTRANcellLoadReportingResponse */ static int hf_s1ap_uTRAN = -1; /* OCTET_STRING */ static int hf_s1ap_gERAN = -1; /* OCTET_STRING */ +static int hf_s1ap_eHRPD = -1; /* EHRPDSectorLoadReportingResponse */ static int hf_s1ap_compositeAvailableCapacityGroup = -1; /* CompositeAvailableCapacityGroup */ static int hf_s1ap_cell_ID_01 = -1; /* OCTET_STRING */ static int hf_s1ap_eUTRANcellLoadReportingResponse = -1; /* EUTRANcellLoadReportingResponse */ static int hf_s1ap_eUTRAN_01 = -1; /* OCTET_STRING */ +static int hf_s1ap_eHRPD_01 = -1; /* EHRPD_Sector_ID */ static int hf_s1ap_RequestedCellList_item = -1; /* IRAT_Cell_ID */ static int hf_s1ap_requestedCellList = -1; /* RequestedCellList */ static int hf_s1ap_cell_ID_02 = -1; /* IRAT_Cell_ID */ @@ -856,6 +891,7 @@ static int hf_s1ap_MultiCellLoadReportingResponse_item = -1; /* MultiCellLoadRe static int hf_s1ap_eUTRANResponse = -1; /* EUTRANResponse */ static int hf_s1ap_uTRANResponse = -1; /* OCTET_STRING */ static int hf_s1ap_gERANResponse = -1; /* OCTET_STRING */ +static int hf_s1ap_eHRPD_02 = -1; /* EHRPDMultiSectorLoadReportingResponseItem */ static int hf_s1ap_numberOfMeasurementReportingLevels = -1; /* NumberOfMeasurementReportingLevels */ static int hf_s1ap_cellLoadReportingResponse = -1; /* CellLoadReportingResponse */ static int hf_s1ap_overloadFlag = -1; /* OverloadFlag */ @@ -876,6 +912,12 @@ static int hf_s1ap_notifyFlag = -1; /* NotifyFlag */ static int hf_s1ap_tooEarlyInterRATHOReportFromEUTRAN = -1; /* TooEarlyInterRATHOReportReportFromEUTRAN */ static int hf_s1ap_uERLFReportContainer = -1; /* OCTET_STRING */ static int hf_s1ap_mobilityInformation = -1; /* MobilityInformation */ +static int hf_s1ap_dL_EHRPD_CompositeAvailableCapacity = -1; /* EHRPDCompositeAvailableCapacity */ +static int hf_s1ap_uL_EHRPD_CompositeAvailableCapacity = -1; /* EHRPDCompositeAvailableCapacity */ +static int hf_s1ap_eHRPDSectorCapacityClassValue = -1; /* EHRPDSectorCapacityClassValue */ +static int hf_s1ap_eHRPDCapacityValue = -1; /* EHRPDCapacityValue */ +static int hf_s1ap_eHRPD_Sector_ID_01 = -1; /* EHRPD_Sector_ID */ +static int hf_s1ap_eHRPDSectorLoadReportingResponse = -1; /* EHRPDSectorLoadReportingResponse */ /*--- End of included file: packet-s1ap-hf.c ---*/ #line 75 "../../asn1/s1ap/packet-s1ap-template.c" @@ -936,6 +978,7 @@ static gint ett_s1ap_EmergencyAreaID_Cancelled = -1; static gint ett_s1ap_EmergencyAreaID_Cancelled_Item = -1; static gint ett_s1ap_CompletedCellinEAI = -1; static gint ett_s1ap_CompletedCellinEAI_Item = -1; +static gint ett_s1ap_EmergencyAreaIDListForRestart = -1; static gint ett_s1ap_ENB_ID = -1; static gint ett_s1ap_GERAN_Cell_ID = -1; static gint ett_s1ap_Global_ENB_ID = -1; @@ -976,6 +1019,7 @@ static gint ett_s1ap_M1PeriodicReporting = -1; static gint ett_s1ap_RequestType = -1; static gint ett_s1ap_RIMTransfer = -1; static gint ett_s1ap_RIMRoutingAddress = -1; +static gint ett_s1ap_ECGIListForRestart = -1; static gint ett_s1ap_SecurityContext = -1; static gint ett_s1ap_SONInformation = -1; static gint ett_s1ap_SONInformationReply = -1; @@ -1008,8 +1052,10 @@ static gint ett_s1ap_TargeteNB_ID = -1; static gint ett_s1ap_TargetRNC_ID = -1; static gint ett_s1ap_TargeteNB_ToSourceeNB_TransparentContainer = -1; static gint ett_s1ap_M1ThresholdEventA2 = -1; +static gint ett_s1ap_TransportInformation = -1; static gint ett_s1ap_TraceActivation = -1; static gint ett_s1ap_TunnelInformation = -1; +static gint ett_s1ap_TAIListForRestart = -1; static gint ett_s1ap_UEAggregateMaximumBitrate = -1; static gint ett_s1ap_UE_S1AP_IDs = -1; static gint ett_s1ap_UE_S1AP_ID_pair = -1; @@ -1017,11 +1063,13 @@ 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_UserLocationInformation = -1; static gint ett_s1ap_WarningAreaList = -1; static gint ett_s1ap_X2TNLConfigurationInfo = -1; static gint ett_s1ap_ENBX2ExtTLAs = -1; static gint ett_s1ap_ENBX2ExtTLA = -1; static gint ett_s1ap_ENBX2GTPTLAs = -1; +static gint ett_s1ap_ENBIndirectX2TransportLayerAddresses = -1; static gint ett_s1ap_HandoverRequired = -1; static gint ett_s1ap_HandoverCommand = -1; static gint ett_s1ap_E_RABDataForwardingItem = -1; @@ -1118,6 +1166,7 @@ static gint ett_s1ap_MMEConfigurationTransfer = -1; static gint ett_s1ap_PrivateMessage = -1; static gint ett_s1ap_KillRequest = -1; static gint ett_s1ap_KillResponse = -1; +static gint ett_s1ap_PWSRestartIndication = -1; static gint ett_s1ap_DownlinkUEAssociatedLPPaTransport = -1; static gint ett_s1ap_UplinkUEAssociatedLPPaTransport = -1; static gint ett_s1ap_DownlinkNonUEAssociatedLPPaTransport = -1; @@ -1154,6 +1203,9 @@ static gint ett_s1ap_NotificationCellList = -1; static gint ett_s1ap_NotificationCellList_Item = -1; static gint ett_s1ap_FailureEventReport = -1; static gint ett_s1ap_TooEarlyInterRATHOReportReportFromEUTRAN = -1; +static gint ett_s1ap_EHRPDSectorLoadReportingResponse = -1; +static gint ett_s1ap_EHRPDCompositeAvailableCapacity = -1; +static gint ett_s1ap_EHRPDMultiSectorLoadReportingResponseItem = -1; /*--- End of included file: packet-s1ap-ett.c ---*/ #line 86 "../../asn1/s1ap/packet-s1ap-template.c" @@ -1313,6 +1365,7 @@ static const value_string s1ap_ProcedureCode_vals[] = { { id_downlinkNonUEAssociatedLPPaTransport, "id-downlinkNonUEAssociatedLPPaTransport" }, { id_uplinkNonUEAssociatedLPPaTransport, "id-uplinkNonUEAssociatedLPPaTransport" }, { id_UERadioCapabilityMatch, "id-UERadioCapabilityMatch" }, + { id_PWSRestartIndication, "id-PWSRestartIndication" }, { 0, NULL } }; @@ -1429,7 +1482,6 @@ static const value_string s1ap_ProtocolIE_ID_vals[] = { { id_Unknown_82, "id-Unknown-82" }, { id_cdma2000HOStatus, "id-cdma2000HOStatus" }, { id_cdma2000HORequiredIndication, "id-cdma2000HORequiredIndication" }, - { id_Unknown_85, "id-Unknown-85" }, { id_E_UTRAN_Trace_ID, "id-E-UTRAN-Trace-ID" }, { id_RelativeMMECapacity, "id-RelativeMMECapacity" }, { id_SourceMME_UE_S1AP_ID, "id-SourceMME-UE-S1AP-ID" }, @@ -1526,6 +1578,18 @@ static const value_string s1ap_ProtocolIE_ID_vals[] = { { id_ULCOUNTValueExtended, "id-ULCOUNTValueExtended" }, { id_DLCOUNTValueExtended, "id-DLCOUNTValueExtended" }, { id_ReceiveStatusOfULPDCPSDUsExtended, "id-ReceiveStatusOfULPDCPSDUsExtended" }, + { id_ECGIListForRestart, "id-ECGIListForRestart" }, + { id_SIPTO_Correlation_ID, "id-SIPTO-Correlation-ID" }, + { id_SIPTO_L_GW_TransportLayerAddress, "id-SIPTO-L-GW-TransportLayerAddress" }, + { id_TransportInformation, "id-TransportInformation" }, + { id_LHN_ID, "id-LHN-ID" }, + { id_AdditionalCSFallbackIndicator, "id-AdditionalCSFallbackIndicator" }, + { id_TAIListForRestart, "id-TAIListForRestart" }, + { id_UserLocationInformation, "id-UserLocationInformation" }, + { id_EmergencyAreaIDListForRestart, "id-EmergencyAreaIDListForRestart" }, + { id_KillAllWarningMessages, "id-KillAllWarningMessages" }, + { id_Masked_IMEISV, "id-Masked-IMEISV" }, + { id_eNBIndirectX2TransportLayerAddresses, "id-eNBIndirectX2TransportLayerAddresses" }, { 0, NULL } }; @@ -1720,7 +1784,7 @@ dissect_s1ap_PLMNidentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 3, 3, FALSE, ¶meter_tvb); - if(tvb_length(tvb)==0) + if(tvb_reported_length(tvb)==0) return offset; if (!parameter_tvb) @@ -2498,7 +2562,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 1125 "../../asn1/s1ap/s1ap.cnf" +#line 1153 "../../asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 36, &value, TRUE, 3, NULL); @@ -2520,7 +2584,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 1130 "../../asn1/s1ap/s1ap.cnf" +#line 1158 "../../asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 2, &value, TRUE, 0, NULL); @@ -2545,7 +2609,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 1135 "../../asn1/s1ap/s1ap.cnf" +#line 1163 "../../asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 4, &value, TRUE, 1, NULL); @@ -2572,7 +2636,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 1140 "../../asn1/s1ap/s1ap.cnf" +#line 1168 "../../asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 7, &value, TRUE, 0, NULL); @@ -2598,7 +2662,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 1145 "../../asn1/s1ap/s1ap.cnf" +#line 1173 "../../asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 6, &value, TRUE, 0, NULL); @@ -2917,6 +2981,22 @@ dissect_s1ap_CSFallbackIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * } +static const value_string s1ap_AdditionalCSFallbackIndicator_vals[] = { + { 0, "no-restriction" }, + { 1, "restriction" }, + { 0, NULL } +}; + + +static int +dissect_s1ap_AdditionalCSFallbackIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + static int dissect_s1ap_CSG_Id(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -3156,6 +3236,20 @@ dissect_s1ap_EmergencyAreaIDList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * } +static const per_sequence_t EmergencyAreaIDListForRestart_sequence_of[1] = { + { &hf_s1ap_EmergencyAreaIDListForRestart_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_EmergencyAreaID }, +}; + +static int +dissect_s1ap_EmergencyAreaIDListForRestart(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_EmergencyAreaIDListForRestart, EmergencyAreaIDListForRestart_sequence_of, + 1, maxnoofRestartEmergencyAreaIDs, FALSE); + + return offset; +} + + static int dissect_s1ap_BIT_STRING_SIZE_20(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -3339,7 +3433,7 @@ dissect_s1ap_ENBname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr if (!parameter_tvb) return offset; - length = tvb_length(parameter_tvb); + length = tvb_reported_length(parameter_tvb); is_ascii = TRUE; for (p_offset=0; p_offset < length; p_offset++){ @@ -3372,7 +3466,7 @@ dissect_s1ap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t return offset; /* Get the length */ - tvb_len = tvb_length(parameter_tvb); + tvb_len = tvb_reported_length(parameter_tvb); subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_TransportLayerAddress); if (tvb_len==4){ /* IPv4 */ @@ -3771,6 +3865,16 @@ dissect_s1ap_HandoverType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U +static int +dissect_s1ap_Masked_IMEISV(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, + 64, 64, FALSE, NULL, NULL); + + return offset; +} + + + static int dissect_s1ap_MeasurementsToActivate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, @@ -3967,6 +4071,21 @@ dissect_s1ap_InterfacesToTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac } +static const value_string s1ap_KillAllWarningMessages_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_s1ap_KillAllWarningMessages(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, FALSE, 0, NULL); + + return offset; +} + + static int dissect_s1ap_Time_UE_StayedInCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -4059,7 +4178,7 @@ dissect_s1ap_LPPa_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb); - if ((tvb_length(parameter_tvb)>0)&&(lppa_handle)) + if ((tvb_reported_length(parameter_tvb)>0)&&(lppa_handle)) call_dissector(lppa_handle, parameter_tvb, actx->pinfo, tree); @@ -4068,6 +4187,16 @@ dissect_s1ap_LPPa_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p } + +static int +dissect_s1ap_LHN_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 32, 256, FALSE, NULL); + + return offset; +} + + static const value_string s1ap_Links_to_log_vals[] = { { 0, "uplink" }, { 1, "downlink" }, @@ -4452,7 +4581,7 @@ dissect_s1ap_NAS_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb); - if ((tvb_length(parameter_tvb)>0)&&(nas_eps_handle)) + if ((tvb_reported_length(parameter_tvb)>0)&&(nas_eps_handle)) call_dissector(nas_eps_handle,parameter_tvb,actx->pinfo, tree); @@ -4676,7 +4805,7 @@ dissect_s1ap_RIMInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx return offset; subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_RIMInformation); - if ((tvb_length(parameter_tvb)>0)&&(bssgp_handle)){ + if ((tvb_reported_length(parameter_tvb)>0)&&(bssgp_handle)){ col_set_fence(actx->pinfo->cinfo, COL_INFO); call_dissector(bssgp_handle,parameter_tvb,actx->pinfo, subtree); } @@ -4716,15 +4845,27 @@ dissect_s1ap_TargetRNC_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U } + +static int +dissect_s1ap_OCTET_STRING_SIZE_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 16, 16, FALSE, NULL); + + return offset; +} + + static const value_string s1ap_RIMRoutingAddress_vals[] = { { 0, "gERAN-Cell-ID" }, { 1, "targetRNC-ID" }, + { 2, "eHRPD-Sector-ID" }, { 0, NULL } }; static const per_choice_t RIMRoutingAddress_choice[] = { { 0, &hf_s1ap_gERAN_Cell_ID , ASN1_EXTENSION_ROOT , dissect_s1ap_GERAN_Cell_ID }, { 1, &hf_s1ap_targetRNC_ID , ASN1_NOT_EXTENSION_ROOT, dissect_s1ap_TargetRNC_ID }, + { 2, &hf_s1ap_eHRPD_Sector_ID, ASN1_NOT_EXTENSION_ROOT, dissect_s1ap_OCTET_STRING_SIZE_16 }, { 0, NULL, 0, NULL } }; @@ -4825,6 +4966,20 @@ dissect_s1ap_RRC_Establishment_Cause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx } +static const per_sequence_t ECGIListForRestart_sequence_of[1] = { + { &hf_s1ap_ECGIListForRestart_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_EUTRAN_CGI }, +}; + +static int +dissect_s1ap_ECGIListForRestart(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_ECGIListForRestart, ECGIListForRestart_sequence_of, + 1, maxnoofCellsforRestart, FALSE); + + return offset; +} + + static int dissect_s1ap_Routing_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -5041,7 +5196,7 @@ dissect_s1ap_Source_ToTarget_TransparentContainer(tvbuff_t *tvb _U_, int offset Source BSS to Target BSS Transparent Container 48.018 */ - de_bssgp_source_BSS_to_target_BSS_transp_cont(parameter_tvb, subtree, actx->pinfo, 0, tvb_length(parameter_tvb), NULL, 0); + de_bssgp_source_BSS_to_target_BSS_transp_cont(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(parameter_tvb), NULL, 0); break; case 3: /* utrantolte */ @@ -5394,7 +5549,7 @@ dissect_s1ap_Target_ToSource_TransparentContainer(tvbuff_t *tvb _U_, int offset Target BSS to Source BSS Transparent Container 48.018 */ - de_bssgp_target_BSS_to_source_BSS_transp_cont(parameter_tvb, subtree, actx->pinfo, 0, tvb_length(parameter_tvb), NULL, 0); + de_bssgp_target_BSS_to_source_BSS_transp_cont(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(parameter_tvb), NULL, 0); break; case 3: @@ -5447,6 +5602,21 @@ dissect_s1ap_Time_UE_StayedInCell_EnhancedGranularity(tvbuff_t *tvb _U_, int off } +static const per_sequence_t TransportInformation_sequence[] = { + { &hf_s1ap_transportLayerAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_TransportLayerAddress }, + { &hf_s1ap_uL_GTP_TEID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_GTP_TEID }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_TransportInformation(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_TransportInformation, TransportInformation_sequence); + + return offset; +} + + static int dissect_s1ap_E_UTRAN_Trace_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -5521,6 +5691,20 @@ dissect_s1ap_TunnelInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac } +static const per_sequence_t TAIListForRestart_sequence_of[1] = { + { &hf_s1ap_TAIListForRestart_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_TAI }, +}; + +static int +dissect_s1ap_TAIListForRestart(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_TAIListForRestart, TAIListForRestart_sequence_of, + 1, maxnoofRestartTAIs, FALSE); + + return offset; +} + + static const per_sequence_t UEAggregateMaximumBitrate_sequence[] = { { &hf_s1ap_uEaggregateMaximumBitRateDL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_BitRate }, { &hf_s1ap_uEaggregateMaximumBitRateUL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_BitRate }, @@ -5663,6 +5847,22 @@ dissect_s1ap_UESecurityCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ } +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 }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_UserLocationInformation(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_UserLocationInformation, UserLocationInformation_sequence); + + return offset; +} + + static const value_string s1ap_VoiceSupportMatchIndicator_vals[] = { { 0, "supported" }, { 1, "not-supported" }, @@ -5777,6 +5977,20 @@ dissect_s1ap_ENBX2ExtTLAs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U } +static const per_sequence_t ENBIndirectX2TransportLayerAddresses_sequence_of[1] = { + { &hf_s1ap_ENBIndirectX2TransportLayerAddresses_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_TransportLayerAddress }, +}; + +static int +dissect_s1ap_ENBIndirectX2TransportLayerAddresses(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_ENBIndirectX2TransportLayerAddresses, ENBIndirectX2TransportLayerAddresses_sequence_of, + 1, maxnoofeNBX2TLAs, FALSE); + + return offset; +} + + static int dissect_s1ap_E_RAB_IE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -5864,7 +6078,7 @@ static const per_sequence_t HandoverPreparationFailure_sequence[] = { static int dissect_s1ap_HandoverPreparationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1066 "../../asn1/s1ap/s1ap.cnf" +#line 1094 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverPreparationFailure "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -5927,7 +6141,7 @@ static const per_sequence_t HandoverRequestAcknowledge_sequence[] = { static int dissect_s1ap_HandoverRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1070 "../../asn1/s1ap/s1ap.cnf" +#line 1098 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverRequestAcknowledge "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -5999,7 +6213,7 @@ static const per_sequence_t HandoverFailure_sequence[] = { static int dissect_s1ap_HandoverFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1072 "../../asn1/s1ap/s1ap.cnf" +#line 1100 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverFailure "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6016,7 +6230,7 @@ static const per_sequence_t HandoverNotify_sequence[] = { static int dissect_s1ap_HandoverNotify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1074 "../../asn1/s1ap/s1ap.cnf" +#line 1102 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverNotify "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6033,7 +6247,7 @@ static const per_sequence_t PathSwitchRequest_sequence[] = { static int dissect_s1ap_PathSwitchRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1076 "../../asn1/s1ap/s1ap.cnf" +#line 1104 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", PathSwitchRequest "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6076,7 +6290,7 @@ static const per_sequence_t PathSwitchRequestAcknowledge_sequence[] = { static int dissect_s1ap_PathSwitchRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1078 "../../asn1/s1ap/s1ap.cnf" +#line 1106 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", PathSwitchRequestAcknowledge "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6119,7 +6333,7 @@ static const per_sequence_t PathSwitchRequestFailure_sequence[] = { static int dissect_s1ap_PathSwitchRequestFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1080 "../../asn1/s1ap/s1ap.cnf" +#line 1108 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", PathSwitchRequestFailure "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6136,7 +6350,7 @@ static const per_sequence_t HandoverCancel_sequence[] = { static int dissect_s1ap_HandoverCancel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1082 "../../asn1/s1ap/s1ap.cnf" +#line 1110 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverCancel "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6153,7 +6367,7 @@ static const per_sequence_t HandoverCancelAcknowledge_sequence[] = { static int dissect_s1ap_HandoverCancelAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1084 "../../asn1/s1ap/s1ap.cnf" +#line 1112 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverCancelAcknowledge "); @@ -6172,7 +6386,7 @@ static const per_sequence_t E_RABSetupRequest_sequence[] = { static int dissect_s1ap_E_RABSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1028 "../../asn1/s1ap/s1ap.cnf" +#line 1056 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABSetupRequest "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6222,7 +6436,7 @@ static const per_sequence_t E_RABSetupResponse_sequence[] = { static int dissect_s1ap_E_RABSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1030 "../../asn1/s1ap/s1ap.cnf" +#line 1058 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABSetupResponse "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6270,7 +6484,7 @@ static const per_sequence_t E_RABModifyRequest_sequence[] = { static int dissect_s1ap_E_RABModifyRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1032 "../../asn1/s1ap/s1ap.cnf" +#line 1060 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABModifyRequest "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6318,7 +6532,7 @@ static const per_sequence_t E_RABModifyResponse_sequence[] = { static int dissect_s1ap_E_RABModifyResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1034 "../../asn1/s1ap/s1ap.cnf" +#line 1062 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABModifyResponse "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6364,7 +6578,7 @@ static const per_sequence_t E_RABReleaseCommand_sequence[] = { static int dissect_s1ap_E_RABReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1036 "../../asn1/s1ap/s1ap.cnf" +#line 1064 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABReleaseCommand "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6381,7 +6595,7 @@ static const per_sequence_t E_RABReleaseResponse_sequence[] = { static int dissect_s1ap_E_RABReleaseResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1038 "../../asn1/s1ap/s1ap.cnf" +#line 1066 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABReleaseResponse "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6427,7 +6641,7 @@ static const per_sequence_t E_RABReleaseIndication_sequence[] = { static int dissect_s1ap_E_RABReleaseIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1040 "../../asn1/s1ap/s1ap.cnf" +#line 1068 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABReleaseIndication "); @@ -6445,7 +6659,7 @@ static const per_sequence_t InitialContextSetupRequest_sequence[] = { static int dissect_s1ap_InitialContextSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1043 "../../asn1/s1ap/s1ap.cnf" +#line 1071 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", InitialContextSetupRequest "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6495,7 +6709,7 @@ static const per_sequence_t InitialContextSetupResponse_sequence[] = { static int dissect_s1ap_InitialContextSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1045 "../../asn1/s1ap/s1ap.cnf" +#line 1073 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", InitialContextSetupResponse "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6543,7 +6757,7 @@ static const per_sequence_t InitialContextSetupFailure_sequence[] = { static int dissect_s1ap_InitialContextSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1047 "../../asn1/s1ap/s1ap.cnf" +#line 1075 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", InitialContextSetupFailure "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6603,7 +6817,7 @@ static const per_sequence_t UEContextReleaseRequest_sequence[] = { static int dissect_s1ap_UEContextReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1049 "../../asn1/s1ap/s1ap.cnf" +#line 1077 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextReleaseRequest "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6620,7 +6834,7 @@ static const per_sequence_t UEContextReleaseCommand_sequence[] = { static int dissect_s1ap_UEContextReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1051 "../../asn1/s1ap/s1ap.cnf" +#line 1079 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextReleaseCommand "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6637,7 +6851,7 @@ static const per_sequence_t UEContextReleaseComplete_sequence[] = { static int dissect_s1ap_UEContextReleaseComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1053 "../../asn1/s1ap/s1ap.cnf" +#line 1081 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextReleaseComplete "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6654,7 +6868,7 @@ static const per_sequence_t UEContextModificationRequest_sequence[] = { static int dissect_s1ap_UEContextModificationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1055 "../../asn1/s1ap/s1ap.cnf" +#line 1083 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextModificationRequest "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6671,7 +6885,7 @@ static const per_sequence_t UEContextModificationResponse_sequence[] = { static int dissect_s1ap_UEContextModificationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1057 "../../asn1/s1ap/s1ap.cnf" +#line 1085 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextModificationResponse "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6688,7 +6902,7 @@ static const per_sequence_t UEContextModificationFailure_sequence[] = { static int dissect_s1ap_UEContextModificationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1059 "../../asn1/s1ap/s1ap.cnf" +#line 1087 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextModificationFailure "); @@ -6805,7 +7019,7 @@ static const per_sequence_t Reset_sequence[] = { static int dissect_s1ap_Reset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1088 "../../asn1/s1ap/s1ap.cnf" +#line 1116 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", Reset "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6873,7 +7087,7 @@ static const per_sequence_t ResetAcknowledge_sequence[] = { static int dissect_s1ap_ResetAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1090 "../../asn1/s1ap/s1ap.cnf" +#line 1118 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", ResetAcknowledge "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6918,7 +7132,7 @@ static const per_sequence_t S1SetupRequest_sequence[] = { static int dissect_s1ap_S1SetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1094 "../../asn1/s1ap/s1ap.cnf" +#line 1122 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", S1SetupRequest "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6935,7 +7149,7 @@ static const per_sequence_t S1SetupResponse_sequence[] = { static int dissect_s1ap_S1SetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1096 "../../asn1/s1ap/s1ap.cnf" +#line 1124 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", S1SetupResponse "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6952,7 +7166,7 @@ static const per_sequence_t S1SetupFailure_sequence[] = { static int dissect_s1ap_S1SetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1098 "../../asn1/s1ap/s1ap.cnf" +#line 1126 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", S1SetupFailure "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6969,7 +7183,7 @@ static const per_sequence_t ENBConfigurationUpdate_sequence[] = { static int dissect_s1ap_ENBConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1100 "../../asn1/s1ap/s1ap.cnf" +#line 1128 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", ENBConfigurationUpdate "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6986,7 +7200,7 @@ static const per_sequence_t ENBConfigurationUpdateAcknowledge_sequence[] = { static int dissect_s1ap_ENBConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1102 "../../asn1/s1ap/s1ap.cnf" +#line 1130 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", ENBConfigurationUpdateAcknowledge "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7003,7 +7217,7 @@ static const per_sequence_t ENBConfigurationUpdateFailure_sequence[] = { static int dissect_s1ap_ENBConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1104 "../../asn1/s1ap/s1ap.cnf" +#line 1132 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", ENBConfigurationUpdateFailure "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7020,7 +7234,7 @@ static const per_sequence_t MMEConfigurationUpdate_sequence[] = { static int dissect_s1ap_MMEConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1106 "../../asn1/s1ap/s1ap.cnf" +#line 1134 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", MMEConfigurationUpdate "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7037,7 +7251,7 @@ static const per_sequence_t MMEConfigurationUpdateAcknowledge_sequence[] = { static int dissect_s1ap_MMEConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1108 "../../asn1/s1ap/s1ap.cnf" +#line 1136 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", MMEConfigurationUpdateAcknowledge "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7054,7 +7268,7 @@ static const per_sequence_t MMEConfigurationUpdateFailure_sequence[] = { static int dissect_s1ap_MMEConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1110 "../../asn1/s1ap/s1ap.cnf" +#line 1138 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", MMEConfigurationUpdateFailure "); @@ -7268,7 +7482,7 @@ static const per_sequence_t WriteReplaceWarningRequest_sequence[] = { static int dissect_s1ap_WriteReplaceWarningRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1113 "../../asn1/s1ap/s1ap.cnf" +#line 1141 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", WriteReplaceWarningRequest "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7285,7 +7499,7 @@ static const per_sequence_t WriteReplaceWarningResponse_sequence[] = { static int dissect_s1ap_WriteReplaceWarningResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1115 "../../asn1/s1ap/s1ap.cnf" +#line 1143 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", WriteReplaceWarningResponse "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7392,7 +7606,7 @@ static const per_sequence_t KillRequest_sequence[] = { static int dissect_s1ap_KillRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1117 "../../asn1/s1ap/s1ap.cnf" +#line 1145 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", KillRequest "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7409,7 +7623,7 @@ static const per_sequence_t KillResponse_sequence[] = { static int dissect_s1ap_KillResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1119 "../../asn1/s1ap/s1ap.cnf" +#line 1147 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", KillResponse "); @@ -7423,6 +7637,20 @@ dissect_s1ap_KillResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U } +static const per_sequence_t PWSRestartIndication_sequence[] = { + { &hf_s1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +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_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_PWSRestartIndication, PWSRestartIndication_sequence); + + return offset; +} + + static const per_sequence_t DownlinkUEAssociatedLPPaTransport_sequence[] = { { &hf_s1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_Container }, { NULL, 0, 0, NULL } @@ -7621,10 +7849,21 @@ dissect_s1ap_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U } + +static int +dissect_s1ap_EHRPD_Sector_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 16, 16, FALSE, NULL); + + return offset; +} + + static const value_string s1ap_IRAT_Cell_ID_vals[] = { { 0, "eUTRAN" }, { 1, "uTRAN" }, { 2, "gERAN" }, + { 3, "eHRPD" }, { 0, NULL } }; @@ -7632,6 +7871,7 @@ static const per_choice_t IRAT_Cell_ID_choice[] = { { 0, &hf_s1ap_eUTRAN_01 , ASN1_EXTENSION_ROOT , dissect_s1ap_OCTET_STRING }, { 1, &hf_s1ap_uTRAN , ASN1_EXTENSION_ROOT , dissect_s1ap_OCTET_STRING }, { 2, &hf_s1ap_gERAN , ASN1_EXTENSION_ROOT , dissect_s1ap_OCTET_STRING }, + { 3, &hf_s1ap_eHRPD_01 , ASN1_NOT_EXTENSION_ROOT, dissect_s1ap_EHRPD_Sector_ID }, { 0, NULL, 0, NULL } }; @@ -7973,10 +8213,61 @@ dissect_s1ap_EUTRANcellLoadReportingResponse(tvbuff_t *tvb _U_, int offset _U_, } + +static int +dissect_s1ap_EHRPDSectorCapacityClassValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 100U, NULL, TRUE); + + return offset; +} + + + +static int +dissect_s1ap_EHRPDCapacityValue(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, 100U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t EHRPDCompositeAvailableCapacity_sequence[] = { + { &hf_s1ap_eHRPDSectorCapacityClassValue, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_EHRPDSectorCapacityClassValue }, + { &hf_s1ap_eHRPDCapacityValue, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_EHRPDCapacityValue }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_EHRPDCompositeAvailableCapacity(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_EHRPDCompositeAvailableCapacity, EHRPDCompositeAvailableCapacity_sequence); + + return offset; +} + + +static const per_sequence_t EHRPDSectorLoadReportingResponse_sequence[] = { + { &hf_s1ap_dL_EHRPD_CompositeAvailableCapacity, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_EHRPDCompositeAvailableCapacity }, + { &hf_s1ap_uL_EHRPD_CompositeAvailableCapacity, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_EHRPDCompositeAvailableCapacity }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_EHRPDSectorLoadReportingResponse(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_EHRPDSectorLoadReportingResponse, EHRPDSectorLoadReportingResponse_sequence); + + return offset; +} + + static const value_string s1ap_CellLoadReportingResponse_vals[] = { { 0, "eUTRAN" }, { 1, "uTRAN" }, { 2, "gERAN" }, + { 3, "eHRPD" }, { 0, NULL } }; @@ -7984,6 +8275,7 @@ static const per_choice_t CellLoadReportingResponse_choice[] = { { 0, &hf_s1ap_eUTRAN , ASN1_EXTENSION_ROOT , dissect_s1ap_EUTRANcellLoadReportingResponse }, { 1, &hf_s1ap_uTRAN , ASN1_EXTENSION_ROOT , dissect_s1ap_OCTET_STRING }, { 2, &hf_s1ap_gERAN , ASN1_EXTENSION_ROOT , dissect_s1ap_OCTET_STRING }, + { 3, &hf_s1ap_eHRPD , ASN1_NOT_EXTENSION_ROOT, dissect_s1ap_EHRPDSectorLoadReportingResponse }, { 0, NULL, 0, NULL } }; @@ -8012,10 +8304,26 @@ dissect_s1ap_EUTRANResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } +static const per_sequence_t EHRPDMultiSectorLoadReportingResponseItem_sequence[] = { + { &hf_s1ap_eHRPD_Sector_ID_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_EHRPD_Sector_ID }, + { &hf_s1ap_eHRPDSectorLoadReportingResponse, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_EHRPDSectorLoadReportingResponse }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_EHRPDMultiSectorLoadReportingResponseItem(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_EHRPDMultiSectorLoadReportingResponseItem, EHRPDMultiSectorLoadReportingResponseItem_sequence); + + return offset; +} + + static const value_string s1ap_MultiCellLoadReportingResponse_Item_vals[] = { { 0, "eUTRANResponse" }, { 1, "uTRANResponse" }, { 2, "gERANResponse" }, + { 3, "eHRPD" }, { 0, NULL } }; @@ -8023,6 +8331,7 @@ static const per_choice_t MultiCellLoadReportingResponse_Item_choice[] = { { 0, &hf_s1ap_eUTRANResponse , ASN1_EXTENSION_ROOT , dissect_s1ap_EUTRANResponse }, { 1, &hf_s1ap_uTRANResponse , ASN1_EXTENSION_ROOT , dissect_s1ap_OCTET_STRING }, { 2, &hf_s1ap_gERANResponse , ASN1_EXTENSION_ROOT , dissect_s1ap_OCTET_STRING }, + { 3, &hf_s1ap_eHRPD_02 , ASN1_NOT_EXTENSION_ROOT, dissect_s1ap_EHRPDMultiSectorLoadReportingResponseItem }, { 0, NULL, 0, NULL } }; @@ -8402,6 +8711,14 @@ static int dissect_CSFallbackIndicator_PDU(tvbuff_t *tvb _U_, packet_info *pinfo offset += 7; offset >>= 3; return offset; } +static int dissect_AdditionalCSFallbackIndicator_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_AdditionalCSFallbackIndicator(tvb, offset, &asn1_ctx, tree, hf_s1ap_AdditionalCSFallbackIndicator_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_CSG_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; @@ -8466,6 +8783,14 @@ static int dissect_Data_Forwarding_Not_Possible_PDU(tvbuff_t *tvb _U_, packet_in offset += 7; offset >>= 3; return offset; } +static int dissect_EmergencyAreaIDListForRestart_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_EmergencyAreaIDListForRestart(tvb, offset, &asn1_ctx, tree, hf_s1ap_EmergencyAreaIDListForRestart_PDU); + offset += 7; offset >>= 3; + return offset; +} int dissect_s1ap_Global_ENB_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; @@ -8594,6 +8919,22 @@ static int dissect_HandoverType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, p offset += 7; offset >>= 3; return offset; } +static int dissect_Masked_IMEISV_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_Masked_IMEISV(tvb, offset, &asn1_ctx, tree, hf_s1ap_Masked_IMEISV_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_KillAllWarningMessages_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_KillAllWarningMessages(tvb, offset, &asn1_ctx, tree, hf_s1ap_KillAllWarningMessages_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_LAI_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -8610,6 +8951,14 @@ static int dissect_LPPa_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto offset += 7; offset >>= 3; return offset; } +static int dissect_LHN_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_LHN_ID(tvb, offset, &asn1_ctx, tree, hf_s1ap_LHN_ID_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_M3Configuration_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -8842,6 +9191,14 @@ static int dissect_RRC_Establishment_Cause_PDU(tvbuff_t *tvb _U_, packet_info *p offset += 7; offset >>= 3; return offset; } +static int dissect_ECGIListForRestart_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_ECGIListForRestart(tvb, offset, &asn1_ctx, tree, hf_s1ap_ECGIListForRestart_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_Routing_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; @@ -9010,6 +9367,14 @@ static int dissect_Time_UE_StayedInCell_EnhancedGranularity_PDU(tvbuff_t *tvb _U offset += 7; offset >>= 3; return offset; } +static int dissect_TransportInformation_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_TransportInformation(tvb, offset, &asn1_ctx, tree, hf_s1ap_TransportInformation_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_TransportLayerAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -9042,6 +9407,14 @@ static int dissect_TunnelInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _ offset += 7; offset >>= 3; return offset; } +static int dissect_TAIListForRestart_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_TAIListForRestart(tvb, offset, &asn1_ctx, tree, hf_s1ap_TAIListForRestart_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_UEAggregateMaximumBitrate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -9098,6 +9471,14 @@ static int dissect_UESecurityCapabilities_PDU(tvbuff_t *tvb _U_, packet_info *pi 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; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_UserLocationInformation(tvb, offset, &asn1_ctx, tree, hf_s1ap_UserLocationInformation_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_VoiceSupportMatchIndicator_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -9154,6 +9535,14 @@ static int dissect_ENBX2ExtTLAs_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, p offset += 7; offset >>= 3; return offset; } +static int dissect_ENBIndirectX2TransportLayerAddresses_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_ENBIndirectX2TransportLayerAddresses(tvb, offset, &asn1_ctx, tree, hf_s1ap_ENBIndirectX2TransportLayerAddresses_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_HandoverRequired_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -9962,6 +10351,14 @@ static int dissect_KillResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, p offset += 7; offset >>= 3; return offset; } +static int dissect_PWSRestartIndication_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_PWSRestartIndication(tvb, offset, &asn1_ctx, tree, hf_s1ap_PWSRestartIndication_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_DownlinkUEAssociatedLPPaTransport_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -10252,6 +10649,14 @@ proto_reg_handoff_s1ap(void) dissector_add_uint("s1ap.ies", id_GUMMEIType, new_create_dissector_handle(dissect_GUMMEIType_PDU, proto_s1ap)); dissector_add_uint("s1ap.ies", id_Tunnel_Information_for_BBF, new_create_dissector_handle(dissect_TunnelInformation_PDU, proto_s1ap)); dissector_add_uint("s1ap.ies", id_ManagementBasedMDTPLMNList, new_create_dissector_handle(dissect_MDTPLMNList_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_ECGIListForRestart, new_create_dissector_handle(dissect_ECGIListForRestart_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_SIPTO_L_GW_TransportLayerAddress, new_create_dissector_handle(dissect_TransportLayerAddress_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_LHN_ID, new_create_dissector_handle(dissect_LHN_ID_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_AdditionalCSFallbackIndicator, new_create_dissector_handle(dissect_AdditionalCSFallbackIndicator_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_TAIListForRestart, new_create_dissector_handle(dissect_TAIListForRestart_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_UserLocationInformation, new_create_dissector_handle(dissect_UserLocationInformation_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_KillAllWarningMessages, new_create_dissector_handle(dissect_KillAllWarningMessages_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_Masked_IMEISV, new_create_dissector_handle(dissect_Masked_IMEISV_PDU, proto_s1ap)); dissector_add_uint("s1ap.extension", id_Data_Forwarding_Not_Possible, new_create_dissector_handle(dissect_Data_Forwarding_Not_Possible_PDU, proto_s1ap)); dissector_add_uint("s1ap.extension", id_Time_Synchronization_Info, new_create_dissector_handle(dissect_TimeSynchronizationInfo_PDU, proto_s1ap)); dissector_add_uint("s1ap.extension", id_x2TNLConfigurationInfo, new_create_dissector_handle(dissect_X2TNLConfigurationInfo_PDU, proto_s1ap)); @@ -10269,6 +10674,10 @@ proto_reg_handoff_s1ap(void) dissector_add_uint("s1ap.extension", id_ULCOUNTValueExtended, new_create_dissector_handle(dissect_COUNTValueExtended_PDU, proto_s1ap)); dissector_add_uint("s1ap.extension", id_DLCOUNTValueExtended, new_create_dissector_handle(dissect_COUNTValueExtended_PDU, proto_s1ap)); dissector_add_uint("s1ap.extension", id_ReceiveStatusOfULPDCPSDUsExtended, new_create_dissector_handle(dissect_ReceiveStatusOfULPDCPSDUsExtended_PDU, proto_s1ap)); + dissector_add_uint("s1ap.extension", id_SIPTO_Correlation_ID, new_create_dissector_handle(dissect_Correlation_ID_PDU, proto_s1ap)); + dissector_add_uint("s1ap.extension", id_TransportInformation, new_create_dissector_handle(dissect_TransportInformation_PDU, proto_s1ap)); + dissector_add_uint("s1ap.extension", id_EmergencyAreaIDListForRestart, new_create_dissector_handle(dissect_EmergencyAreaIDListForRestart_PDU, proto_s1ap)); + dissector_add_uint("s1ap.extension", id_eNBIndirectX2TransportLayerAddresses, new_create_dissector_handle(dissect_ENBIndirectX2TransportLayerAddresses_PDU, proto_s1ap)); dissector_add_uint("s1ap.proc.imsg", id_HandoverPreparation, new_create_dissector_handle(dissect_HandoverRequired_PDU, proto_s1ap)); dissector_add_uint("s1ap.proc.sout", id_HandoverPreparation, new_create_dissector_handle(dissect_HandoverCommand_PDU, proto_s1ap)); dissector_add_uint("s1ap.proc.uout", id_HandoverPreparation, new_create_dissector_handle(dissect_HandoverPreparationFailure_PDU, proto_s1ap)); @@ -10343,6 +10752,7 @@ proto_reg_handoff_s1ap(void) dissector_add_uint("s1ap.proc.imsg", id_uplinkNonUEAssociatedLPPaTransport, new_create_dissector_handle(dissect_UplinkNonUEAssociatedLPPaTransport_PDU, proto_s1ap)); dissector_add_uint("s1ap.proc.imsg", id_UERadioCapabilityMatch, new_create_dissector_handle(dissect_UERadioCapabilityMatchRequest_PDU, proto_s1ap)); dissector_add_uint("s1ap.proc.sout", id_UERadioCapabilityMatch, new_create_dissector_handle(dissect_UERadioCapabilityMatchResponse_PDU, proto_s1ap)); + dissector_add_uint("s1ap.proc.imsg", id_PWSRestartIndication, new_create_dissector_handle(dissect_PWSRestartIndication_PDU, proto_s1ap)); /*--- End of included file: packet-s1ap-dis-tab.c ---*/ @@ -10441,6 +10851,10 @@ void proto_register_s1ap(void) { { "CSFallbackIndicator", "s1ap.CSFallbackIndicator", FT_UINT32, BASE_DEC, VALS(s1ap_CSFallbackIndicator_vals), 0, NULL, HFILL }}, + { &hf_s1ap_AdditionalCSFallbackIndicator_PDU, + { "AdditionalCSFallbackIndicator", "s1ap.AdditionalCSFallbackIndicator", + FT_UINT32, BASE_DEC, VALS(s1ap_AdditionalCSFallbackIndicator_vals), 0, + NULL, HFILL }}, { &hf_s1ap_CSG_Id_PDU, { "CSG-Id", "s1ap.CSG_Id", FT_BYTES, BASE_NONE, NULL, 0, @@ -10473,6 +10887,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_EmergencyAreaIDListForRestart_PDU, + { "EmergencyAreaIDListForRestart", "s1ap.EmergencyAreaIDListForRestart", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_s1ap_Global_ENB_ID_PDU, { "Global-ENB-ID", "s1ap.Global_ENB_ID_element", FT_NONE, BASE_NONE, NULL, 0, @@ -10537,6 +10955,14 @@ void proto_register_s1ap(void) { { "HandoverType", "s1ap.HandoverType", FT_UINT32, BASE_DEC, VALS(s1ap_HandoverType_vals), 0, NULL, HFILL }}, + { &hf_s1ap_Masked_IMEISV_PDU, + { "Masked-IMEISV", "s1ap.Masked_IMEISV", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_KillAllWarningMessages_PDU, + { "KillAllWarningMessages", "s1ap.KillAllWarningMessages", + FT_UINT32, BASE_DEC, VALS(s1ap_KillAllWarningMessages_vals), 0, + NULL, HFILL }}, { &hf_s1ap_LAI_PDU, { "LAI", "s1ap.LAI_element", FT_NONE, BASE_NONE, NULL, 0, @@ -10545,6 +10971,10 @@ void proto_register_s1ap(void) { { "LPPa-PDU", "s1ap.LPPa_PDU", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_LHN_ID_PDU, + { "LHN-ID", "s1ap.LHN_ID", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_M3Configuration_PDU, { "M3Configuration", "s1ap.M3Configuration_element", FT_NONE, BASE_NONE, NULL, 0, @@ -10661,6 +11091,10 @@ void proto_register_s1ap(void) { { "RRC-Establishment-Cause", "s1ap.RRC_Establishment_Cause", FT_UINT32, BASE_DEC, VALS(s1ap_RRC_Establishment_Cause_vals), 0, NULL, HFILL }}, + { &hf_s1ap_ECGIListForRestart_PDU, + { "ECGIListForRestart", "s1ap.ECGIListForRestart", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_Routing_ID_PDU, { "Routing-ID", "s1ap.Routing_ID", FT_UINT32, BASE_DEC, NULL, 0, @@ -10745,6 +11179,10 @@ void proto_register_s1ap(void) { { "Time-UE-StayedInCell-EnhancedGranularity", "s1ap.Time_UE_StayedInCell_EnhancedGranularity", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_TransportInformation_PDU, + { "TransportInformation", "s1ap.TransportInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_TransportLayerAddress_PDU, { "TransportLayerAddress", "s1ap.TransportLayerAddress", FT_BYTES, BASE_NONE, NULL, 0, @@ -10761,6 +11199,10 @@ void proto_register_s1ap(void) { { "TunnelInformation", "s1ap.TunnelInformation_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_TAIListForRestart_PDU, + { "TAIListForRestart", "s1ap.TAIListForRestart", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_UEAggregateMaximumBitrate_PDU, { "UEAggregateMaximumBitrate", "s1ap.UEAggregateMaximumBitrate_element", FT_NONE, BASE_NONE, NULL, 0, @@ -10789,6 +11231,10 @@ void proto_register_s1ap(void) { { "UESecurityCapabilities", "s1ap.UESecurityCapabilities_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_UserLocationInformation_PDU, + { "UserLocationInformation", "s1ap.UserLocationInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_VoiceSupportMatchIndicator_PDU, { "VoiceSupportMatchIndicator", "s1ap.VoiceSupportMatchIndicator", FT_UINT32, BASE_DEC, VALS(s1ap_VoiceSupportMatchIndicator_vals), 0, @@ -10817,6 +11263,10 @@ void proto_register_s1ap(void) { { "ENBX2ExtTLAs", "s1ap.ENBX2ExtTLAs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_ENBIndirectX2TransportLayerAddresses_PDU, + { "ENBIndirectX2TransportLayerAddresses", "s1ap.ENBIndirectX2TransportLayerAddresses", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_HandoverRequired_PDU, { "HandoverRequired", "s1ap.HandoverRequired_element", FT_NONE, BASE_NONE, NULL, 0, @@ -11221,6 +11671,10 @@ void proto_register_s1ap(void) { { "KillResponse", "s1ap.KillResponse_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_PWSRestartIndication_PDU, + { "PWSRestartIndication", "s1ap.PWSRestartIndication_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_DownlinkUEAssociatedLPPaTransport_PDU, { "DownlinkUEAssociatedLPPaTransport", "s1ap.DownlinkUEAssociatedLPPaTransport_element", FT_NONE, BASE_NONE, NULL, 0, @@ -11561,6 +12015,10 @@ void proto_register_s1ap(void) { { "CompletedCellinEAI-Item", "s1ap.CompletedCellinEAI_Item_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_EmergencyAreaIDListForRestart_item, + { "EmergencyAreaID", "s1ap.EmergencyAreaID", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_macroENB_ID, { "macroENB-ID", "s1ap.macroENB_ID", FT_BYTES, BASE_NONE, NULL, 0, @@ -11837,6 +12295,14 @@ void proto_register_s1ap(void) { { "targetRNC-ID", "s1ap.targetRNC_ID_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_eHRPD_Sector_ID, + { "eHRPD-Sector-ID", "s1ap.eHRPD_Sector_ID", + FT_BYTES, BASE_NONE, NULL, 0, + "OCTET_STRING_SIZE_16", HFILL }}, + { &hf_s1ap_ECGIListForRestart_item, + { "EUTRAN-CGI", "s1ap.EUTRAN_CGI_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_nextHopChainingCount, { "nextHopChainingCount", "s1ap.nextHopChainingCount", FT_UINT32, BASE_DEC, NULL, 0, @@ -12013,6 +12479,14 @@ void proto_register_s1ap(void) { { "measurementThreshold", "s1ap.measurementThreshold", FT_UINT32, BASE_DEC, VALS(s1ap_MeasurementThresholdA2_vals), 0, "MeasurementThresholdA2", HFILL }}, + { &hf_s1ap_transportLayerAddress, + { "transportLayerAddress", "s1ap.transportLayerAddress", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_uL_GTP_TEID, + { "uL-GTP-TEID", "s1ap.uL_GTP_TEID", + FT_BYTES, BASE_NONE, NULL, 0, + "GTP_TEID", HFILL }}, { &hf_s1ap_e_UTRAN_Trace_ID, { "e-UTRAN-Trace-ID", "s1ap.e_UTRAN_Trace_ID", FT_BYTES, BASE_NONE, NULL, 0, @@ -12029,14 +12503,14 @@ void proto_register_s1ap(void) { { "traceCollectionEntityIPAddress", "s1ap.traceCollectionEntityIPAddress", FT_BYTES, BASE_NONE, NULL, 0, "TransportLayerAddress", HFILL }}, - { &hf_s1ap_transportLayerAddress, - { "transportLayerAddress", "s1ap.transportLayerAddress", - FT_BYTES, BASE_NONE, NULL, 0, - NULL, HFILL }}, { &hf_s1ap_uDP_Port_Number, { "uDP-Port-Number", "s1ap.uDP_Port_Number", FT_BYTES, BASE_NONE, NULL, 0, "Port_Number", HFILL }}, + { &hf_s1ap_TAIListForRestart_item, + { "TAI", "s1ap.TAI_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_uEaggregateMaximumBitRateDL, { "uEaggregateMaximumBitRateDL", "s1ap.uEaggregateMaximumBitRateDL", FT_UINT64, BASE_DEC, NULL, 0, @@ -12077,6 +12551,14 @@ void proto_register_s1ap(void) { { "integrityProtectionAlgorithms", "s1ap.integrityProtectionAlgorithms", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_eutran_cgi, + { "eutran-cgi", "s1ap.eutran_cgi_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_tai, + { "tai", "s1ap.tai_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_cellIDList, { "cellIDList", "s1ap.cellIDList", FT_UINT32, BASE_DEC, NULL, 0, @@ -12109,6 +12591,10 @@ void proto_register_s1ap(void) { { "TransportLayerAddress", "s1ap.TransportLayerAddress", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_ENBIndirectX2TransportLayerAddresses_item, + { "TransportLayerAddress", "s1ap.TransportLayerAddress", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_protocolIEs, { "protocolIEs", "s1ap.protocolIEs", FT_UINT32, BASE_DEC, NULL, 0, @@ -12125,10 +12611,6 @@ void proto_register_s1ap(void) { { "uL-TransportLayerAddress", "s1ap.uL_TransportLayerAddress", FT_BYTES, BASE_NONE, NULL, 0, "TransportLayerAddress", HFILL }}, - { &hf_s1ap_uL_GTP_TEID, - { "uL-GTP-TEID", "s1ap.uL_GTP_TEID", - FT_BYTES, BASE_NONE, NULL, 0, - "GTP_TEID", HFILL }}, { &hf_s1ap_gTP_TEID, { "gTP-TEID", "s1ap.gTP_TEID", FT_BYTES, BASE_NONE, NULL, 0, @@ -12325,6 +12807,10 @@ void proto_register_s1ap(void) { { "gERAN", "s1ap.gERAN", FT_BYTES, BASE_NONE, NULL, 0, "OCTET_STRING", HFILL }}, + { &hf_s1ap_eHRPD, + { "eHRPD", "s1ap.eHRPD_element", + FT_NONE, BASE_NONE, NULL, 0, + "EHRPDSectorLoadReportingResponse", HFILL }}, { &hf_s1ap_compositeAvailableCapacityGroup, { "compositeAvailableCapacityGroup", "s1ap.compositeAvailableCapacityGroup", FT_BYTES, BASE_NONE, NULL, 0, @@ -12341,6 +12827,10 @@ void proto_register_s1ap(void) { { "eUTRAN", "s1ap.eUTRAN", FT_BYTES, BASE_NONE, NULL, 0, "OCTET_STRING", HFILL }}, + { &hf_s1ap_eHRPD_01, + { "eHRPD", "s1ap.eHRPD", + FT_BYTES, BASE_NONE, NULL, 0, + "EHRPD_Sector_ID", HFILL }}, { &hf_s1ap_RequestedCellList_item, { "IRAT-Cell-ID", "s1ap.IRAT_Cell_ID", FT_UINT32, BASE_DEC, VALS(s1ap_IRAT_Cell_ID_vals), 0, @@ -12373,6 +12863,10 @@ void proto_register_s1ap(void) { { "gERANResponse", "s1ap.gERANResponse", FT_BYTES, BASE_NONE, NULL, 0, "OCTET_STRING", HFILL }}, + { &hf_s1ap_eHRPD_02, + { "eHRPD", "s1ap.eHRPD_element", + FT_NONE, BASE_NONE, NULL, 0, + "EHRPDMultiSectorLoadReportingResponseItem", HFILL }}, { &hf_s1ap_numberOfMeasurementReportingLevels, { "numberOfMeasurementReportingLevels", "s1ap.numberOfMeasurementReportingLevels", FT_UINT32, BASE_DEC, VALS(s1ap_NumberOfMeasurementReportingLevels_vals), 0, @@ -12453,6 +12947,30 @@ void proto_register_s1ap(void) { { "mobilityInformation", "s1ap.mobilityInformation", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_dL_EHRPD_CompositeAvailableCapacity, + { "dL-EHRPD-CompositeAvailableCapacity", "s1ap.dL_EHRPD_CompositeAvailableCapacity_element", + FT_NONE, BASE_NONE, NULL, 0, + "EHRPDCompositeAvailableCapacity", HFILL }}, + { &hf_s1ap_uL_EHRPD_CompositeAvailableCapacity, + { "uL-EHRPD-CompositeAvailableCapacity", "s1ap.uL_EHRPD_CompositeAvailableCapacity_element", + FT_NONE, BASE_NONE, NULL, 0, + "EHRPDCompositeAvailableCapacity", HFILL }}, + { &hf_s1ap_eHRPDSectorCapacityClassValue, + { "eHRPDSectorCapacityClassValue", "s1ap.eHRPDSectorCapacityClassValue", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_eHRPDCapacityValue, + { "eHRPDCapacityValue", "s1ap.eHRPDCapacityValue", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_eHRPD_Sector_ID_01, + { "eHRPD-Sector-ID", "s1ap.eHRPD_Sector_ID", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_eHRPDSectorLoadReportingResponse, + { "eHRPDSectorLoadReportingResponse", "s1ap.eHRPDSectorLoadReportingResponse_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, /*--- End of included file: packet-s1ap-hfarr.c ---*/ #line 231 "../../asn1/s1ap/packet-s1ap-template.c" @@ -12514,6 +13032,7 @@ void proto_register_s1ap(void) { &ett_s1ap_EmergencyAreaID_Cancelled_Item, &ett_s1ap_CompletedCellinEAI, &ett_s1ap_CompletedCellinEAI_Item, + &ett_s1ap_EmergencyAreaIDListForRestart, &ett_s1ap_ENB_ID, &ett_s1ap_GERAN_Cell_ID, &ett_s1ap_Global_ENB_ID, @@ -12554,6 +13073,7 @@ void proto_register_s1ap(void) { &ett_s1ap_RequestType, &ett_s1ap_RIMTransfer, &ett_s1ap_RIMRoutingAddress, + &ett_s1ap_ECGIListForRestart, &ett_s1ap_SecurityContext, &ett_s1ap_SONInformation, &ett_s1ap_SONInformationReply, @@ -12586,8 +13106,10 @@ void proto_register_s1ap(void) { &ett_s1ap_TargetRNC_ID, &ett_s1ap_TargeteNB_ToSourceeNB_TransparentContainer, &ett_s1ap_M1ThresholdEventA2, + &ett_s1ap_TransportInformation, &ett_s1ap_TraceActivation, &ett_s1ap_TunnelInformation, + &ett_s1ap_TAIListForRestart, &ett_s1ap_UEAggregateMaximumBitrate, &ett_s1ap_UE_S1AP_IDs, &ett_s1ap_UE_S1AP_ID_pair, @@ -12595,11 +13117,13 @@ void proto_register_s1ap(void) { &ett_s1ap_UE_HistoryInformation, &ett_s1ap_UEPagingID, &ett_s1ap_UESecurityCapabilities, + &ett_s1ap_UserLocationInformation, &ett_s1ap_WarningAreaList, &ett_s1ap_X2TNLConfigurationInfo, &ett_s1ap_ENBX2ExtTLAs, &ett_s1ap_ENBX2ExtTLA, &ett_s1ap_ENBX2GTPTLAs, + &ett_s1ap_ENBIndirectX2TransportLayerAddresses, &ett_s1ap_HandoverRequired, &ett_s1ap_HandoverCommand, &ett_s1ap_E_RABDataForwardingItem, @@ -12696,6 +13220,7 @@ void proto_register_s1ap(void) { &ett_s1ap_PrivateMessage, &ett_s1ap_KillRequest, &ett_s1ap_KillResponse, + &ett_s1ap_PWSRestartIndication, &ett_s1ap_DownlinkUEAssociatedLPPaTransport, &ett_s1ap_UplinkUEAssociatedLPPaTransport, &ett_s1ap_DownlinkNonUEAssociatedLPPaTransport, @@ -12732,6 +13257,9 @@ void proto_register_s1ap(void) { &ett_s1ap_NotificationCellList_Item, &ett_s1ap_FailureEventReport, &ett_s1ap_TooEarlyInterRATHOReportReportFromEUTRAN, + &ett_s1ap_EHRPDSectorLoadReportingResponse, + &ett_s1ap_EHRPDCompositeAvailableCapacity, + &ett_s1ap_EHRPDMultiSectorLoadReportingResponseItem, /*--- End of included file: packet-s1ap-ettarr.c ---*/ #line 243 "../../asn1/s1ap/packet-s1ap-template.c"