S1AP: prettify dissection
Change-Id: I2b4339e489d11ade2751cad8874ba220d12fe3db Reviewed-on: https://code.wireshark.org/review/17615 Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
This commit is contained in:
parent
4a6dde12d6
commit
d6f91a7ca4
|
@ -2198,7 +2198,7 @@ static const value_string lte_rrc_messageIdentifier_vals[] = {
|
|||
{ 0x112b, "CMAS Identifier for operator defined use for additional languages"},
|
||||
{ 0, NULL},
|
||||
};
|
||||
static value_string_ext lte_rrc_messageIdentifier_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_messageIdentifier_vals);
|
||||
value_string_ext lte_rrc_messageIdentifier_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_messageIdentifier_vals);
|
||||
|
||||
static const value_string lte_rrc_serialNumber_gs_vals[] = {
|
||||
{ 0, "Display mode immediate, cell wide"},
|
||||
|
@ -3624,7 +3624,7 @@ void proto_register_lte_rrc(void) {
|
|||
NULL, HFILL }},
|
||||
{ &hf_lte_rrc_warningMessageSegment_decoded_page,
|
||||
{ "Decoded Page", "lte-rrc.warningMessageSegment.decoded_page",
|
||||
FT_STRING, BASE_NONE, NULL, 0,
|
||||
FT_STRING, STR_UNICODE, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit1,
|
||||
{ "Bit 1", "lte-rrc.interBandTDD_CA_WithDifferentConfig.bit1",
|
||||
|
|
|
@ -23,6 +23,8 @@
|
|||
#ifndef PACKET_LTE_RRC_H
|
||||
#define PACKET_LTE_RRC_H
|
||||
|
||||
extern value_string_ext lte_rrc_messageIdentifier_vals_ext;
|
||||
|
||||
#include "packet-lte-rrc-exp.h"
|
||||
|
||||
#endif /* PACKET_LTE_RRC_H */
|
||||
|
|
|
@ -9,16 +9,18 @@ ALIGNED
|
|||
#.EXPORTS
|
||||
EncryptionInformation
|
||||
IntegrityProtectionInformation
|
||||
InterSystemInformation-TransparentContainer_PDU
|
||||
LastVisitedUTRANCell-Item_PDU
|
||||
Service-Handover
|
||||
Source-ToTarget-TransparentContainer_PDU
|
||||
SourceCellID_PDU
|
||||
SourceRNC-ToTargetRNC-TransparentContainer_PDU
|
||||
TargetRNC-ToSourceRNC-TransparentContainer_PDU
|
||||
TargetRNC-ID
|
||||
TargetRNC-ID_PDU
|
||||
InterSystemInformation-TransparentContainer_PDU
|
||||
Source-ToTarget-TransparentContainer_PDU
|
||||
|
||||
#.PDU
|
||||
LastVisitedUTRANCell-Item
|
||||
RANAP-PDU
|
||||
SourceCellID
|
||||
SourceRNC-ToTargetRNC-TransparentContainer
|
||||
|
@ -44,10 +46,6 @@ ProtocolError-IE-ContainerList
|
|||
Presence
|
||||
# NOTE when updating the asn1 spec check if these are used !!!!
|
||||
ForwardingIndication
|
||||
LastVisitedUTRANCell-Item
|
||||
UTRAN-CellID
|
||||
CellType
|
||||
Time-UE-StayedInCell
|
||||
SourceeNodeB-ToTargeteNodeB-TransparentContainer
|
||||
TargeteNodeB-ToSourceeNodeB-TransparentContainer
|
||||
#.TYPE_RENAME
|
||||
|
|
|
@ -6,11 +6,11 @@
|
|||
--
|
||||
-- **************************************************************
|
||||
|
||||
S1AP-PDU-Contents {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
S1AP-PDU-Contents {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Contents (1) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
|
@ -21,7 +21,7 @@ BEGIN
|
|||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
|
||||
|
||||
UEAggregateMaximumBitrate,
|
||||
BearerType,
|
||||
Cause,
|
||||
|
@ -39,7 +39,7 @@ IMPORTS
|
|||
CriticalityDiagnostics,
|
||||
CSFallbackIndicator,
|
||||
CSG-Id,
|
||||
CSG-IdList,
|
||||
CSG-IdList,
|
||||
CSGMembershipStatus,
|
||||
Data-Forwarding-Not-Possible,
|
||||
Direct-Forwarding-Path-Availability,
|
||||
|
@ -94,7 +94,7 @@ IMPORTS
|
|||
SupportedTAs,
|
||||
TAI,
|
||||
Target-ToSource-TransparentContainer,
|
||||
TargetBSS-ToSourceBSS-TransparentContainer,
|
||||
TargetBSS-ToSourceBSS-TransparentContainer,
|
||||
TargeteNB-ToSourceeNB-TransparentContainer,
|
||||
TargetID,
|
||||
TargetRNC-ToSourceRNC-TransparentContainer,
|
||||
|
@ -199,7 +199,7 @@ FROM S1AP-Containers
|
|||
id-EUTRAN-CGI,
|
||||
id-eNBname,
|
||||
id-eNB-StatusTransfer-TransparentContainer,
|
||||
id-eNB-UE-S1AP-ID,
|
||||
id-eNB-UE-S1AP-ID,
|
||||
id-GERANtoLTEHOInformationRes,
|
||||
id-GUMMEI-ID,
|
||||
id-GUMMEIType,
|
||||
|
@ -263,7 +263,7 @@ FROM S1AP-Containers
|
|||
id-E-RABNotToBeModifiedItemBearerModInd,
|
||||
id-E-RABModifyListBearerModConf,
|
||||
id-E-RABModifyItemBearerModConf,
|
||||
id-E-RABFailedToModifyListBearerModConf,
|
||||
id-E-RABFailedToModifyListBearerModConf,
|
||||
id-E-RABToBeReleasedListBearerModConf,
|
||||
id-E-RABToBeReleasedList,
|
||||
id-E-RABReleasedList,
|
||||
|
@ -403,7 +403,7 @@ HandoverRequired ::= SEQUENCE {
|
|||
...
|
||||
}
|
||||
|
||||
HandoverRequiredIEs S1AP-PROTOCOL-IES ::= {
|
||||
HandoverRequiredIEs S1AP-PROTOCOL-IES ::= {
|
||||
{ ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
|
||||
{ ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
|
||||
{ ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}|
|
||||
|
@ -433,7 +433,7 @@ HandoverCommand ::= SEQUENCE {
|
|||
...
|
||||
}
|
||||
|
||||
HandoverCommandIEs S1AP-PROTOCOL-IES ::= {
|
||||
HandoverCommandIEs S1AP-PROTOCOL-IES ::= {
|
||||
{ ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
|
||||
{ ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
|
||||
{ ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}|
|
||||
|
@ -481,7 +481,7 @@ HandoverPreparationFailure ::= SEQUENCE {
|
|||
...
|
||||
}
|
||||
|
||||
HandoverPreparationFailureIEs S1AP-PROTOCOL-IES ::= {
|
||||
HandoverPreparationFailureIEs S1AP-PROTOCOL-IES ::= {
|
||||
{ ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
|
||||
{ ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
|
||||
|
@ -567,7 +567,7 @@ HandoverRequestAcknowledge ::= SEQUENCE {
|
|||
...
|
||||
}
|
||||
|
||||
HandoverRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
|
||||
HandoverRequestAcknowledgeIEs 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-E-RABAdmittedList CRITICALITY ignore TYPE E-RABAdmittedList PRESENCE mandatory }|
|
||||
|
@ -632,7 +632,7 @@ HandoverFailure ::= SEQUENCE {
|
|||
...
|
||||
}
|
||||
|
||||
HandoverFailureIEs S1AP-PROTOCOL-IES ::= {
|
||||
HandoverFailureIEs S1AP-PROTOCOL-IES ::= {
|
||||
{ ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
|
@ -656,12 +656,12 @@ HandoverNotify ::= SEQUENCE {
|
|||
...
|
||||
}
|
||||
|
||||
HandoverNotifyIEs S1AP-PROTOCOL-IES ::= {
|
||||
HandoverNotifyIEs S1AP-PROTOCOL-IES ::= {
|
||||
{ ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
|
||||
{ ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
|
||||
{ ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
|
||||
{ ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}|
|
||||
-- Extension for Release 11 to support BBAI --
|
||||
-- Extension for Release 11 to support BBAI --
|
||||
{ ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}|
|
||||
{ ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional},
|
||||
...
|
||||
|
@ -684,7 +684,7 @@ PathSwitchRequest ::= SEQUENCE {
|
|||
...
|
||||
}
|
||||
|
||||
PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= {
|
||||
PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= {
|
||||
{ ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
|
||||
{ ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory}|
|
||||
{ ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
|
||||
|
@ -695,7 +695,7 @@ PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= {
|
|||
{ ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional}|
|
||||
{ ID id-SourceMME-GUMMEI CRITICALITY ignore TYPE GUMMEI PRESENCE optional}|
|
||||
{ ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
|
||||
-- Extension for Release 11 to support BBAI --
|
||||
-- Extension for Release 11 to support BBAI --
|
||||
{ ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}|
|
||||
{ ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional},
|
||||
...
|
||||
|
@ -731,7 +731,7 @@ PathSwitchRequestAcknowledge ::= SEQUENCE {
|
|||
...
|
||||
}
|
||||
|
||||
PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
|
||||
PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
|
||||
{ ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
|
||||
{ ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
|
||||
{ ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}|
|
||||
|
@ -777,7 +777,7 @@ PathSwitchRequestFailure ::= SEQUENCE {
|
|||
...
|
||||
}
|
||||
|
||||
PathSwitchRequestFailureIEs S1AP-PROTOCOL-IES ::= {
|
||||
PathSwitchRequestFailureIEs S1AP-PROTOCOL-IES ::= {
|
||||
{ ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
|
||||
{ ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
|
||||
|
@ -802,7 +802,7 @@ HandoverCancel ::= SEQUENCE {
|
|||
...
|
||||
}
|
||||
|
||||
HandoverCancelIEs S1AP-PROTOCOL-IES ::= {
|
||||
HandoverCancelIEs S1AP-PROTOCOL-IES ::= {
|
||||
{ ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
|
||||
{ ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
|
||||
|
@ -820,7 +820,7 @@ HandoverCancelAcknowledge ::= SEQUENCE {
|
|||
...
|
||||
}
|
||||
|
||||
HandoverCancelAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
|
||||
HandoverCancelAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
|
||||
{ ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
|
||||
{ ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
|
@ -1055,7 +1055,7 @@ E-RABReleaseResponseIEs S1AP-PROTOCOL-IES ::= {
|
|||
{ ID id-E-RABReleaseListBearerRelComp CRITICALITY ignore TYPE E-RABReleaseListBearerRelComp PRESENCE optional }|
|
||||
{ ID id-E-RABFailedToReleaseList CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
|
||||
-- Extension for Release 12 to support User Location Information --
|
||||
-- Extension for Release 12 to support User Location Information --
|
||||
{ ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
@ -1102,7 +1102,7 @@ E-RABReleaseIndicationIEs S1AP-PROTOCOL-IES ::= {
|
|||
{ ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
|
||||
{ ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
|
||||
{ ID id-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }|
|
||||
-- Extension for Release 12 to support User Location Information --
|
||||
-- Extension for Release 12 to support User Location Information --
|
||||
{ ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
@ -1350,7 +1350,7 @@ UEContextReleaseComplete-IEs S1AP-PROTOCOL-IES ::= {
|
|||
{ ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
|
||||
{ ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
|
||||
-- Extension for Release 12 to support User Location Information --
|
||||
-- Extension for Release 12 to support User Location Information --
|
||||
{ ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional}|
|
||||
-- Extension for Release 13 to support Paging Optimisation
|
||||
{ ID id-InformationOnRecommendedCellsAndENBsForPaging CRITICALITY ignore TYPE InformationOnRecommendedCellsAndENBsForPaging PRESENCE optional}|
|
||||
|
@ -1377,7 +1377,7 @@ UEContextModificationRequest ::= SEQUENCE {
|
|||
...
|
||||
}
|
||||
|
||||
UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= {
|
||||
UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= {
|
||||
{ ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
|
||||
{ ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
|
||||
{ ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE optional}|
|
||||
|
@ -1402,7 +1402,7 @@ UEContextModificationResponse ::= SEQUENCE {
|
|||
...
|
||||
}
|
||||
|
||||
UEContextModificationResponseIEs S1AP-PROTOCOL-IES ::= {
|
||||
UEContextModificationResponseIEs S1AP-PROTOCOL-IES ::= {
|
||||
{ ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
|
||||
{ ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
|
@ -1419,7 +1419,7 @@ UEContextModificationFailure ::= SEQUENCE {
|
|||
...
|
||||
}
|
||||
|
||||
UEContextModificationFailureIEs S1AP-PROTOCOL-IES ::= {
|
||||
UEContextModificationFailureIEs S1AP-PROTOCOL-IES ::= {
|
||||
{ ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
|
||||
{ ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
|
||||
|
@ -1444,7 +1444,7 @@ UERadioCapabilityMatchRequest ::= SEQUENCE {
|
|||
...
|
||||
}
|
||||
|
||||
UERadioCapabilityMatchRequestIEs S1AP-PROTOCOL-IES ::= {
|
||||
UERadioCapabilityMatchRequestIEs S1AP-PROTOCOL-IES ::= {
|
||||
{ ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
|
||||
{ ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
|
||||
{ ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional },
|
||||
|
@ -1462,7 +1462,7 @@ UERadioCapabilityMatchResponse ::= SEQUENCE {
|
|||
...
|
||||
}
|
||||
|
||||
UERadioCapabilityMatchResponseIEs S1AP-PROTOCOL-IES ::= {
|
||||
UERadioCapabilityMatchResponseIEs S1AP-PROTOCOL-IES ::= {
|
||||
{ ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
|
||||
{ ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
|
||||
{ ID id-VoiceSupportMatchIndicator CRITICALITY reject TYPE VoiceSupportMatchIndicator PRESENCE mandatory }|
|
||||
|
@ -1523,7 +1523,7 @@ InitialUEMessage-IEs S1AP-PROTOCOL-IES ::= {
|
|||
{ ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}|
|
||||
{ ID id-RelayNode-Indicator CRITICALITY reject TYPE RelayNode-Indicator PRESENCE optional}|
|
||||
{ ID id-GUMMEIType CRITICALITY ignore TYPE GUMMEIType PRESENCE optional}|
|
||||
-- Extension for Release 11 to support BBAI --
|
||||
-- Extension for Release 11 to support BBAI --
|
||||
{ ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}|
|
||||
{ ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}|
|
||||
{ ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}|
|
||||
|
@ -1585,10 +1585,15 @@ RerouteNASRequest ::= SEQUENCE {
|
|||
...
|
||||
}
|
||||
|
||||
-- WS modification, add a definition for S1 Message
|
||||
S1-Message ::= OCTET STRING
|
||||
|
||||
RerouteNASRequest-IEs S1AP-PROTOCOL-IES ::= {
|
||||
{ ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
|
||||
{ ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}|
|
||||
{ ID id-S1-Message CRITICALITY reject TYPE OCTET STRING PRESENCE mandatory}|
|
||||
-- WS modification, add a definition for S1 Message
|
||||
-- { ID id-S1-Message CRITICALITY reject TYPE OCTET STRING PRESENCE mandatory}|
|
||||
{ ID id-S1-Message CRITICALITY reject TYPE S1-Message PRESENCE mandatory}|
|
||||
{ ID id-MME-Group-ID CRITICALITY reject TYPE MME-Group-ID PRESENCE mandatory}|
|
||||
{ ID id-Additional-GUTI CRITICALITY ignore TYPE Additional-GUTI PRESENCE optional}|
|
||||
{ ID id-UE-Usage-Type CRITICALITY ignore TYPE UE-Usage-Type PRESENCE optional},
|
||||
|
@ -1764,7 +1769,7 @@ S1SetupFailureIEs S1AP-PROTOCOL-IES ::= {
|
|||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- eNB Configuration Update
|
||||
-- eNB Configuration Update
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
|
@ -1826,7 +1831,7 @@ ENBConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= {
|
|||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- MME Configuration Update
|
||||
-- MME Configuration Update
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
|
@ -2148,7 +2153,7 @@ LocationReportingFailureIndicationIEs S1AP-PROTOCOL-IES ::= {
|
|||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Location Report
|
||||
-- Location Report
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
|
@ -2183,7 +2188,7 @@ OverloadStart ::= SEQUENCE {
|
|||
...
|
||||
}
|
||||
|
||||
OverloadStartIEs S1AP-PROTOCOL-IES ::= {
|
||||
OverloadStartIEs S1AP-PROTOCOL-IES ::= {
|
||||
{ ID id-OverloadResponse CRITICALITY reject TYPE OverloadResponse PRESENCE mandatory }|
|
||||
{ ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional }|
|
||||
{ ID id-TrafficLoadReductionIndication CRITICALITY ignore TYPE TrafficLoadReductionIndication PRESENCE optional },
|
||||
|
@ -2200,13 +2205,13 @@ OverloadStop ::= SEQUENCE {
|
|||
...
|
||||
}
|
||||
|
||||
OverloadStopIEs S1AP-PROTOCOL-IES ::= {
|
||||
OverloadStopIEs S1AP-PROTOCOL-IES ::= {
|
||||
{ ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional },
|
||||
...
|
||||
}
|
||||
-- **************************************************************
|
||||
--
|
||||
-- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE
|
||||
-- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
|
@ -2222,7 +2227,7 @@ WriteReplaceWarningRequest ::= SEQUENCE {
|
|||
...
|
||||
}
|
||||
|
||||
WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= {
|
||||
WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= {
|
||||
{ ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }|
|
||||
{ ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }|
|
||||
{ ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }|
|
||||
|
@ -2386,7 +2391,7 @@ KillRequest ::= SEQUENCE {
|
|||
...
|
||||
}
|
||||
|
||||
KillRequestIEs S1AP-PROTOCOL-IES ::= {
|
||||
KillRequestIEs S1AP-PROTOCOL-IES ::= {
|
||||
{ ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory}|
|
||||
{ ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory}|
|
||||
{ ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional}|
|
||||
|
@ -2557,7 +2562,7 @@ E-RABModificationIndicationIEs S1AP-PROTOCOL-IES ::= {
|
|||
{ ID id-E-RABToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABToBeModifiedListBearerModInd PRESENCE mandatory}|
|
||||
{ ID id-E-RABNotToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABNotToBeModifiedListBearerModInd PRESENCE optional}|
|
||||
{ ID id-CSGMembershipInfo CRITICALITY reject TYPE CSGMembershipInfo PRESENCE optional}|
|
||||
-- Extension for Release 11 to support BBAI --
|
||||
-- Extension for Release 11 to support BBAI --
|
||||
{ ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional},
|
||||
...
|
||||
}
|
||||
|
|
|
@ -5,14 +5,14 @@
|
|||
-- IE definitions for the SON Transfer application
|
||||
-- The IEs in this ASN.1 module shall be defined and encoded
|
||||
-- using the same rules as applicable for the S1AP-IEs module.
|
||||
--
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
|
||||
|
||||
SonTransfer-IEs
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
|
@ -155,7 +155,7 @@ ReportingCellList ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF Reportin
|
|||
|
||||
MultiCellLoadReportingResponse ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF MultiCellLoadReportingResponse-Item
|
||||
|
||||
MultiCellLoadReportingResponse-Item ::= CHOICE{
|
||||
MultiCellLoadReportingResponse-Item ::= CHOICE{
|
||||
eUTRANResponse EUTRANResponse,
|
||||
uTRANResponse OCTET STRING,
|
||||
gERANResponse OCTET STRING,
|
||||
|
@ -294,7 +294,7 @@ TooEarlyInterRATHOReportReportFromEUTRAN ::= SEQUENCE {
|
|||
...
|
||||
}
|
||||
|
||||
-- Ws modification, allready defined in S1AP-IEs.asn
|
||||
-- WS modification, already defined in S1AP-IEs.asn
|
||||
--MobilityInformation ::= BIT STRING (SIZE(32))
|
||||
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#include <epan/asn1.h>
|
||||
#include <epan/prefs.h>
|
||||
#include <epan/sctpppids.h>
|
||||
#include <epan/expert.h>
|
||||
|
||||
#include "packet-ber.h"
|
||||
#include "packet-per.h"
|
||||
|
@ -43,11 +44,9 @@
|
|||
#include "packet-bssgp.h"
|
||||
#include "packet-s1ap.h"
|
||||
#include "packet-a21.h"
|
||||
|
||||
#ifdef _MSC_VER
|
||||
/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
|
||||
#pragma warning(disable:4146)
|
||||
#endif
|
||||
#include "packet-gsm_map.h"
|
||||
#include "packet-cell_broadcast.h"
|
||||
#include "packet-gsm_a_common.h"
|
||||
|
||||
#define PNAME "S1 Application Protocol"
|
||||
#define PSNAME "S1AP"
|
||||
|
@ -70,6 +69,39 @@ static int proto_s1ap = -1;
|
|||
|
||||
static int hf_s1ap_transportLayerAddressIPv4 = -1;
|
||||
static int hf_s1ap_transportLayerAddressIPv6 = -1;
|
||||
static int hf_s1ap_E_UTRAN_Trace_ID_TraceID = -1;
|
||||
static int hf_s1ap_E_UTRAN_Trace_ID_TraceRecordingSessionReference = -1;
|
||||
static int hf_s1ap_interfacesToTrace_S1_MME = -1;
|
||||
static int hf_s1ap_interfacesToTrace_X2 = -1;
|
||||
static int hf_s1ap_interfacesToTrace_Uu = -1;
|
||||
static int hf_s1ap_interfacesToTrace_Reserved = -1;
|
||||
static int hf_s1ap_encryptionAlgorithms_EEA1 = -1;
|
||||
static int hf_s1ap_encryptionAlgorithms_EEA2 = -1;
|
||||
static int hf_s1ap_encryptionAlgorithms_EEA3 = -1;
|
||||
static int hf_s1ap_encryptionAlgorithms_Reserved = -1;
|
||||
static int hf_s1ap_integrityProtectionAlgorithms_EIA1 = -1;
|
||||
static int hf_s1ap_integrityProtectionAlgorithms_EIA2 = -1;
|
||||
static int hf_s1ap_integrityProtectionAlgorithms_EIA3 = -1;
|
||||
static int hf_s1ap_integrityProtectionAlgorithms_Reserved = -1;
|
||||
static int hf_s1ap_SerialNumber_gs = -1;
|
||||
static int hf_s1ap_SerialNumber_msg_code = -1;
|
||||
static int hf_s1ap_SerialNumber_upd_nb = -1;
|
||||
static int hf_s1ap_WarningType_value = -1;
|
||||
static int hf_s1ap_WarningType_emergency_user_alert = -1;
|
||||
static int hf_s1ap_WarningType_popup = -1;
|
||||
static int hf_s1ap_WarningMessageContents_nb_pages = -1;
|
||||
static int hf_s1ap_WarningMessageContents_decoded_page = -1;
|
||||
static int hf_s1ap_measurementsToActivate_M1 = -1;
|
||||
static int hf_s1ap_measurementsToActivate_M2 = -1;
|
||||
static int hf_s1ap_measurementsToActivate_M3 = -1;
|
||||
static int hf_s1ap_measurementsToActivate_M4 = -1;
|
||||
static int hf_s1ap_measurementsToActivate_M5 = -1;
|
||||
static int hf_s1ap_measurementsToActivate_LoggingM1FromEventTriggered = -1;
|
||||
static int hf_s1ap_measurementsToActivate_M6 = -1;
|
||||
static int hf_s1ap_measurementsToActivate_M7 = -1;
|
||||
static int hf_s1ap_MDT_Location_Info_GNSS = -1;
|
||||
static int hf_s1ap_MDT_Location_Info_E_CID = -1;
|
||||
static int hf_s1ap_MDT_Location_Info_Reserved = -1;
|
||||
#include "packet-s1ap-hf.c"
|
||||
|
||||
/* Initialize the subtree pointers */
|
||||
|
@ -87,16 +119,31 @@ static int ett_s1ap_UE_HistoryInformationFromTheUE = -1;
|
|||
static int ett_s1ap_CELevel = -1;
|
||||
static int ett_s1ap_UE_RLF_Report_Container = -1;
|
||||
static int ett_s1ap_UE_RLF_Report_Container_for_extended_bands = -1;
|
||||
|
||||
static int ett_s1ap_S1_Message = -1;
|
||||
static int ett_s1ap_E_UTRAN_Trace_ID = -1;
|
||||
static int ett_s1ap_InterfacesToTrace = -1;
|
||||
static int ett_s1ap_EncryptionAlgorithms = -1;
|
||||
static int ett_s1ap_IntegrityProtectionAlgorithms = -1;
|
||||
static int ett_s1ap_LastVisitedUTRANCellInformation = -1;
|
||||
static int ett_s1ap_SerialNumber = -1;
|
||||
static int ett_s1ap_WarningType = -1;
|
||||
static int ett_s1ap_DataCodingScheme = -1;
|
||||
static int ett_s1ap_WarningMessageContents = -1;
|
||||
static int ett_s1ap_MSClassmark = -1;
|
||||
static int ett_s1ap_MeasurementsToActivate = -1;
|
||||
static int ett_s1ap_MDT_Location_Info = -1;
|
||||
static int ett_s1ap_IMSI = -1;
|
||||
static int ett_s1ap_NASSecurityParameters = -1;
|
||||
#include "packet-s1ap-ett.c"
|
||||
|
||||
static expert_field ei_s1ap_number_pages_le15 = EI_INIT;
|
||||
|
||||
enum{
|
||||
INITIATING_MESSAGE,
|
||||
SUCCESSFUL_OUTCOME,
|
||||
UNSUCCESSFUL_OUTCOME
|
||||
};
|
||||
|
||||
|
||||
/* Global variables */
|
||||
static guint32 ProcedureCode;
|
||||
static guint32 ProtocolIE_ID;
|
||||
|
@ -106,6 +153,7 @@ static guint32 handover_type_value;
|
|||
static guint32 message_type;
|
||||
static gboolean g_s1ap_dissect_container = TRUE;
|
||||
static const char *obj_id = NULL;
|
||||
static guint8 dataCodingScheme = SMS_ENCODING_NOT_SET;
|
||||
|
||||
static dissector_handle_t gcsna_handle = NULL;
|
||||
static dissector_handle_t s1ap_handle;
|
||||
|
@ -132,6 +180,7 @@ static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, p
|
|||
|
||||
static int dissect_SourceeNB_ToTargeteNB_TransparentContainer_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
|
||||
static int dissect_TargeteNB_ToSourceeNB_TransparentContainer_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
|
||||
static int dissect_InitialUEMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data);
|
||||
#if 0
|
||||
static int dissect_SourceRNC_ToTargetRNC_TransparentContainer_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
|
||||
static int dissect_TargetRNC_ToSourceRNC_TransparentContainer_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
|
||||
|
@ -151,6 +200,74 @@ s1ap_Threshold_RSRQ_fmt(gchar *s, guint32 v)
|
|||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB (%u)", ((float)v/2)-20, v);
|
||||
}
|
||||
|
||||
static const true_false_string s1ap_tfs_interfacesToTrace = {
|
||||
"Should be traced",
|
||||
"Should not be traced"
|
||||
};
|
||||
|
||||
static void
|
||||
s1ap_Time_UE_StayedInCell_EnhancedGranularity_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fs", ((float)v)/10);
|
||||
}
|
||||
|
||||
static const value_string s1ap_serialNumber_gs_vals[] = {
|
||||
{ 0, "Display mode immediate, cell wide"},
|
||||
{ 1, "Display mode normal, PLMN wide"},
|
||||
{ 2, "Display mode normal, tracking area wide"},
|
||||
{ 3, "Display mode normal, cell wide"},
|
||||
{ 0, NULL},
|
||||
};
|
||||
|
||||
static const value_string s1ap_warningType_vals[] = {
|
||||
{ 0, "Earthquake"},
|
||||
{ 1, "Tsunami"},
|
||||
{ 2, "Earthquake and Tsunami"},
|
||||
{ 3, "Test"},
|
||||
{ 4, "Other"},
|
||||
{ 0, NULL},
|
||||
};
|
||||
|
||||
static void
|
||||
dissect_s1ap_warningMessageContents(tvbuff_t *warning_msg_tvb, proto_tree *tree, packet_info *pinfo, guint8 dcs)
|
||||
{
|
||||
guint32 offset;
|
||||
guint8 nb_of_pages, length, *str;
|
||||
proto_item *ti;
|
||||
tvbuff_t *cb_data_page_tvb, *cb_data_tvb;
|
||||
int i;
|
||||
|
||||
nb_of_pages = tvb_get_guint8(warning_msg_tvb, 0);
|
||||
ti = proto_tree_add_uint(tree, hf_s1ap_WarningMessageContents_nb_pages, warning_msg_tvb, 0, 1, nb_of_pages);
|
||||
if (nb_of_pages > 15) {
|
||||
expert_add_info_format(pinfo, ti, &ei_s1ap_number_pages_le15,
|
||||
"Number of pages should be <=15 (found %u)", nb_of_pages);
|
||||
nb_of_pages = 15;
|
||||
}
|
||||
for (i = 0, offset = 1; i < nb_of_pages; i++) {
|
||||
length = tvb_get_guint8(warning_msg_tvb, offset+82);
|
||||
cb_data_page_tvb = tvb_new_subset_length(warning_msg_tvb, offset, length);
|
||||
cb_data_tvb = dissect_cbs_data(dcs, cb_data_page_tvb, tree, pinfo, 0);
|
||||
if (cb_data_tvb) {
|
||||
str = tvb_get_string_enc(wmem_packet_scope(), cb_data_tvb, 0, tvb_reported_length(cb_data_tvb), ENC_UTF_8|ENC_NA);
|
||||
proto_tree_add_string_format(tree, hf_s1ap_WarningMessageContents_decoded_page, warning_msg_tvb, offset, 83,
|
||||
str, "Decoded Page %u: %s", i+1, str);
|
||||
}
|
||||
offset += 83;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
s1ap_EUTRANRoundTripDelayEstimationInfo_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%uTs (%u)", 16*v, v);
|
||||
}
|
||||
|
||||
static const true_false_string s1ap_tfs_activate_do_not_activate = {
|
||||
"Activate",
|
||||
"Do not activate"
|
||||
};
|
||||
|
||||
#include "packet-s1ap-fn.c"
|
||||
|
||||
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
||||
|
@ -264,7 +381,138 @@ void proto_register_s1ap(void) {
|
|||
{ "transportLayerAddress(IPv6)", "s1ap.transportLayerAddressIPv6",
|
||||
FT_IPv6, BASE_NONE, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_s1ap_E_UTRAN_Trace_ID_TraceID,
|
||||
{ "TraceID", "s1ap.E_UTRAN_Trace_ID.TraceID",
|
||||
FT_UINT24, BASE_HEX, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_E_UTRAN_Trace_ID_TraceRecordingSessionReference,
|
||||
{ "TraceRecordingSessionReference", "s1ap.E_UTRAN_Trace_ID.TraceRecordingSessionReference",
|
||||
FT_UINT16, BASE_HEX, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_interfacesToTrace_S1_MME,
|
||||
{ "S1-MME", "s1ap.interfacesToTrace.S1_MME",
|
||||
FT_BOOLEAN, 8, TFS(&s1ap_tfs_interfacesToTrace), 0x80,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_interfacesToTrace_X2,
|
||||
{ "X2", "s1ap.interfacesToTrace.X2",
|
||||
FT_BOOLEAN, 8, TFS(&s1ap_tfs_interfacesToTrace), 0x40,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_interfacesToTrace_Uu,
|
||||
{ "Uu", "s1ap.interfacesToTrace.Uu",
|
||||
FT_BOOLEAN, 8, TFS(&s1ap_tfs_interfacesToTrace), 0x20,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_interfacesToTrace_Reserved,
|
||||
{ "Reserved", "s1ap.interfacesToTrace.Reserved",
|
||||
FT_UINT8, BASE_HEX, NULL, 0x1f,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_encryptionAlgorithms_EEA1,
|
||||
{ "128-EEA1", "s1ap.encryptionAlgorithms.EEA1",
|
||||
FT_BOOLEAN, 16, TFS(&tfs_supported_not_supported), 0x8000,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_encryptionAlgorithms_EEA2,
|
||||
{ "128-EEA2", "s1ap.encryptionAlgorithms.EEA2",
|
||||
FT_BOOLEAN, 16, TFS(&tfs_supported_not_supported), 0x4000,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_encryptionAlgorithms_EEA3,
|
||||
{ "128-EEA3", "s1ap.encryptionAlgorithms.EEA3",
|
||||
FT_BOOLEAN, 16, TFS(&tfs_supported_not_supported), 0x2000,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_encryptionAlgorithms_Reserved,
|
||||
{ "Reserved", "s1ap.encryptionAlgorithms.Reserved",
|
||||
FT_UINT16, BASE_HEX, NULL, 0x1fff,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_integrityProtectionAlgorithms_EIA1,
|
||||
{ "128-EIA1", "s1ap.integrityProtectionAlgorithms.EIA1",
|
||||
FT_BOOLEAN, 16, TFS(&tfs_supported_not_supported), 0x8000,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_integrityProtectionAlgorithms_EIA2,
|
||||
{ "128-EIA2", "s1ap.integrityProtectionAlgorithms.EIA2",
|
||||
FT_BOOLEAN, 16, TFS(&tfs_supported_not_supported), 0x4000,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_integrityProtectionAlgorithms_EIA3,
|
||||
{ "128-EIA3", "s1ap.integrityProtectionAlgorithms.EIA3",
|
||||
FT_BOOLEAN, 16, TFS(&tfs_supported_not_supported), 0x2000,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_integrityProtectionAlgorithms_Reserved,
|
||||
{ "Reserved", "s1ap.integrityProtectionAlgorithms.Reserved",
|
||||
FT_UINT16, BASE_HEX, NULL, 0x1fff,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_SerialNumber_gs,
|
||||
{ "Geographical Scope", "s1ap.SerialNumber.gs",
|
||||
FT_UINT16, BASE_DEC, VALS(s1ap_serialNumber_gs_vals), 0xc000,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_SerialNumber_msg_code,
|
||||
{ "Message Code", "s1ap.SerialNumber.msg_code",
|
||||
FT_UINT16, BASE_DEC, NULL, 0x3ff0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_SerialNumber_upd_nb,
|
||||
{ "Update Number", "s1ap.SerialNumber.upd_nb",
|
||||
FT_UINT16, BASE_DEC, NULL, 0x000f,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_WarningType_value,
|
||||
{ "Warning Type Value", "s1ap.WarningType.value",
|
||||
FT_UINT16, BASE_DEC, VALS(s1ap_warningType_vals), 0xfe00,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_WarningType_emergency_user_alert,
|
||||
{ "Emergency User Alert", "s1ap.WarningType.emergency_user_alert",
|
||||
FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x0100,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_WarningType_popup,
|
||||
{ "Popup", "s1ap.WarningType.popup",
|
||||
FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x0080,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_WarningMessageContents_nb_pages,
|
||||
{ "Number of Pages", "s1ap.WarningMessageContents.nb_pages",
|
||||
FT_UINT8, BASE_DEC, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_WarningMessageContents_decoded_page,
|
||||
{ "Decoded Page", "lte-rrc.WarningMessageContents.decoded_page",
|
||||
FT_STRING, STR_UNICODE, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_measurementsToActivate_M1,
|
||||
{ "M1", "s1ap.measurementsToActivate.M1",
|
||||
FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x80,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_measurementsToActivate_M2,
|
||||
{ "M2", "s1ap.measurementsToActivate.M2",
|
||||
FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x40,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_measurementsToActivate_M3,
|
||||
{ "M3", "s1ap.measurementsToActivate.M3",
|
||||
FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x20,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_measurementsToActivate_M4,
|
||||
{ "M4", "s1ap.measurementsToActivate.M4",
|
||||
FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x10,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_measurementsToActivate_M5,
|
||||
{ "M5", "s1ap.measurementsToActivate.M5",
|
||||
FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x08,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_measurementsToActivate_LoggingM1FromEventTriggered,
|
||||
{ "LoggingOfM1FromEventTriggeredMeasurementReports", "s1ap.measurementsToActivate.LoggingM1FromEventTriggered",
|
||||
FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x04,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_measurementsToActivate_M6,
|
||||
{ "M6", "s1ap.measurementsToActivate.M6",
|
||||
FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x02,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_measurementsToActivate_M7,
|
||||
{ "M7", "s1ap.measurementsToActivate.M7",
|
||||
FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x01,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_MDT_Location_Info_GNSS,
|
||||
{ "GNSS", "s1ap.MDT_Location_Info.GNSS",
|
||||
FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x80,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_MDT_Location_Info_E_CID,
|
||||
{ "E-CID", "s1ap.MDT_Location_Info.E_CID",
|
||||
FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x40,
|
||||
NULL, HFILL }},
|
||||
{ &hf_s1ap_MDT_Location_Info_Reserved,
|
||||
{ "Reserved", "s1ap.MDT_Location_Info.Reserved",
|
||||
FT_UINT8, BASE_HEX, NULL, 0x3f,
|
||||
NULL, HFILL }},
|
||||
#include "packet-s1ap-hfarr.c"
|
||||
};
|
||||
|
||||
|
@ -284,16 +532,38 @@ void proto_register_s1ap(void) {
|
|||
&ett_s1ap_CELevel,
|
||||
&ett_s1ap_UE_RLF_Report_Container,
|
||||
&ett_s1ap_UE_RLF_Report_Container_for_extended_bands,
|
||||
&ett_s1ap_S1_Message,
|
||||
&ett_s1ap_E_UTRAN_Trace_ID,
|
||||
&ett_s1ap_InterfacesToTrace,
|
||||
&ett_s1ap_EncryptionAlgorithms,
|
||||
&ett_s1ap_IntegrityProtectionAlgorithms,
|
||||
&ett_s1ap_LastVisitedUTRANCellInformation,
|
||||
&ett_s1ap_SerialNumber,
|
||||
&ett_s1ap_WarningType,
|
||||
&ett_s1ap_DataCodingScheme,
|
||||
&ett_s1ap_WarningMessageContents,
|
||||
&ett_s1ap_MSClassmark,
|
||||
&ett_s1ap_MeasurementsToActivate,
|
||||
&ett_s1ap_MDT_Location_Info,
|
||||
&ett_s1ap_IMSI,
|
||||
&ett_s1ap_NASSecurityParameters,
|
||||
#include "packet-s1ap-ettarr.c"
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_s1ap_number_pages_le15, { "s1ap.number_pages_le15", PI_MALFORMED, PI_ERROR, "Number of pages should be <=15", EXPFILL }}
|
||||
};
|
||||
|
||||
module_t *s1ap_module;
|
||||
expert_module_t* expert_s1ap;
|
||||
|
||||
/* Register protocol */
|
||||
proto_s1ap = proto_register_protocol(PNAME, PSNAME, PFNAME);
|
||||
/* Register fields and subtrees */
|
||||
proto_register_field_array(proto_s1ap, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
expert_s1ap = expert_register_protocol(proto_s1ap);
|
||||
expert_register_field_array(expert_s1ap, ei, array_length(ei));
|
||||
|
||||
/* Register dissector */
|
||||
s1ap_handle = register_dissector("s1ap", dissect_s1ap, proto_s1ap);
|
||||
|
|
|
@ -236,18 +236,30 @@ obj_id = NULL;
|
|||
}
|
||||
}
|
||||
if (is_ascii)
|
||||
proto_item_append_text(actx->created_item,"(%%s)",tvb_format_text(parameter_tvb, 0, length));
|
||||
proto_item_append_text(actx->created_item," (%%s)",tvb_format_text(parameter_tvb, 0, length));
|
||||
|
||||
|
||||
#.FN_BODY TAC VAL_PTR = ¶meter_tvb
|
||||
tvbuff_t *parameter_tvb=NULL;
|
||||
#.FN_BODY MMEname VAL_PTR = parameter_tvb
|
||||
tvbuff_t *parameter_tvb=NULL;
|
||||
int length;
|
||||
int p_offset;
|
||||
gboolean is_ascii;
|
||||
|
||||
%(DEFAULT_BODY)s
|
||||
|
||||
if (!parameter_tvb)
|
||||
return offset;
|
||||
|
||||
proto_item_append_text(actx->created_item," (%%u)",tvb_get_ntohs(parameter_tvb, 0));
|
||||
length = tvb_reported_length(parameter_tvb);
|
||||
|
||||
is_ascii = TRUE;
|
||||
for (p_offset=0; p_offset < length; p_offset++){
|
||||
if(!g_ascii_isprint(tvb_get_guint8(parameter_tvb, p_offset ))){
|
||||
is_ascii = FALSE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (is_ascii)
|
||||
proto_item_append_text(actx->created_item," (%%s)",tvb_format_text(parameter_tvb, 0, length));
|
||||
|
||||
#.END
|
||||
|
||||
|
@ -299,6 +311,15 @@ tvbuff_t *parameter_tvb=NULL;
|
|||
proto_tree_add_item(subtree, hf_s1ap_transportLayerAddressIPv6, parameter_tvb, 4, 16, ENC_NA);
|
||||
}
|
||||
|
||||
#.TYPE_ATTR
|
||||
Port-Number TYPE = FT_UINT16 DISPLAY = BASE_DEC
|
||||
#.FN_BODY Port-Number VAL_PTR = ¶meter_tvb HF_INDEX = -1
|
||||
tvbuff_t *parameter_tvb = NULL;
|
||||
%(DEFAULT_BODY)s
|
||||
if (parameter_tvb) {
|
||||
actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
|
||||
}
|
||||
|
||||
#.FN_HDR InitialUEMessage
|
||||
/* Set the direction of the message */
|
||||
actx->pinfo->link_dir=P2P_DIR_UL;
|
||||
|
@ -334,7 +355,7 @@ tvbuff_t *parameter_tvb=NULL;
|
|||
# it is described how the container shall be encoded with respect to the scenario
|
||||
# in which it is used.
|
||||
tvbuff_t *parameter_tvb;
|
||||
proto_tree *subtree = NULL;
|
||||
proto_tree *subtree;
|
||||
|
||||
%(DEFAULT_BODY)s
|
||||
|
||||
|
@ -392,7 +413,7 @@ tvbuff_t *parameter_tvb=NULL;
|
|||
# See Target-ToSource-TransparentContainer in RANAP
|
||||
|
||||
tvbuff_t *parameter_tvb;
|
||||
proto_tree *subtree = NULL;
|
||||
proto_tree *subtree;
|
||||
|
||||
%(DEFAULT_BODY)s
|
||||
|
||||
|
@ -481,7 +502,7 @@ tvbuff_t *parameter_tvb=NULL;
|
|||
# HandoverCommand and HandoverRequestAcknowledge.
|
||||
|
||||
tvbuff_t *parameter_tvb;
|
||||
proto_tree *subtree = NULL;
|
||||
proto_tree *subtree;
|
||||
|
||||
%(DEFAULT_BODY)s
|
||||
if (!parameter_tvb)
|
||||
|
@ -506,7 +527,7 @@ tvbuff_t *parameter_tvb=NULL;
|
|||
|
||||
#.FN_BODY UE-HistoryInformationFromTheUE VAL_PTR = ¶meter_tvb
|
||||
tvbuff_t *parameter_tvb;
|
||||
proto_tree *subtree = NULL;
|
||||
proto_tree *subtree;
|
||||
|
||||
%(DEFAULT_BODY)s
|
||||
if (!parameter_tvb)
|
||||
|
@ -519,7 +540,7 @@ tvbuff_t *parameter_tvb=NULL;
|
|||
|
||||
#.FN_BODY UERadioCapability VAL_PTR = ¶meter_tvb
|
||||
tvbuff_t *parameter_tvb;
|
||||
proto_tree *subtree = NULL;
|
||||
proto_tree *subtree;
|
||||
|
||||
%(DEFAULT_BODY)s
|
||||
if (!parameter_tvb)
|
||||
|
@ -531,10 +552,10 @@ tvbuff_t *parameter_tvb=NULL;
|
|||
}
|
||||
|
||||
#.TYPE_ATTR
|
||||
Threshold-RSRP DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(s1ap_Threshold_RSRP_fmt)
|
||||
Threshold-RSRP DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(s1ap_Threshold_RSRP_fmt)
|
||||
|
||||
#.TYPE_ATTR
|
||||
Threshold-RSRQ DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(s1ap_Threshold_RSRQ_fmt)
|
||||
Threshold-RSRQ DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(s1ap_Threshold_RSRQ_fmt)
|
||||
|
||||
# 9.2.3.24 RIM Information
|
||||
# Contains the BSSGP RIM PDU
|
||||
|
@ -545,7 +566,7 @@ Threshold-RSRQ DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(s1ap_Threshold_RSRQ_fmt)
|
|||
%(DEFAULT_BODY)s
|
||||
|
||||
if (!parameter_tvb)
|
||||
return offset;
|
||||
return offset;
|
||||
|
||||
subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_RIMInformation);
|
||||
if ((tvb_reported_length(parameter_tvb)>0)&&(bssgp_handle)){
|
||||
|
@ -557,7 +578,7 @@ Threshold-RSRQ DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(s1ap_Threshold_RSRQ_fmt)
|
|||
#.FN_BODY Cdma2000PDU VAL_PTR = ¶meter_tvb
|
||||
|
||||
tvbuff_t *parameter_tvb;
|
||||
proto_tree *subtree = NULL;
|
||||
proto_tree *subtree;
|
||||
|
||||
%(DEFAULT_BODY)s
|
||||
if (!parameter_tvb)
|
||||
|
@ -577,8 +598,8 @@ if (gcsna_handle) {
|
|||
* to handover to. The CDMA2000 Reference Cell
|
||||
* ID is statically configured in the eNB.
|
||||
*/
|
||||
tvbuff_t *parameter_tvb;
|
||||
proto_tree *subtree = NULL;
|
||||
tvbuff_t *parameter_tvb;
|
||||
proto_tree *subtree;
|
||||
|
||||
%(DEFAULT_BODY)s
|
||||
if (!parameter_tvb)
|
||||
|
@ -591,8 +612,8 @@ if (gcsna_handle) {
|
|||
# 9.2.1.98 UE Radio Capability for Paging
|
||||
# Includes the UERadioPagingInformation message as defined in 10.2.2 of TS 36.331 [16].
|
||||
|
||||
tvbuff_t *parameter_tvb;
|
||||
proto_tree *subtree = NULL;
|
||||
tvbuff_t *parameter_tvb;
|
||||
proto_tree *subtree;
|
||||
|
||||
%(DEFAULT_BODY)s
|
||||
if (!parameter_tvb)
|
||||
|
@ -606,8 +627,8 @@ if (gcsna_handle) {
|
|||
#.FN_BODY CELevel VAL_PTR = ¶meter_tvb
|
||||
# 9.2.1.109 Cell Identifier and Coverage Enhancement Level
|
||||
# Includes the UEPagingCoverageInformation message as defined in 10.2.2 of TS 36.331
|
||||
tvbuff_t *parameter_tvb;
|
||||
proto_tree *subtree = NULL;
|
||||
tvbuff_t *parameter_tvb;
|
||||
proto_tree *subtree;
|
||||
%(DEFAULT_BODY)s
|
||||
if (!parameter_tvb)
|
||||
return offset;
|
||||
|
@ -620,8 +641,8 @@ if (gcsna_handle) {
|
|||
#.FN_BODY UE-RLF-Report-Container VAL_PTR = ¶meter_tvb
|
||||
# 9.2.3.40 RLF Report Information
|
||||
# Includes the rlf-Report-r9 contained in UEInformationResponse message as defined in TS 36.331
|
||||
tvbuff_t *parameter_tvb;
|
||||
proto_tree *subtree = NULL;
|
||||
tvbuff_t *parameter_tvb;
|
||||
proto_tree *subtree;
|
||||
%(DEFAULT_BODY)s
|
||||
if (!parameter_tvb)
|
||||
return offset;
|
||||
|
@ -634,8 +655,8 @@ if (gcsna_handle) {
|
|||
#.FN_BODY UE-RLF-Report-Container-for-extended-bands VAL_PTR = ¶meter_tvb
|
||||
# 9.2.3.40 RLF Report Information
|
||||
# Includes the rlf-Report-v9e0 contained in UEInformationResponse message as defined in TS 36.331
|
||||
tvbuff_t *parameter_tvb;
|
||||
proto_tree *subtree = NULL;
|
||||
tvbuff_t *parameter_tvb;
|
||||
proto_tree *subtree;
|
||||
%(DEFAULT_BODY)s
|
||||
if (!parameter_tvb)
|
||||
return offset;
|
||||
|
@ -648,8 +669,8 @@ if (gcsna_handle) {
|
|||
#.FN_BODY TooEarlyInterRATHOReportReportFromEUTRAN/uERLFReportContainer VAL_PTR = ¶meter_tvb
|
||||
# B.1.17 Failure Event Report
|
||||
# Includes the RLF Report contained in the UEInformationResponse message (TS 36.331 [16])
|
||||
tvbuff_t *parameter_tvb;
|
||||
proto_tree *subtree = NULL;
|
||||
tvbuff_t *parameter_tvb;
|
||||
proto_tree *subtree;
|
||||
%(DEFAULT_BODY)s
|
||||
if (!parameter_tvb)
|
||||
return offset;
|
||||
|
@ -662,6 +683,294 @@ if (gcsna_handle) {
|
|||
#.TYPE_ATTR
|
||||
ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS = &s1ap_ProtocolIE_ID_vals_ext
|
||||
|
||||
#.FN_BODY S1-Message VAL_PTR = ¶meter_tvb
|
||||
tvbuff_t *parameter_tvb;
|
||||
proto_tree *subtree;
|
||||
%(DEFAULT_BODY)s
|
||||
if (!parameter_tvb)
|
||||
return offset;
|
||||
|
||||
subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_S1_Message);
|
||||
dissect_InitialUEMessage_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
|
||||
|
||||
#.FN_BODY E-UTRAN-Trace-ID VAL_PTR = ¶meter_tvb
|
||||
tvbuff_t *parameter_tvb;
|
||||
proto_tree *subtree;
|
||||
%(DEFAULT_BODY)s
|
||||
if (!parameter_tvb)
|
||||
return offset;
|
||||
subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_E_UTRAN_Trace_ID);
|
||||
dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_NONE, FALSE);
|
||||
proto_tree_add_item(subtree, hf_s1ap_E_UTRAN_Trace_ID_TraceID, parameter_tvb, 3, 3, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(subtree, hf_s1ap_E_UTRAN_Trace_ID_TraceRecordingSessionReference, parameter_tvb, 6, 2, ENC_BIG_ENDIAN);
|
||||
|
||||
#.FN_BODY InterfacesToTrace VAL_PTR = ¶meter_tvb
|
||||
tvbuff_t *parameter_tvb = NULL;
|
||||
%(DEFAULT_BODY)s
|
||||
if(parameter_tvb){
|
||||
const gint *fields[] = {
|
||||
&hf_s1ap_interfacesToTrace_S1_MME,
|
||||
&hf_s1ap_interfacesToTrace_X2,
|
||||
&hf_s1ap_interfacesToTrace_Uu,
|
||||
&hf_s1ap_interfacesToTrace_Reserved,
|
||||
NULL
|
||||
};
|
||||
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_InterfacesToTrace);
|
||||
proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 1, fields, ENC_BIG_ENDIAN);
|
||||
}
|
||||
|
||||
#.FN_FTR BitRate
|
||||
proto_item_append_text(actx->created_item, "bit/s");
|
||||
|
||||
#.TYPE_ATTR
|
||||
MME-Code TYPE = FT_UINT8 DISPLAY = BASE_DEC_HEX
|
||||
#.FN_BODY MME-Code VAL_PTR = ¶meter_tvb HF_INDEX = -1
|
||||
tvbuff_t *parameter_tvb = NULL;
|
||||
%(DEFAULT_BODY)s
|
||||
if (parameter_tvb) {
|
||||
actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 1, ENC_BIG_ENDIAN);
|
||||
}
|
||||
|
||||
#.TYPE_ATTR
|
||||
MME-Group-ID TYPE = FT_UINT16 DISPLAY = BASE_DEC_HEX
|
||||
#.FN_BODY MME-Group-ID VAL_PTR = ¶meter_tvb HF_INDEX = -1
|
||||
tvbuff_t *parameter_tvb = NULL;
|
||||
%(DEFAULT_BODY)s
|
||||
if (parameter_tvb) {
|
||||
actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
|
||||
}
|
||||
|
||||
#.FN_BODY EncryptionAlgorithms VAL_PTR = ¶meter_tvb
|
||||
tvbuff_t *parameter_tvb = NULL;
|
||||
%(DEFAULT_BODY)s
|
||||
if(parameter_tvb){
|
||||
const gint *fields[] = {
|
||||
&hf_s1ap_encryptionAlgorithms_EEA1,
|
||||
&hf_s1ap_encryptionAlgorithms_EEA2,
|
||||
&hf_s1ap_encryptionAlgorithms_EEA3,
|
||||
&hf_s1ap_encryptionAlgorithms_Reserved,
|
||||
NULL
|
||||
};
|
||||
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_EncryptionAlgorithms);
|
||||
proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 2, fields, ENC_BIG_ENDIAN);
|
||||
}
|
||||
|
||||
#.FN_BODY IntegrityProtectionAlgorithms VAL_PTR = ¶meter_tvb
|
||||
tvbuff_t *parameter_tvb = NULL;
|
||||
%(DEFAULT_BODY)s
|
||||
if(parameter_tvb){
|
||||
const gint *fields[] = {
|
||||
&hf_s1ap_integrityProtectionAlgorithms_EIA1,
|
||||
&hf_s1ap_integrityProtectionAlgorithms_EIA2,
|
||||
&hf_s1ap_integrityProtectionAlgorithms_EIA3,
|
||||
&hf_s1ap_integrityProtectionAlgorithms_Reserved,
|
||||
NULL
|
||||
};
|
||||
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_IntegrityProtectionAlgorithms);
|
||||
proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 2, fields, ENC_BIG_ENDIAN);
|
||||
}
|
||||
|
||||
#.FN_FTR Time-UE-StayedInCell
|
||||
proto_item_append_text(actx->created_item, "s");
|
||||
|
||||
#.TYPE_ATTR
|
||||
Time-UE-StayedInCell-EnhancedGranularity DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(s1ap_Time_UE_StayedInCell_EnhancedGranularity_fmt)
|
||||
|
||||
#.FN_BODY LastVisitedUTRANCellInformation VAL_PTR = ¶meter_tvb
|
||||
tvbuff_t *parameter_tvb;
|
||||
proto_tree *subtree;
|
||||
%(DEFAULT_BODY)s
|
||||
if (!parameter_tvb)
|
||||
return offset;
|
||||
|
||||
if (g_s1ap_dissect_container) {
|
||||
subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_LastVisitedUTRANCellInformation);
|
||||
dissect_ranap_LastVisitedUTRANCell_Item_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
|
||||
}
|
||||
|
||||
#.TYPE_ATTR
|
||||
MessageIdentifier TYPE = FT_UINT16 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS = <e_rrc_messageIdentifier_vals_ext
|
||||
|
||||
#.FN_BODY MessageIdentifier VAL_PTR = ¶meter_tvb HF_INDEX = -1
|
||||
tvbuff_t *parameter_tvb = NULL;
|
||||
%(DEFAULT_BODY)s
|
||||
if (parameter_tvb) {
|
||||
actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
|
||||
}
|
||||
|
||||
#.FN_BODY SerialNumber VAL_PTR = ¶meter_tvb
|
||||
tvbuff_t *parameter_tvb = NULL;
|
||||
%(DEFAULT_BODY)s
|
||||
if (parameter_tvb) {
|
||||
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_SerialNumber);
|
||||
proto_tree_add_item(subtree, hf_s1ap_SerialNumber_gs, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(subtree, hf_s1ap_SerialNumber_msg_code, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(subtree, hf_s1ap_SerialNumber_upd_nb, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
|
||||
}
|
||||
|
||||
#.FN_FTR RepetitionPeriod
|
||||
proto_item_append_text(actx->created_item, "s");
|
||||
|
||||
#.FN_BODY WarningType VAL_PTR = ¶meter_tvb
|
||||
tvbuff_t *parameter_tvb = NULL;
|
||||
%(DEFAULT_BODY)s
|
||||
if (parameter_tvb) {
|
||||
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_WarningType);
|
||||
proto_tree_add_item(subtree, hf_s1ap_WarningType_value, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(subtree, hf_s1ap_WarningType_emergency_user_alert, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(subtree, hf_s1ap_WarningType_popup, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
|
||||
}
|
||||
|
||||
#.FN_BODY DataCodingScheme VAL_PTR = ¶meter_tvb
|
||||
tvbuff_t *parameter_tvb = NULL;
|
||||
%(DEFAULT_BODY)s
|
||||
if (parameter_tvb) {
|
||||
proto_tree *subtree;
|
||||
|
||||
subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_DataCodingScheme);
|
||||
dataCodingScheme = dissect_cbs_data_coding_scheme(parameter_tvb, actx->pinfo, subtree, 0);
|
||||
}
|
||||
|
||||
#.FN_BODY WarningMessageContents VAL_PTR = ¶meter_tvb
|
||||
tvbuff_t *parameter_tvb = NULL;
|
||||
%(DEFAULT_BODY)s
|
||||
if (parameter_tvb) {
|
||||
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_WarningMessageContents);
|
||||
dissect_s1ap_warningMessageContents(parameter_tvb, subtree, actx->pinfo, dataCodingScheme);
|
||||
}
|
||||
|
||||
#.FN_BODY MSClassmark2 VAL_PTR = ¶meter_tvb
|
||||
tvbuff_t *parameter_tvb = NULL;
|
||||
%(DEFAULT_BODY)s
|
||||
if (parameter_tvb) {
|
||||
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_MSClassmark);
|
||||
de_ms_cm_2(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(tvb), NULL, 0);
|
||||
}
|
||||
|
||||
#.FN_BODY MSClassmark3 VAL_PTR = ¶meter_tvb
|
||||
tvbuff_t *parameter_tvb = NULL;
|
||||
%(DEFAULT_BODY)s
|
||||
if (parameter_tvb) {
|
||||
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_MSClassmark);
|
||||
de_ms_cm_3(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(tvb), NULL, 0);
|
||||
}
|
||||
|
||||
#.TYPE_ATTR
|
||||
EUTRANRoundTripDelayEstimationInfo DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(s1ap_EUTRANRoundTripDelayEstimationInfo_fmt)
|
||||
|
||||
#.FN_FTR ExtendedRepetitionPeriod
|
||||
proto_item_append_text(actx->created_item, "s");
|
||||
|
||||
#.FN_BODY MeasurementsToActivate VAL_PTR = ¶meter_tvb
|
||||
tvbuff_t *parameter_tvb = NULL;
|
||||
%(DEFAULT_BODY)s
|
||||
if(parameter_tvb){
|
||||
const gint *fields[] = {
|
||||
&hf_s1ap_measurementsToActivate_M1,
|
||||
&hf_s1ap_measurementsToActivate_M2,
|
||||
&hf_s1ap_measurementsToActivate_M3,
|
||||
&hf_s1ap_measurementsToActivate_M4,
|
||||
&hf_s1ap_measurementsToActivate_M5,
|
||||
&hf_s1ap_measurementsToActivate_LoggingM1FromEventTriggered,
|
||||
&hf_s1ap_measurementsToActivate_M6,
|
||||
&hf_s1ap_measurementsToActivate_M7,
|
||||
NULL
|
||||
};
|
||||
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_MeasurementsToActivate);
|
||||
proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 1, fields, ENC_BIG_ENDIAN);
|
||||
}
|
||||
|
||||
#.FN_BODY MDT-Location-Info VAL_PTR = ¶meter_tvb
|
||||
tvbuff_t *parameter_tvb = NULL;
|
||||
%(DEFAULT_BODY)s
|
||||
if(parameter_tvb){
|
||||
const gint *fields[] = {
|
||||
&hf_s1ap_MDT_Location_Info_GNSS,
|
||||
&hf_s1ap_MDT_Location_Info_E_CID,
|
||||
&hf_s1ap_MDT_Location_Info_Reserved,
|
||||
NULL
|
||||
};
|
||||
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_MDT_Location_Info);
|
||||
proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 1, fields, ENC_BIG_ENDIAN);
|
||||
}
|
||||
|
||||
#.TYPE_ATTR
|
||||
LHN-ID TYPE=FT_STRING DISPLAY = STR_UNICODE
|
||||
#.FN_BODY LHN-ID VAL_PTR = ¶meter_tvb HF_INDEX = -1
|
||||
tvbuff_t *parameter_tvb = NULL;
|
||||
%(DEFAULT_BODY)s
|
||||
actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, -1, ENC_UTF_8|ENC_NA);
|
||||
#.END
|
||||
|
||||
#.FN_FTR ExpectedActivityPeriod
|
||||
proto_item_append_text(actx->created_item, "s");
|
||||
|
||||
#.FN_FTR ExpectedIdlePeriod
|
||||
proto_item_append_text(actx->created_item, "s");
|
||||
|
||||
#.FN_FTR Time-UE-StayedInCell
|
||||
proto_item_append_text(actx->created_item, "s");
|
||||
|
||||
#.TYPE_ATTR
|
||||
TAC TYPE = FT_UINT16 DISPLAY = BASE_DEC_HEX
|
||||
#.FN_BODY TAC VAL_PTR = ¶meter_tvb HF_INDEX = -1
|
||||
tvbuff_t *parameter_tvb = NULL;
|
||||
%(DEFAULT_BODY)s
|
||||
if (parameter_tvb) {
|
||||
actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
|
||||
}
|
||||
|
||||
#.TYPE_ATTR
|
||||
LAC TYPE = FT_UINT16 DISPLAY = BASE_DEC_HEX
|
||||
#.FN_BODY LAC VAL_PTR = ¶meter_tvb HF_INDEX = -1
|
||||
tvbuff_t *parameter_tvb = NULL;
|
||||
%(DEFAULT_BODY)s
|
||||
if (parameter_tvb) {
|
||||
actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
|
||||
}
|
||||
|
||||
#.TYPE_ATTR
|
||||
RAC TYPE = FT_UINT8 DISPLAY = BASE_DEC_HEX
|
||||
#.FN_BODY RAC VAL_PTR = ¶meter_tvb HF_INDEX = -1
|
||||
tvbuff_t *parameter_tvb = NULL;
|
||||
%(DEFAULT_BODY)s
|
||||
if (parameter_tvb) {
|
||||
actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 1, ENC_BIG_ENDIAN);
|
||||
}
|
||||
|
||||
#.TYPE_ATTR
|
||||
M-TMSI TYPE = FT_UINT32 DISPLAY = BASE_DEC_HEX
|
||||
#.FN_BODY M-TMSI VAL_PTR = ¶meter_tvb HF_INDEX = -1
|
||||
tvbuff_t *parameter_tvb = NULL;
|
||||
%(DEFAULT_BODY)s
|
||||
if (parameter_tvb) {
|
||||
actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 4, ENC_BIG_ENDIAN);
|
||||
}
|
||||
|
||||
#.FN_BODY IMSI VAL_PTR = ¶meter_tvb
|
||||
tvbuff_t *parameter_tvb;
|
||||
%(DEFAULT_BODY)s
|
||||
if (parameter_tvb) {
|
||||
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_IMSI);
|
||||
dissect_e212_imsi(parameter_tvb, actx->pinfo, subtree, 0, tvb_reported_length(parameter_tvb), FALSE);
|
||||
}
|
||||
|
||||
#.FN_BODY NASSecurityParametersfromE-UTRAN VAL_PTR = ¶meter_tvb
|
||||
tvbuff_t *parameter_tvb;
|
||||
%(DEFAULT_BODY)s
|
||||
if (parameter_tvb) {
|
||||
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_NASSecurityParameters);
|
||||
de_emm_sec_par_from_eutra(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(parameter_tvb), NULL, 0);
|
||||
}
|
||||
|
||||
#.FN_BODY NASSecurityParameterstoE-UTRAN VAL_PTR = ¶meter_tvb
|
||||
tvbuff_t *parameter_tvb;
|
||||
%(DEFAULT_BODY)s
|
||||
if (parameter_tvb) {
|
||||
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_NASSecurityParameters);
|
||||
de_emm_sec_par_to_eutra(parameter_tvb, subtree, actx->pinfo, 0, tvb_reported_length(parameter_tvb), NULL, 0);
|
||||
}
|
||||
|
||||
#.ASSIGN_VALUE_TO_TYPE # S1AP does not have constants assigned to types, they are pure INTEGER
|
||||
# ProcedureCode
|
||||
|
||||
|
@ -1125,7 +1434,7 @@ RecommendedENBItem N s1ap.ies id-RecommendedENBItem
|
|||
PWSfailedECGIList N s1ap.ies id-PWSfailedECGIList
|
||||
MME-Group-ID N s1ap.ies id-MME-Group-ID
|
||||
Additional-GUTI N s1ap.ies id-Additional-GUTI
|
||||
#OCTET STRING N s1ap.ies id-S1-Message
|
||||
S1-Message N s1ap.ies id-S1-Message
|
||||
CSGMembershipInfo N s1ap.ies id-CSGMembershipInfo
|
||||
Paging-eDRXInformation N s1ap.ies id-Paging-eDRXInformation
|
||||
UE-RetentionInformation N s1ap.ies id-UE-RetentionInformation
|
||||
|
@ -1414,6 +1723,7 @@ UEContextResumeFailure N s1ap.proc.uout id-UEContextResume
|
|||
|
||||
#.FN_HDR WriteReplaceWarningRequest
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, ", WriteReplaceWarningRequest ");
|
||||
dataCodingScheme = SMS_ENCODING_NOT_SET;
|
||||
#.FN_HDR WriteReplaceWarningResponse
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, ", WriteReplaceWarningResponse ");
|
||||
#.FN_HDR KillRequest
|
||||
|
|
|
@ -8961,7 +8961,7 @@ static const value_string lte_rrc_messageIdentifier_vals[] = {
|
|||
{ 0x112b, "CMAS Identifier for operator defined use for additional languages"},
|
||||
{ 0, NULL},
|
||||
};
|
||||
static value_string_ext lte_rrc_messageIdentifier_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_messageIdentifier_vals);
|
||||
value_string_ext lte_rrc_messageIdentifier_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_messageIdentifier_vals);
|
||||
|
||||
static const value_string lte_rrc_serialNumber_gs_vals[] = {
|
||||
{ 0, "Display mode immediate, cell wide"},
|
||||
|
@ -87808,7 +87808,7 @@ void proto_register_lte_rrc(void) {
|
|||
NULL, HFILL }},
|
||||
{ &hf_lte_rrc_warningMessageSegment_decoded_page,
|
||||
{ "Decoded Page", "lte-rrc.warningMessageSegment.decoded_page",
|
||||
FT_STRING, BASE_NONE, NULL, 0,
|
||||
FT_STRING, STR_UNICODE, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit1,
|
||||
{ "Bit 1", "lte-rrc.interBandTDD_CA_WithDifferentConfig.bit1",
|
||||
|
|
|
@ -31,6 +31,8 @@
|
|||
#ifndef PACKET_LTE_RRC_H
|
||||
#define PACKET_LTE_RRC_H
|
||||
|
||||
extern value_string_ext lte_rrc_messageIdentifier_vals_ext;
|
||||
|
||||
|
||||
/*--- Included file: packet-lte-rrc-exp.h ---*/
|
||||
#line 1 "./asn1/lte-rrc/packet-lte-rrc-exp.h"
|
||||
|
@ -48,6 +50,6 @@ int dissect_lte_rrc_HandoverPreparationInformation_NB_PDU(tvbuff_t *tvb _U_, pac
|
|||
int dissect_lte_rrc_UERadioAccessCapabilityInformation_NB_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
|
||||
/*--- End of included file: packet-lte-rrc-exp.h ---*/
|
||||
#line 27 "./asn1/lte-rrc/packet-lte-rrc-template.h"
|
||||
#line 29 "./asn1/lte-rrc/packet-lte-rrc-template.h"
|
||||
|
||||
#endif /* PACKET_LTE_RRC_H */
|
||||
|
|
|
@ -491,6 +491,7 @@ static int hf_ranap_IuTransportAssociation_PDU = -1; /* IuTransportAssociation
|
|||
static int hf_ranap_KeyStatus_PDU = -1; /* KeyStatus */
|
||||
static int hf_ranap_LAI_PDU = -1; /* LAI */
|
||||
static int hf_ranap_LastKnownServiceArea_PDU = -1; /* LastKnownServiceArea */
|
||||
static int hf_ranap_ranap_LastVisitedUTRANCell_Item_PDU = -1; /* LastVisitedUTRANCell_Item */
|
||||
static int hf_ranap_LocationRelatedDataRequestType_PDU = -1; /* LocationRelatedDataRequestType */
|
||||
static int hf_ranap_LocationRelatedDataRequestTypeSpecificToGERANIuMode_PDU = -1; /* LocationRelatedDataRequestTypeSpecificToGERANIuMode */
|
||||
static int hf_ranap_L3_Information_PDU = -1; /* L3_Information */
|
||||
|
@ -892,6 +893,9 @@ static int hf_ranap_bindingID = -1; /* BindingID */
|
|||
static int hf_ranap_LA_LIST_item = -1; /* LA_LIST_item */
|
||||
static int hf_ranap_listOF_SNAs = -1; /* ListOF_SNAs */
|
||||
static int hf_ranap_ageOfSAI = -1; /* INTEGER_0_32767 */
|
||||
static int hf_ranap_uTRAN_CellID = -1; /* UTRAN_CellID */
|
||||
static int hf_ranap_cellType = -1; /* CellType */
|
||||
static int hf_ranap_time_UE_StayedInCell = -1; /* Time_UE_StayedInCell */
|
||||
static int hf_ranap_ListOF_SNAs_item = -1; /* SNAC */
|
||||
static int hf_ranap_ListOfInterfacesToTrace_item = -1; /* InterfacesToTraceItem */
|
||||
static int hf_ranap_interface = -1; /* T_interface */
|
||||
|
@ -1075,6 +1079,7 @@ static int hf_ranap_pdu14FrameSeqNoUL = -1; /* PDUType14FrameSequenceNumbe
|
|||
static int hf_ranap_pdu14FrameSeqNoDL = -1; /* PDUType14FrameSequenceNumber */
|
||||
static int hf_ranap_dataPDUType = -1; /* DataPDUType */
|
||||
static int hf_ranap_upinitialisationFrame = -1; /* UPInitialisationFrame */
|
||||
static int hf_ranap_cellID = -1; /* TargetCellId */
|
||||
static int hf_ranap_horizontalVelocity = -1; /* HorizontalVelocity */
|
||||
static int hf_ranap_horizontalWithVerticalVelocity = -1; /* HorizontalWithVerticalVelocity */
|
||||
static int hf_ranap_horizontalVelocityWithUncertainty = -1; /* HorizontalVelocityWithUncertainty */
|
||||
|
@ -1248,6 +1253,7 @@ static gint ett_ranap_LA_LIST = -1;
|
|||
static gint ett_ranap_LA_LIST_item = -1;
|
||||
static gint ett_ranap_LAI = -1;
|
||||
static gint ett_ranap_LastKnownServiceArea = -1;
|
||||
static gint ett_ranap_LastVisitedUTRANCell_Item = -1;
|
||||
static gint ett_ranap_ListOF_SNAs = -1;
|
||||
static gint ett_ranap_ListOfInterfacesToTrace = -1;
|
||||
static gint ett_ranap_InterfacesToTraceItem = -1;
|
||||
|
@ -1345,6 +1351,7 @@ static gint ett_ranap_UE_AggregateMaximumBitRate = -1;
|
|||
static gint ett_ranap_UE_ID = -1;
|
||||
static gint ett_ranap_UESBI_Iu = -1;
|
||||
static gint ett_ranap_UPInformation = -1;
|
||||
static gint ett_ranap_UTRAN_CellID = -1;
|
||||
static gint ett_ranap_VelocityEstimate = -1;
|
||||
static gint ett_ranap_HorizontalVelocity = -1;
|
||||
static gint ett_ranap_HorizontalWithVerticalVelocity = -1;
|
||||
|
@ -1666,7 +1673,7 @@ dissect_ranap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
|
|||
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
|
||||
0U, 255U, &ProcedureCode, FALSE);
|
||||
|
||||
#line 93 "./asn1/ranap/ranap.cnf"
|
||||
#line 91 "./asn1/ranap/ranap.cnf"
|
||||
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
|
||||
val_to_str_ext_const(ProcedureCode, &ranap_ProcedureCode_vals_ext,
|
||||
"unknown message"));
|
||||
|
@ -1950,7 +1957,7 @@ dissect_ranap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
|
|||
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
|
||||
0U, 65535U, &ProtocolIE_ID, FALSE);
|
||||
|
||||
#line 77 "./asn1/ranap/ranap.cnf"
|
||||
#line 75 "./asn1/ranap/ranap.cnf"
|
||||
if (tree) {
|
||||
proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(ProtocolIE_ID, &ranap_ProtocolIE_ID_vals_ext, "unknown (%d)"));
|
||||
}
|
||||
|
@ -2072,7 +2079,7 @@ static const per_sequence_t ProtocolIE_ContainerList_sequence_of[1] = {
|
|||
|
||||
static int
|
||||
dissect_ranap_ProtocolIE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 117 "./asn1/ranap/ranap.cnf"
|
||||
#line 115 "./asn1/ranap/ranap.cnf"
|
||||
static const asn1_par_def_t ProtocolIE_ContainerList_pars[] = {
|
||||
{ "lowerBound", ASN1_PAR_INTEGER },
|
||||
{ "upperBound", ASN1_PAR_INTEGER },
|
||||
|
@ -2094,7 +2101,7 @@ static const per_sequence_t ProtocolIE_ContainerPairList_sequence_of[1] = {
|
|||
|
||||
static int
|
||||
dissect_ranap_ProtocolIE_ContainerPairList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 133 "./asn1/ranap/ranap.cnf"
|
||||
#line 131 "./asn1/ranap/ranap.cnf"
|
||||
static const asn1_par_def_t ProtocolIE_ContainerPairList_pars[] = {
|
||||
{ "lowerBound", ASN1_PAR_INTEGER },
|
||||
{ "upperBound", ASN1_PAR_INTEGER },
|
||||
|
@ -2663,7 +2670,7 @@ dissect_ranap_APN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto
|
|||
|
||||
static int
|
||||
dissect_ranap_PLMNidentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 289 "./asn1/ranap/ranap.cnf"
|
||||
#line 287 "./asn1/ranap/ranap.cnf"
|
||||
tvbuff_t *parameter_tvb=NULL;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -3160,7 +3167,7 @@ dissect_ranap_AuthorisedPLMNs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
|
|||
|
||||
static int
|
||||
dissect_ranap_BindingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 391 "./asn1/ranap/ranap.cnf"
|
||||
#line 389 "./asn1/ranap/ranap.cnf"
|
||||
tvbuff_t *value_tvb = NULL;
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
4, 4, FALSE, &value_tvb);
|
||||
|
@ -3639,6 +3646,24 @@ dissect_ranap_CellLoadInformationGroup(tvbuff_t *tvb _U_, int offset _U_, asn1_c
|
|||
}
|
||||
|
||||
|
||||
static const value_string ranap_CellType_vals[] = {
|
||||
{ 0, "macro" },
|
||||
{ 1, "micro" },
|
||||
{ 2, "pico" },
|
||||
{ 3, "femto" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
|
||||
static int
|
||||
dissect_ranap_CellType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
|
||||
4, NULL, TRUE, 0, NULL);
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
||||
static const value_string ranap_ClientType_vals[] = {
|
||||
{ 0, "emergency-Services" },
|
||||
{ 1, "value-Added-Services" },
|
||||
|
@ -4592,7 +4617,7 @@ dissect_ranap_GlobalRNC_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
|
|||
|
||||
static int
|
||||
dissect_ranap_GTP_TEI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 341 "./asn1/ranap/ranap.cnf"
|
||||
#line 339 "./asn1/ranap/ranap.cnf"
|
||||
tvbuff_t *parameter_tvb=NULL;
|
||||
int saved_hf;
|
||||
|
||||
|
@ -4775,7 +4800,7 @@ dissect_ranap_ImmediateMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
|
|||
|
||||
static int
|
||||
dissect_ranap_IMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 190 "./asn1/ranap/ranap.cnf"
|
||||
#line 188 "./asn1/ranap/ranap.cnf"
|
||||
tvbuff_t* imsi_tvb;
|
||||
const char *digit_str;
|
||||
sccp_msg_info_t *sccp_info;
|
||||
|
@ -5369,6 +5394,49 @@ dissect_ranap_LastKnownServiceArea(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
|
|||
}
|
||||
|
||||
|
||||
static const per_sequence_t UTRAN_CellID_sequence[] = {
|
||||
{ &hf_ranap_pLMNidentity , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ranap_PLMNidentity },
|
||||
{ &hf_ranap_cellID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ranap_TargetCellId },
|
||||
{ &hf_ranap_iE_Extensions , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_ranap_ProtocolExtensionContainer },
|
||||
{ NULL, 0, 0, NULL }
|
||||
};
|
||||
|
||||
static int
|
||||
dissect_ranap_UTRAN_CellID(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_ranap_UTRAN_CellID, UTRAN_CellID_sequence);
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static int
|
||||
dissect_ranap_Time_UE_StayedInCell(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, 4095U, NULL, FALSE);
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
||||
static const per_sequence_t LastVisitedUTRANCell_Item_sequence[] = {
|
||||
{ &hf_ranap_uTRAN_CellID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ranap_UTRAN_CellID },
|
||||
{ &hf_ranap_cellType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ranap_CellType },
|
||||
{ &hf_ranap_time_UE_StayedInCell, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ranap_Time_UE_StayedInCell },
|
||||
{ &hf_ranap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ranap_ProtocolExtensionContainer },
|
||||
{ NULL, 0, 0, NULL }
|
||||
};
|
||||
|
||||
static int
|
||||
dissect_ranap_LastVisitedUTRANCell_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_ranap_LastVisitedUTRANCell_Item, LastVisitedUTRANCell_Item_sequence);
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
||||
static const value_string ranap_T_interface_vals[] = {
|
||||
{ 0, "iu-cs" },
|
||||
{ 1, "iu-ps" },
|
||||
|
@ -5624,7 +5692,7 @@ dissect_ranap_LocationReportingTransferInformation(tvbuff_t *tvb _U_, int offset
|
|||
|
||||
static int
|
||||
dissect_ranap_L3_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 277 "./asn1/ranap/ranap.cnf"
|
||||
#line 275 "./asn1/ranap/ranap.cnf"
|
||||
tvbuff_t *l3_info_tvb=NULL;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -6044,7 +6112,7 @@ dissect_ranap_MSISDN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
|
|||
|
||||
static int
|
||||
dissect_ranap_NAS_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 213 "./asn1/ranap/ranap.cnf"
|
||||
#line 211 "./asn1/ranap/ranap.cnf"
|
||||
tvbuff_t *nas_pdu_tvb=NULL;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -6082,7 +6150,7 @@ dissect_ranap_NAS_SynchronisationIndicator(tvbuff_t *tvb _U_, int offset _U_, as
|
|||
|
||||
static int
|
||||
dissect_ranap_NewBSS_To_OldBSS_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 269 "./asn1/ranap/ranap.cnf"
|
||||
#line 267 "./asn1/ranap/ranap.cnf"
|
||||
tvbuff_t *bss_info_tvb=NULL;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -6171,7 +6239,7 @@ dissect_ranap_Offload_RAB_Parameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
|
|||
|
||||
static int
|
||||
dissect_ranap_OldBSS_ToNewBSS_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 261 "./asn1/ranap/ranap.cnf"
|
||||
#line 259 "./asn1/ranap/ranap.cnf"
|
||||
tvbuff_t *bss_info_tvb=NULL;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -7337,7 +7405,7 @@ dissect_ranap_RNSAPRelocationParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_
|
|||
|
||||
static int
|
||||
dissect_ranap_RRC_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 222 "./asn1/ranap/ranap.cnf"
|
||||
#line 220 "./asn1/ranap/ranap.cnf"
|
||||
tvbuff_t *rrc_message_tvb=NULL;
|
||||
guint8 container_choice=0;
|
||||
|
||||
|
@ -7458,7 +7526,7 @@ dissect_ranap_Service_Handover(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
|
|||
|
||||
static int
|
||||
dissect_ranap_Source_ToTarget_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 376 "./asn1/ranap/ranap.cnf"
|
||||
#line 374 "./asn1/ranap/ranap.cnf"
|
||||
|
||||
dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer(tvb , offset, actx ,tree , hf_ranap_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU );
|
||||
|
||||
|
@ -7535,7 +7603,7 @@ static const per_sequence_t SourceRNC_ToTargetRNC_TransparentContainer_sequence[
|
|||
|
||||
static int
|
||||
dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 353 "./asn1/ranap/ranap.cnf"
|
||||
#line 351 "./asn1/ranap/ranap.cnf"
|
||||
/* If SourceRNC-ToTargetRNC-TransparentContainer is called through
|
||||
dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU
|
||||
ProtocolIE_ID may be unset
|
||||
|
@ -7774,7 +7842,7 @@ dissect_ranap_SRVCC_Operation_Possible(tvbuff_t *tvb _U_, int offset _U_, asn1_c
|
|||
|
||||
static int
|
||||
dissect_ranap_Target_ToSource_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 386 "./asn1/ranap/ranap.cnf"
|
||||
#line 384 "./asn1/ranap/ranap.cnf"
|
||||
|
||||
dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer(tvb , offset, actx ,tree , hf_ranap_ranap_TargetRNC_ToSourceRNC_TransparentContainer_PDU );
|
||||
|
||||
|
@ -7828,7 +7896,7 @@ static const per_sequence_t TargetRNC_ToSourceRNC_TransparentContainer_sequence[
|
|||
|
||||
static int
|
||||
dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 362 "./asn1/ranap/ranap.cnf"
|
||||
#line 360 "./asn1/ranap/ranap.cnf"
|
||||
/* If TargetRNC-ToSourceRNC-TransparentContainer is called through
|
||||
dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer_PDU
|
||||
ProtocolIE_ID may be unset
|
||||
|
@ -7916,7 +7984,7 @@ dissect_ranap_TraceType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
|
|||
|
||||
static int
|
||||
dissect_ranap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 312 "./asn1/ranap/ranap.cnf"
|
||||
#line 310 "./asn1/ranap/ranap.cnf"
|
||||
tvbuff_t *parameter_tvb=NULL;
|
||||
proto_item *item;
|
||||
proto_tree *subtree, *nsap_tree;
|
||||
|
@ -8015,7 +8083,7 @@ dissect_ranap_UE_AggregateMaximumBitRate(tvbuff_t *tvb _U_, int offset _U_, asn1
|
|||
|
||||
static int
|
||||
dissect_ranap_UE_History_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 401 "./asn1/ranap/ranap.cnf"
|
||||
#line 399 "./asn1/ranap/ranap.cnf"
|
||||
tvbuff_t *value_tvb = NULL;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -8282,7 +8350,7 @@ dissect_ranap_VelocityEstimate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
|
|||
|
||||
static int
|
||||
dissect_ranap_RAB_IE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 143 "./asn1/ranap/ranap.cnf"
|
||||
#line 141 "./asn1/ranap/ranap.cnf"
|
||||
asn1_stack_frame_push(actx, "ProtocolIE-ContainerList");
|
||||
asn1_param_push_integer(actx, 1);
|
||||
asn1_param_push_integer(actx, maxNrOfRABs);
|
||||
|
@ -8298,7 +8366,7 @@ dissect_ranap_RAB_IE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
|
|||
|
||||
static int
|
||||
dissect_ranap_RAB_IE_ContainerPairList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 151 "./asn1/ranap/ranap.cnf"
|
||||
#line 149 "./asn1/ranap/ranap.cnf"
|
||||
asn1_stack_frame_push(actx, "ProtocolIE-ContainerPairList");
|
||||
asn1_param_push_integer(actx, 1);
|
||||
asn1_param_push_integer(actx, maxNrOfRABs);
|
||||
|
@ -8314,7 +8382,7 @@ dissect_ranap_RAB_IE_ContainerPairList(tvbuff_t *tvb _U_, int offset _U_, asn1_c
|
|||
|
||||
static int
|
||||
dissect_ranap_IuSigConId_IE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 168 "./asn1/ranap/ranap.cnf"
|
||||
#line 166 "./asn1/ranap/ranap.cnf"
|
||||
asn1_stack_frame_push(actx, "ProtocolIE-ContainerList");
|
||||
asn1_param_push_integer(actx, 1);
|
||||
asn1_param_push_integer(actx, maxNrOfIuSigConIds);
|
||||
|
@ -8330,7 +8398,7 @@ dissect_ranap_IuSigConId_IE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn
|
|||
|
||||
static int
|
||||
dissect_ranap_DirectTransfer_IE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 176 "./asn1/ranap/ranap.cnf"
|
||||
#line 174 "./asn1/ranap/ranap.cnf"
|
||||
asn1_stack_frame_push(actx, "ProtocolIE-ContainerList");
|
||||
asn1_param_push_integer(actx, 1);
|
||||
asn1_param_push_integer(actx, maxNrOfDTs);
|
||||
|
@ -11180,6 +11248,14 @@ static int dissect_LastKnownServiceArea_PDU(tvbuff_t *tvb _U_, packet_info *pinf
|
|||
offset += 7; offset >>= 3;
|
||||
return offset;
|
||||
}
|
||||
int dissect_ranap_LastVisitedUTRANCell_Item_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_ranap_LastVisitedUTRANCell_Item(tvb, offset, &asn1_ctx, tree, hf_ranap_ranap_LastVisitedUTRANCell_Item_PDU);
|
||||
offset += 7; offset >>= 3;
|
||||
return offset;
|
||||
}
|
||||
static int dissect_LocationRelatedDataRequestType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
|
||||
int offset = 0;
|
||||
asn1_ctx_t asn1_ctx;
|
||||
|
@ -13547,6 +13623,10 @@ void proto_register_ranap(void) {
|
|||
{ "LastKnownServiceArea", "ranap.LastKnownServiceArea_element",
|
||||
FT_NONE, BASE_NONE, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_ranap_ranap_LastVisitedUTRANCell_Item_PDU,
|
||||
{ "LastVisitedUTRANCell-Item", "ranap.LastVisitedUTRANCell_Item_element",
|
||||
FT_NONE, BASE_NONE, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_ranap_LocationRelatedDataRequestType_PDU,
|
||||
{ "LocationRelatedDataRequestType", "ranap.LocationRelatedDataRequestType_element",
|
||||
FT_NONE, BASE_NONE, NULL, 0,
|
||||
|
@ -15151,6 +15231,18 @@ void proto_register_ranap(void) {
|
|||
{ "ageOfSAI", "ranap.ageOfSAI",
|
||||
FT_UINT32, BASE_DEC, NULL, 0,
|
||||
"INTEGER_0_32767", HFILL }},
|
||||
{ &hf_ranap_uTRAN_CellID,
|
||||
{ "uTRAN-CellID", "ranap.uTRAN_CellID_element",
|
||||
FT_NONE, BASE_NONE, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_ranap_cellType,
|
||||
{ "cellType", "ranap.cellType",
|
||||
FT_UINT32, BASE_DEC, VALS(ranap_CellType_vals), 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_ranap_time_UE_StayedInCell,
|
||||
{ "time-UE-StayedInCell", "ranap.time_UE_StayedInCell",
|
||||
FT_UINT32, BASE_DEC, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_ranap_ListOF_SNAs_item,
|
||||
{ "SNAC", "ranap.SNAC",
|
||||
FT_UINT32, BASE_DEC, NULL, 0,
|
||||
|
@ -15883,6 +15975,10 @@ void proto_register_ranap(void) {
|
|||
{ "upinitialisationFrame", "ranap.upinitialisationFrame",
|
||||
FT_BYTES, BASE_NONE, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_ranap_cellID,
|
||||
{ "cellID", "ranap.cellID",
|
||||
FT_UINT32, BASE_DEC, NULL, 0,
|
||||
"TargetCellId", HFILL }},
|
||||
{ &hf_ranap_horizontalVelocity,
|
||||
{ "horizontalVelocity", "ranap.horizontalVelocity_element",
|
||||
FT_NONE, BASE_NONE, NULL, 0,
|
||||
|
@ -16267,6 +16363,7 @@ void proto_register_ranap(void) {
|
|||
&ett_ranap_LA_LIST_item,
|
||||
&ett_ranap_LAI,
|
||||
&ett_ranap_LastKnownServiceArea,
|
||||
&ett_ranap_LastVisitedUTRANCell_Item,
|
||||
&ett_ranap_ListOF_SNAs,
|
||||
&ett_ranap_ListOfInterfacesToTrace,
|
||||
&ett_ranap_InterfacesToTraceItem,
|
||||
|
@ -16364,6 +16461,7 @@ void proto_register_ranap(void) {
|
|||
&ett_ranap_UE_ID,
|
||||
&ett_ranap_UESBI_Iu,
|
||||
&ett_ranap_UPInformation,
|
||||
&ett_ranap_UTRAN_CellID,
|
||||
&ett_ranap_VelocityEstimate,
|
||||
&ett_ranap_HorizontalVelocity,
|
||||
&ett_ranap_HorizontalWithVerticalVelocity,
|
||||
|
|
|
@ -40,6 +40,7 @@ int dissect_ranap_IntegrityProtectionInformation(tvbuff_t *tvb _U_, int offset _
|
|||
int dissect_ranap_Service_Handover(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
|
||||
int dissect_ranap_TargetRNC_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
|
||||
int dissect_ranap_InterSystemInformation_TransparentContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
int dissect_ranap_LastVisitedUTRANCell_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
int dissect_ranap_Source_ToTarget_TransparentContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
int dissect_ranap_SourceCellID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
int dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue