diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2017-07-13 14:55:15 +0200 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2017-07-13 13:37:28 +0000 |
commit | 3c3c845f33566311e7ef0505a4633f9b5a4e8e49 (patch) | |
tree | 56478f0618f33aacf5d25db29e97aefc7fb94ad0 /epan/dissectors/packet-s1ap.c | |
parent | 6335764469fc0ca5b217b72b48742605b42973d5 (diff) |
S1AP: upgrade dissector to v14.3.0
Change-Id: Ib28228db70a23d6f73f3c1740abc2e6542818ff9
Reviewed-on: https://code.wireshark.org/review/22609
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>
Diffstat (limited to 'epan/dissectors/packet-s1ap.c')
-rw-r--r-- | epan/dissectors/packet-s1ap.c | 1009 |
1 files changed, 822 insertions, 187 deletions
diff --git a/epan/dissectors/packet-s1ap.c b/epan/dissectors/packet-s1ap.c index cf44a97459..e840eacfbf 100644 --- a/epan/dissectors/packet-s1ap.c +++ b/epan/dissectors/packet-s1ap.c @@ -30,7 +30,7 @@ * * Based on the RANAP dissector * - * References: 3GPP TS 36.413 V13.6.0 (2017-06) + * References: 3GPP TS 36.413 V14.3.0 (2017-06) */ #include "config.h" @@ -94,6 +94,7 @@ static dissector_handle_t bssgp_handle; #define maxnoofCellsineNB 256 #define maxnoofTAIforWarning 65535 #define maxnoofCellID 65535 +#define maxnoofDCNs 32 #define maxnoofEmergencyAreaID 65535 #define maxnoofCellinTAI 65535 #define maxnoofCellinEAI 65535 @@ -174,7 +175,12 @@ typedef enum _ProcedureCode_enum { id_UEContextModificationIndication = 53, id_ConnectionEstablishmentIndication = 54, id_UEContextSuspend = 55, - id_UEContextResume = 56 + id_UEContextResume = 56, + id_NASDeliveryIndication = 57, + id_RetrieveUEInformation = 58, + id_UEInformationTransfer = 59, + id_eNBCPRelocationIndication = 60, + id_MMECPRelocationIndication = 61 } ProcedureCode_enum; typedef enum _ProtocolIE_ID_enum { @@ -416,12 +422,21 @@ typedef enum _ProtocolIE_ID_enum { id_E_RABFailedToResumeListResumeRes = 237, id_E_RABFailedToResumeItemResumeRes = 238, id_NB_IoT_Paging_eDRXInformation = 239, - id_Unknown_240 = 240, + id_V2XServicesAuthorized = 240, id_UEUserPlaneCIoTSupportIndicator = 241, id_CE_mode_B_SupportIndicator = 242, id_SRVCCOperationNotPossible = 243, id_NB_IoT_UEIdentityIndexValue = 244, - id_RRC_Resume_Cause = 245 + id_RRC_Resume_Cause = 245, + id_DCN_ID = 246, + id_ServedDCNs = 247, + id_UESidelinkAggregateMaximumBitrate = 248, + id_DLNASPDUDeliveryAckRequest = 249, + id_Coverage_Level = 250, + id_EnhancedCoverageRestricted = 251, + id_UE_Level_QoS_Parameters = 252, + id_DL_CP_SecurityInformation = 253, + id_UL_CP_SecurityInformation = 254 } ProtocolIE_ID_enum; typedef enum _RAT_Type_enum { @@ -499,10 +514,15 @@ static int hf_s1ap_CSG_IdList_PDU = -1; /* CSG_IdList */ static int hf_s1ap_CSGMembershipStatus_PDU = -1; /* CSGMembershipStatus */ static int hf_s1ap_COUNTValueExtended_PDU = -1; /* COUNTValueExtended */ static int hf_s1ap_COUNTvaluePDCP_SNlength18_PDU = -1; /* COUNTvaluePDCP_SNlength18 */ +static int hf_s1ap_Coverage_Level_PDU = -1; /* Coverage_Level */ static int hf_s1ap_CriticalityDiagnostics_PDU = -1; /* CriticalityDiagnostics */ static int hf_s1ap_DataCodingScheme_PDU = -1; /* DataCodingScheme */ +static int hf_s1ap_DCN_ID_PDU = -1; /* DCN_ID */ +static int hf_s1ap_ServedDCNs_PDU = -1; /* ServedDCNs */ +static int hf_s1ap_DL_CP_SecurityInformation_PDU = -1; /* DL_CP_SecurityInformation */ static int hf_s1ap_Direct_Forwarding_Path_Availability_PDU = -1; /* Direct_Forwarding_Path_Availability */ static int hf_s1ap_Data_Forwarding_Not_Possible_PDU = -1; /* Data_Forwarding_Not_Possible */ +static int hf_s1ap_DLNASPDUDeliveryAckRequest_PDU = -1; /* DLNASPDUDeliveryAckRequest */ static int hf_s1ap_PWSfailedECGIList_PDU = -1; /* PWSfailedECGIList */ static int hf_s1ap_EmergencyAreaIDListForRestart_PDU = -1; /* EmergencyAreaIDListForRestart */ static int hf_s1ap_s1ap_Global_ENB_ID_PDU = -1; /* Global_ENB_ID */ @@ -510,9 +530,11 @@ static int hf_s1ap_GUMMEIList_PDU = -1; /* GUMMEIList */ static int hf_s1ap_s1ap_ENB_StatusTransfer_TransparentContainer_PDU = -1; /* ENB_StatusTransfer_TransparentContainer */ static int hf_s1ap_ENB_UE_S1AP_ID_PDU = -1; /* ENB_UE_S1AP_ID */ static int hf_s1ap_ENBname_PDU = -1; /* ENBname */ +static int hf_s1ap_EnhancedCoverageRestricted_PDU = -1; /* EnhancedCoverageRestricted */ static int hf_s1ap_E_RABInformationListItem_PDU = -1; /* E_RABInformationListItem */ static int hf_s1ap_E_RABList_PDU = -1; /* E_RABList */ static int hf_s1ap_E_RABItem_PDU = -1; /* E_RABItem */ +static int hf_s1ap_E_RABLevelQoSParameters_PDU = -1; /* E_RABLevelQoSParameters */ static int hf_s1ap_EUTRAN_CGI_PDU = -1; /* EUTRAN_CGI */ static int hf_s1ap_EUTRANRoundTripDelayEstimationInfo_PDU = -1; /* EUTRANRoundTripDelayEstimationInfo */ static int hf_s1ap_ExpectedUEBehaviour_PDU = -1; /* ExpectedUEBehaviour */ @@ -617,10 +639,13 @@ static int hf_s1ap_UEPagingID_PDU = -1; /* UEPagingID */ static int hf_s1ap_UERadioCapability_PDU = -1; /* UERadioCapability */ static int hf_s1ap_UERadioCapabilityForPaging_PDU = -1; /* UERadioCapabilityForPaging */ static int hf_s1ap_UESecurityCapabilities_PDU = -1; /* UESecurityCapabilities */ +static int hf_s1ap_UESidelinkAggregateMaximumBitrate_PDU = -1; /* UESidelinkAggregateMaximumBitrate */ static int hf_s1ap_UE_Usage_Type_PDU = -1; /* UE_Usage_Type */ +static int hf_s1ap_UL_CP_SecurityInformation_PDU = -1; /* UL_CP_SecurityInformation */ static int hf_s1ap_UserLocationInformation_PDU = -1; /* UserLocationInformation */ static int hf_s1ap_UEUserPlaneCIoTSupportIndicator_PDU = -1; /* UEUserPlaneCIoTSupportIndicator */ static int hf_s1ap_VoiceSupportMatchIndicator_PDU = -1; /* VoiceSupportMatchIndicator */ +static int hf_s1ap_V2XServicesAuthorized_PDU = -1; /* V2XServicesAuthorized */ static int hf_s1ap_WarningAreaList_PDU = -1; /* WarningAreaList */ static int hf_s1ap_WarningType_PDU = -1; /* WarningType */ static int hf_s1ap_WarningSecurityInfo_PDU = -1; /* WarningSecurityInfo */ @@ -693,6 +718,7 @@ static int hf_s1ap_UplinkNASTransport_PDU = -1; /* UplinkNASTransport */ static int hf_s1ap_NASNonDeliveryIndication_PDU = -1; /* NASNonDeliveryIndication */ static int hf_s1ap_RerouteNASRequest_PDU = -1; /* RerouteNASRequest */ static int hf_s1ap_S1_Message_PDU = -1; /* S1_Message */ +static int hf_s1ap_NASDeliveryIndication_PDU = -1; /* NASDeliveryIndication */ static int hf_s1ap_Reset_PDU = -1; /* Reset */ static int hf_s1ap_ResetType_PDU = -1; /* ResetType */ static int hf_s1ap_ResetAcknowledge_PDU = -1; /* ResetAcknowledge */ @@ -758,6 +784,10 @@ static int hf_s1ap_E_RABFailedToResumeListResumeRes_PDU = -1; /* E_RABFailedToR static int hf_s1ap_E_RABFailedToResumeItemResumeRes_PDU = -1; /* E_RABFailedToResumeItemResumeRes */ static int hf_s1ap_UEContextResumeFailure_PDU = -1; /* UEContextResumeFailure */ static int hf_s1ap_ConnectionEstablishmentIndication_PDU = -1; /* ConnectionEstablishmentIndication */ +static int hf_s1ap_RetrieveUEInformation_PDU = -1; /* RetrieveUEInformation */ +static int hf_s1ap_UEInformationTransfer_PDU = -1; /* UEInformationTransfer */ +static int hf_s1ap_ENBCPRelocationIndication_PDU = -1; /* ENBCPRelocationIndication */ +static int hf_s1ap_MMECPRelocationIndication_PDU = -1; /* MMECPRelocationIndication */ static int hf_s1ap_S1AP_PDU_PDU = -1; /* S1AP_PDU */ static int hf_s1ap_s1ap_SONtransferApplicationIdentity_PDU = -1; /* SONtransferApplicationIdentity */ static int hf_s1ap_s1ap_SONtransferRequestContainer_PDU = -1; /* SONtransferRequestContainer */ @@ -842,6 +872,10 @@ static int hf_s1ap_CriticalityDiagnostics_IE_List_item = -1; /* CriticalityDiag static int hf_s1ap_iECriticality = -1; /* Criticality */ static int hf_s1ap_iE_ID = -1; /* ProtocolIE_ID */ static int hf_s1ap_typeOfError = -1; /* TypeOfError */ +static int hf_s1ap_ServedDCNs_item = -1; /* ServedDCNsItem */ +static int hf_s1ap_dCN_ID = -1; /* DCN_ID */ +static int hf_s1ap_relativeDCNCapacity = -1; /* RelativeMMECapacity */ +static int hf_s1ap_dl_NAS_MAC = -1; /* DL_NAS_MAC */ static int hf_s1ap_ECGIList_item = -1; /* EUTRAN_CGI */ static int hf_s1ap_PWSfailedECGIList_item = -1; /* EUTRAN_CGI */ static int hf_s1ap_EmergencyAreaIDList_item = -1; /* EmergencyAreaID */ @@ -855,6 +889,8 @@ static int hf_s1ap_ECGI_List_item = -1; /* EUTRAN_CGI */ static int hf_s1ap_EmergencyAreaIDListForRestart_item = -1; /* EmergencyAreaID */ static int hf_s1ap_macroENB_ID = -1; /* BIT_STRING_SIZE_20 */ static int hf_s1ap_homeENB_ID = -1; /* BIT_STRING_SIZE_28 */ +static int hf_s1ap_short_macroENB_ID = -1; /* BIT_STRING_SIZE_18 */ +static int hf_s1ap_long_macroENB_ID = -1; /* BIT_STRING_SIZE_21 */ static int hf_s1ap_lAI = -1; /* LAI */ static int hf_s1ap_eNB_ID = -1; /* ENB_ID */ static int hf_s1ap_GUMMEIList_item = -1; /* GUMMEI */ @@ -1027,8 +1063,13 @@ static int hf_s1ap_s_TMSI = -1; /* S_TMSI */ static int hf_s1ap_iMSI = -1; /* IMSI */ static int hf_s1ap_encryptionAlgorithms = -1; /* EncryptionAlgorithms */ static int hf_s1ap_integrityProtectionAlgorithms = -1; /* IntegrityProtectionAlgorithms */ +static int hf_s1ap_uESidelinkAggregateMaximumBitRate = -1; /* BitRate */ +static int hf_s1ap_ul_NAS_MAC = -1; /* UL_NAS_MAC */ +static int hf_s1ap_ul_NAS_Count = -1; /* UL_NAS_Count */ static int hf_s1ap_eutran_cgi = -1; /* EUTRAN_CGI */ static int hf_s1ap_tai = -1; /* TAI */ +static int hf_s1ap_vehicleUE = -1; /* VehicleUE */ +static int hf_s1ap_pedestrianUE = -1; /* PedestrianUE */ static int hf_s1ap_cellIDList = -1; /* ECGIList */ static int hf_s1ap_trackingAreaListforWarning = -1; /* TAIListforWarning */ static int hf_s1ap_emergencyAreaIDList = -1; /* EmergencyAreaIDList */ @@ -1219,6 +1260,9 @@ static gint ett_s1ap_COUNTvaluePDCP_SNlength18 = -1; static gint ett_s1ap_CriticalityDiagnostics = -1; static gint ett_s1ap_CriticalityDiagnostics_IE_List = -1; static gint ett_s1ap_CriticalityDiagnostics_IE_Item = -1; +static gint ett_s1ap_ServedDCNs = -1; +static gint ett_s1ap_ServedDCNsItem = -1; +static gint ett_s1ap_DL_CP_SecurityInformation = -1; static gint ett_s1ap_ECGIList = -1; static gint ett_s1ap_PWSfailedECGIList = -1; static gint ett_s1ap_EmergencyAreaIDList = -1; @@ -1338,7 +1382,10 @@ static gint ett_s1ap_UE_associatedLogicalS1_ConnectionItem = -1; static gint ett_s1ap_UE_HistoryInformation = -1; static gint ett_s1ap_UEPagingID = -1; static gint ett_s1ap_UESecurityCapabilities = -1; +static gint ett_s1ap_UESidelinkAggregateMaximumBitrate = -1; +static gint ett_s1ap_UL_CP_SecurityInformation = -1; static gint ett_s1ap_UserLocationInformation = -1; +static gint ett_s1ap_V2XServicesAuthorized = -1; static gint ett_s1ap_WarningAreaList = -1; static gint ett_s1ap_X2TNLConfigurationInfo = -1; static gint ett_s1ap_ENBX2ExtTLAs = -1; @@ -1403,6 +1450,7 @@ static gint ett_s1ap_InitialUEMessage = -1; static gint ett_s1ap_UplinkNASTransport = -1; static gint ett_s1ap_NASNonDeliveryIndication = -1; static gint ett_s1ap_RerouteNASRequest = -1; +static gint ett_s1ap_NASDeliveryIndication = -1; static gint ett_s1ap_Reset = -1; static gint ett_s1ap_ResetType = -1; static gint ett_s1ap_UE_associatedLogicalS1_ConnectionListRes = -1; @@ -1465,6 +1513,10 @@ static gint ett_s1ap_UEContextResumeResponse = -1; static gint ett_s1ap_E_RABFailedToResumeItemResumeRes = -1; static gint ett_s1ap_UEContextResumeFailure = -1; static gint ett_s1ap_ConnectionEstablishmentIndication = -1; +static gint ett_s1ap_RetrieveUEInformation = -1; +static gint ett_s1ap_UEInformationTransfer = -1; +static gint ett_s1ap_ENBCPRelocationIndication = -1; +static gint ett_s1ap_MMECPRelocationIndication = -1; static gint ett_s1ap_S1AP_PDU = -1; static gint ett_s1ap_InitiatingMessage = -1; static gint ett_s1ap_SuccessfulOutcome = -1; @@ -1838,6 +1890,11 @@ static const value_string s1ap_ProcedureCode_vals[] = { { id_ConnectionEstablishmentIndication, "id-ConnectionEstablishmentIndication" }, { id_UEContextSuspend, "id-UEContextSuspend" }, { id_UEContextResume, "id-UEContextResume" }, + { id_NASDeliveryIndication, "id-NASDeliveryIndication" }, + { id_RetrieveUEInformation, "id-RetrieveUEInformation" }, + { id_UEInformationTransfer, "id-UEInformationTransfer" }, + { id_eNBCPRelocationIndication, "id-eNBCPRelocationIndication" }, + { id_MMECPRelocationIndication, "id-MMECPRelocationIndication" }, { 0, NULL } }; @@ -2111,12 +2168,21 @@ static const value_string s1ap_ProtocolIE_ID_vals[] = { { id_E_RABFailedToResumeListResumeRes, "id-E-RABFailedToResumeListResumeRes" }, { id_E_RABFailedToResumeItemResumeRes, "id-E-RABFailedToResumeItemResumeRes" }, { id_NB_IoT_Paging_eDRXInformation, "id-NB-IoT-Paging-eDRXInformation" }, - { id_Unknown_240, "id-Unknown-240" }, + { id_V2XServicesAuthorized, "id-V2XServicesAuthorized" }, { id_UEUserPlaneCIoTSupportIndicator, "id-UEUserPlaneCIoTSupportIndicator" }, { id_CE_mode_B_SupportIndicator, "id-CE-mode-B-SupportIndicator" }, { id_SRVCCOperationNotPossible, "id-SRVCCOperationNotPossible" }, { id_NB_IoT_UEIdentityIndexValue, "id-NB-IoT-UEIdentityIndexValue" }, { id_RRC_Resume_Cause, "id-RRC-Resume-Cause" }, + { id_DCN_ID, "id-DCN-ID" }, + { id_ServedDCNs, "id-ServedDCNs" }, + { id_UESidelinkAggregateMaximumBitrate, "id-UESidelinkAggregateMaximumBitrate" }, + { id_DLNASPDUDeliveryAckRequest, "id-DLNASPDUDeliveryAckRequest" }, + { id_Coverage_Level, "id-Coverage-Level" }, + { id_EnhancedCoverageRestricted, "id-EnhancedCoverageRestricted" }, + { id_UE_Level_QoS_Parameters, "id-UE-Level-QoS-Parameters" }, + { id_DL_CP_SecurityInformation, "id-DL-CP-SecurityInformation" }, + { id_UL_CP_SecurityInformation, "id-UL-CP-SecurityInformation" }, { 0, NULL } }; @@ -3428,7 +3494,7 @@ static value_string_ext s1ap_CauseRadioNetwork_vals_ext = VALUE_STRING_EXT_INIT( static int dissect_s1ap_CauseRadioNetwork(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1939 "./asn1/s1ap/s1ap.cnf" +#line 1984 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 36, &value, TRUE, 3, NULL); @@ -3450,7 +3516,7 @@ const value_string s1ap_CauseTransport_vals[] = { static int dissect_s1ap_CauseTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1944 "./asn1/s1ap/s1ap.cnf" +#line 1989 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 2, &value, TRUE, 0, NULL); @@ -3475,7 +3541,7 @@ const value_string s1ap_CauseNas_vals[] = { static int dissect_s1ap_CauseNas(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1949 "./asn1/s1ap/s1ap.cnf" +#line 1994 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 4, &value, TRUE, 1, NULL); @@ -3502,7 +3568,7 @@ const value_string s1ap_CauseProtocol_vals[] = { static int dissect_s1ap_CauseProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1954 "./asn1/s1ap/s1ap.cnf" +#line 1999 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 7, &value, TRUE, 0, NULL); @@ -3528,7 +3594,7 @@ const value_string s1ap_CauseMisc_vals[] = { static int dissect_s1ap_CauseMisc(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1959 "./asn1/s1ap/s1ap.cnf" +#line 2004 "./asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 6, &value, TRUE, 0, NULL); @@ -4055,6 +4121,21 @@ dissect_s1ap_COUNTvaluePDCP_SNlength18(tvbuff_t *tvb _U_, int offset _U_, asn1_c } +static const value_string s1ap_Coverage_Level_vals[] = { + { 0, "extendedcoverage" }, + { 0, NULL } +}; + + +static int +dissect_s1ap_Coverage_Level(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, TRUE, 0, NULL); + + return offset; +} + + static const value_string s1ap_TypeOfError_vals[] = { { 0, "not-understood" }, { 1, "missing" }, @@ -4142,6 +4223,81 @@ dissect_s1ap_DataCodingScheme(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act } + +static int +dissect_s1ap_DCN_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 65535U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_s1ap_RelativeMMECapacity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 255U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t ServedDCNsItem_sequence[] = { + { &hf_s1ap_dCN_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_DCN_ID }, + { &hf_s1ap_relativeDCNCapacity, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_RelativeMMECapacity }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_ServedDCNsItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_ServedDCNsItem, ServedDCNsItem_sequence); + + return offset; +} + + +static const per_sequence_t ServedDCNs_sequence_of[1] = { + { &hf_s1ap_ServedDCNs_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_ServedDCNsItem }, +}; + +static int +dissect_s1ap_ServedDCNs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_s1ap_ServedDCNs, ServedDCNs_sequence_of, + 0, maxnoofDCNs, FALSE); + + return offset; +} + + + +static int +dissect_s1ap_DL_NAS_MAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 16, 16, FALSE, NULL, NULL); + + return offset; +} + + +static const per_sequence_t DL_CP_SecurityInformation_sequence[] = { + { &hf_s1ap_dl_NAS_MAC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_DL_NAS_MAC }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_DL_CP_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_DL_CP_SecurityInformation, DL_CP_SecurityInformation_sequence); + + return offset; +} + + static const value_string s1ap_DL_Forwarding_vals[] = { { 0, "dL-Forwarding-proposed" }, { 0, NULL } @@ -4187,6 +4343,21 @@ dissect_s1ap_Data_Forwarding_Not_Possible(tvbuff_t *tvb _U_, int offset _U_, asn } +static const value_string s1ap_DLNASPDUDeliveryAckRequest_vals[] = { + { 0, "requested" }, + { 0, NULL } +}; + + +static int +dissect_s1ap_DLNASPDUDeliveryAckRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, TRUE, 0, NULL); + + return offset; +} + + static int dissect_s1ap_EARFCN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -4287,15 +4458,39 @@ dissect_s1ap_BIT_STRING_SIZE_28(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a } + +static int +dissect_s1ap_BIT_STRING_SIZE_18(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 18, 18, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_s1ap_BIT_STRING_SIZE_21(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 21, 21, FALSE, NULL, NULL); + + return offset; +} + + static const value_string s1ap_ENB_ID_vals[] = { { 0, "macroENB-ID" }, { 1, "homeENB-ID" }, + { 2, "short-macroENB-ID" }, + { 3, "long-macroENB-ID" }, { 0, NULL } }; static const per_choice_t ENB_ID_choice[] = { { 0, &hf_s1ap_macroENB_ID , ASN1_EXTENSION_ROOT , dissect_s1ap_BIT_STRING_SIZE_20 }, { 1, &hf_s1ap_homeENB_ID , ASN1_EXTENSION_ROOT , dissect_s1ap_BIT_STRING_SIZE_28 }, + { 2, &hf_s1ap_short_macroENB_ID, ASN1_NOT_EXTENSION_ROOT, dissect_s1ap_BIT_STRING_SIZE_18 }, + { 3, &hf_s1ap_long_macroENB_ID, ASN1_NOT_EXTENSION_ROOT, dissect_s1ap_BIT_STRING_SIZE_21 }, { 0, NULL, 0, NULL } }; @@ -4514,6 +4709,21 @@ dissect_s1ap_EncryptionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } +static const value_string s1ap_EnhancedCoverageRestricted_vals[] = { + { 0, "restricted" }, + { 0, NULL } +}; + + +static int +dissect_s1ap_EnhancedCoverageRestricted(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, TRUE, 0, NULL); + + return offset; +} + + static const per_sequence_t EPLMNs_sequence_of[1] = { { &hf_s1ap_EPLMNs_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_PLMNidentity }, }; @@ -6306,7 +6516,8 @@ static const value_string s1ap_OverloadAction_vals[] = { { 2, "permit-emergency-sessions-and-mobile-terminated-services-only" }, { 3, "permit-high-priority-sessions-and-mobile-terminated-services-only" }, { 4, "reject-delay-tolerant-access" }, - { 5, "permit-high-priority-sessions-and-exception-reporting-and-mobile-terminated-services-only" }, + { 5, "not-accept-mo-data-or-delay-tolerant-access-from-CP-CIoT" }, + { 6, "permit-high-priority-sessions-and-exception-reporting-and-mobile-terminated-services-only" }, { 0, NULL } }; @@ -6314,7 +6525,7 @@ static const value_string s1ap_OverloadAction_vals[] = { static int dissect_s1ap_OverloadAction(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 3, NULL, TRUE, 3, NULL); + 3, NULL, TRUE, 4, NULL); return offset; } @@ -6612,16 +6823,6 @@ dissect_s1ap_RecommendedENBItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a } - -static int -dissect_s1ap_RelativeMMECapacity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 0U, 255U, NULL, FALSE); - - return offset; -} - - static const value_string s1ap_RelayNode_Indicator_vals[] = { { 0, "true" }, { 0, NULL } @@ -8007,6 +8208,21 @@ dissect_s1ap_UESecurityCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ } +static const per_sequence_t UESidelinkAggregateMaximumBitrate_sequence[] = { + { &hf_s1ap_uESidelinkAggregateMaximumBitRate, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_BitRate }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_UESidelinkAggregateMaximumBitrate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_UESidelinkAggregateMaximumBitrate, UESidelinkAggregateMaximumBitrate_sequence); + + return offset; +} + + static int dissect_s1ap_UE_Usage_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -8017,6 +8233,42 @@ dissect_s1ap_UE_Usage_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ } + +static int +dissect_s1ap_UL_NAS_MAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 16, 16, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_s1ap_UL_NAS_Count(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 5, 5, FALSE, NULL, NULL); + + return offset; +} + + +static const per_sequence_t UL_CP_SecurityInformation_sequence[] = { + { &hf_s1ap_ul_NAS_MAC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_UL_NAS_MAC }, + { &hf_s1ap_ul_NAS_Count , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_UL_NAS_Count }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_UL_CP_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_UL_CP_SecurityInformation, UL_CP_SecurityInformation_sequence); + + return offset; +} + + static const per_sequence_t UserLocationInformation_sequence[] = { { &hf_s1ap_eutran_cgi , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_EUTRAN_CGI }, { &hf_s1ap_tai , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_TAI }, @@ -8064,6 +8316,54 @@ dissect_s1ap_VoiceSupportMatchIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ } +static const value_string s1ap_VehicleUE_vals[] = { + { 0, "authorized" }, + { 1, "not-authorized" }, + { 0, NULL } +}; + + +static int +dissect_s1ap_VehicleUE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const value_string s1ap_PedestrianUE_vals[] = { + { 0, "authorized" }, + { 1, "not-authorized" }, + { 0, NULL } +}; + + +static int +dissect_s1ap_PedestrianUE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t V2XServicesAuthorized_sequence[] = { + { &hf_s1ap_vehicleUE , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_VehicleUE }, + { &hf_s1ap_pedestrianUE , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_PedestrianUE }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_V2XServicesAuthorized(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_V2XServicesAuthorized, V2XServicesAuthorized_sequence); + + return offset; +} + + static const value_string s1ap_WarningAreaList_vals[] = { { 0, "cellIDList" }, { 1, "trackingAreaListforWarning" }, @@ -8223,7 +8523,7 @@ dissect_s1ap_HandoverRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act #line 361 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); s1ap_data->handover_type_value = 0; -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequired"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequired"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_HandoverRequired, HandoverRequired_sequence); @@ -8242,7 +8542,7 @@ dissect_s1ap_HandoverCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx #line 364 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); s1ap_data->handover_type_value = 0; -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCommand"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCommand"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_HandoverCommand, HandoverCommand_sequence); @@ -8286,8 +8586,8 @@ static const per_sequence_t HandoverPreparationFailure_sequence[] = { static int dissect_s1ap_HandoverPreparationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1765 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverPreparationFailure"); +#line 1800 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverPreparationFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_HandoverPreparationFailure, HandoverPreparationFailure_sequence); @@ -8306,7 +8606,7 @@ dissect_s1ap_HandoverRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx #line 367 "./asn1/s1ap/s1ap.cnf" struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); s1ap_data->handover_type_value = 0; -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequest"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_HandoverRequest, HandoverRequest_sequence); @@ -8353,7 +8653,7 @@ dissect_s1ap_HandoverRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ struct s1ap_private_data *s1ap_data = s1ap_get_private_data(actx->pinfo); s1ap_data->handover_type_value = 0; -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequestAcknowledge"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequestAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_HandoverRequestAcknowledge, HandoverRequestAcknowledge_sequence); @@ -8424,8 +8724,8 @@ static const per_sequence_t HandoverFailure_sequence[] = { static int dissect_s1ap_HandoverFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1771 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverFailure"); +#line 1806 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_HandoverFailure, HandoverFailure_sequence); @@ -8441,8 +8741,8 @@ static const per_sequence_t HandoverNotify_sequence[] = { static int dissect_s1ap_HandoverNotify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1773 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverNotify"); +#line 1808 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverNotify"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_HandoverNotify, HandoverNotify_sequence); @@ -8458,8 +8758,8 @@ static const per_sequence_t PathSwitchRequest_sequence[] = { static int dissect_s1ap_PathSwitchRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1775 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequest"); +#line 1810 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_PathSwitchRequest, PathSwitchRequest_sequence); @@ -8501,8 +8801,8 @@ static const per_sequence_t PathSwitchRequestAcknowledge_sequence[] = { static int dissect_s1ap_PathSwitchRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1777 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestAcknowledge"); +#line 1812 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_PathSwitchRequestAcknowledge, PathSwitchRequestAcknowledge_sequence); @@ -8544,8 +8844,8 @@ static const per_sequence_t PathSwitchRequestFailure_sequence[] = { static int dissect_s1ap_PathSwitchRequestFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1779 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestFailure"); +#line 1814 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PathSwitchRequestFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_PathSwitchRequestFailure, PathSwitchRequestFailure_sequence); @@ -8561,8 +8861,8 @@ static const per_sequence_t HandoverCancel_sequence[] = { static int dissect_s1ap_HandoverCancel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1781 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancel"); +#line 1816 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancel"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_HandoverCancel, HandoverCancel_sequence); @@ -8578,8 +8878,8 @@ static const per_sequence_t HandoverCancelAcknowledge_sequence[] = { static int dissect_s1ap_HandoverCancelAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1783 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancelAcknowledge"); +#line 1818 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancelAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_HandoverCancelAcknowledge, HandoverCancelAcknowledge_sequence); @@ -8595,8 +8895,8 @@ static const per_sequence_t E_RABSetupRequest_sequence[] = { static int dissect_s1ap_E_RABSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1785 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABSetupRequest"); +#line 1820 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABSetupRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_E_RABSetupRequest, E_RABSetupRequest_sequence); @@ -8645,8 +8945,8 @@ static const per_sequence_t E_RABSetupResponse_sequence[] = { static int dissect_s1ap_E_RABSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1787 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABSetupResponse"); +#line 1822 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABSetupResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_E_RABSetupResponse, E_RABSetupResponse_sequence); @@ -8693,8 +8993,8 @@ static const per_sequence_t E_RABModifyRequest_sequence[] = { static int dissect_s1ap_E_RABModifyRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1789 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModifyRequest"); +#line 1824 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModifyRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_E_RABModifyRequest, E_RABModifyRequest_sequence); @@ -8741,8 +9041,8 @@ static const per_sequence_t E_RABModifyResponse_sequence[] = { static int dissect_s1ap_E_RABModifyResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1791 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModifyResponse"); +#line 1826 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModifyResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_E_RABModifyResponse, E_RABModifyResponse_sequence); @@ -8787,8 +9087,8 @@ static const per_sequence_t E_RABReleaseCommand_sequence[] = { static int dissect_s1ap_E_RABReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1793 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseCommand"); +#line 1828 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseCommand"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_E_RABReleaseCommand, E_RABReleaseCommand_sequence); @@ -8804,8 +9104,8 @@ static const per_sequence_t E_RABReleaseResponse_sequence[] = { static int dissect_s1ap_E_RABReleaseResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1795 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseResponse"); +#line 1830 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_E_RABReleaseResponse, E_RABReleaseResponse_sequence); @@ -8850,8 +9150,8 @@ static const per_sequence_t E_RABReleaseIndication_sequence[] = { static int dissect_s1ap_E_RABReleaseIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1797 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseIndication"); +#line 1832 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABReleaseIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_E_RABReleaseIndication, E_RABReleaseIndication_sequence); @@ -8867,8 +9167,8 @@ static const per_sequence_t InitialContextSetupRequest_sequence[] = { static int dissect_s1ap_InitialContextSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1799 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupRequest"); +#line 1834 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_InitialContextSetupRequest, InitialContextSetupRequest_sequence); @@ -8917,8 +9217,8 @@ static const per_sequence_t InitialContextSetupResponse_sequence[] = { static int dissect_s1ap_InitialContextSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1801 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupResponse"); +#line 1836 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_InitialContextSetupResponse, InitialContextSetupResponse_sequence); @@ -8965,8 +9265,8 @@ static const per_sequence_t InitialContextSetupFailure_sequence[] = { static int dissect_s1ap_InitialContextSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1803 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupFailure"); +#line 1838 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialContextSetupFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_InitialContextSetupFailure, InitialContextSetupFailure_sequence); @@ -8982,8 +9282,8 @@ static const per_sequence_t Paging_sequence[] = { static int dissect_s1ap_Paging(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1805 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Paging"); +#line 1840 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Paging"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_Paging, Paging_sequence); @@ -9028,8 +9328,8 @@ static const per_sequence_t UEContextReleaseRequest_sequence[] = { static int dissect_s1ap_UEContextReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1807 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseRequest"); +#line 1842 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_UEContextReleaseRequest, UEContextReleaseRequest_sequence); @@ -9045,8 +9345,8 @@ static const per_sequence_t UEContextReleaseCommand_sequence[] = { static int dissect_s1ap_UEContextReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1809 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseCommand"); +#line 1844 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseCommand"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_UEContextReleaseCommand, UEContextReleaseCommand_sequence); @@ -9062,8 +9362,8 @@ static const per_sequence_t UEContextReleaseComplete_sequence[] = { static int dissect_s1ap_UEContextReleaseComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1811 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseComplete"); +#line 1846 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseComplete"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_UEContextReleaseComplete, UEContextReleaseComplete_sequence); @@ -9079,8 +9379,8 @@ static const per_sequence_t UEContextModificationRequest_sequence[] = { static int dissect_s1ap_UEContextModificationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1813 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationRequest"); +#line 1848 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_UEContextModificationRequest, UEContextModificationRequest_sequence); @@ -9096,8 +9396,8 @@ static const per_sequence_t UEContextModificationResponse_sequence[] = { static int dissect_s1ap_UEContextModificationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1815 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationResponse"); +#line 1850 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_UEContextModificationResponse, UEContextModificationResponse_sequence); @@ -9113,8 +9413,8 @@ static const per_sequence_t UEContextModificationFailure_sequence[] = { static int dissect_s1ap_UEContextModificationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1817 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationFailure"); +#line 1852 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_UEContextModificationFailure, UEContextModificationFailure_sequence); @@ -9130,8 +9430,8 @@ static const per_sequence_t UERadioCapabilityMatchRequest_sequence[] = { static int dissect_s1ap_UERadioCapabilityMatchRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1819 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityMatchRequest"); +#line 1854 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityMatchRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_UERadioCapabilityMatchRequest, UERadioCapabilityMatchRequest_sequence); @@ -9147,8 +9447,8 @@ static const per_sequence_t UERadioCapabilityMatchResponse_sequence[] = { static int dissect_s1ap_UERadioCapabilityMatchResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1821 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityMatchResponse"); +#line 1856 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UERadioCapabilityMatchResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_UERadioCapabilityMatchResponse, UERadioCapabilityMatchResponse_sequence); @@ -9168,7 +9468,7 @@ dissect_s1ap_DownlinkNASTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t /* Set the direction of the message */ actx->pinfo->link_dir=P2P_DIR_DL; -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkNASTransport"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkNASTransport"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_DownlinkNASTransport, DownlinkNASTransport_sequence); @@ -9188,7 +9488,7 @@ dissect_s1ap_InitialUEMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act /* Set the direction of the message */ actx->pinfo->link_dir=P2P_DIR_UL; -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialUEMessage"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialUEMessage"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_InitialUEMessage, InitialUEMessage_sequence); @@ -9208,7 +9508,7 @@ dissect_s1ap_UplinkNASTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a /* Set the direction of the message */ actx->pinfo->link_dir=P2P_DIR_UL; -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkNASTransport"); + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkNASTransport"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_UplinkNASTransport, UplinkNASTransport_sequence); @@ -9224,8 +9524,8 @@ static const per_sequence_t NASNonDeliveryIndication_sequence[] = { static int dissect_s1ap_NASNonDeliveryIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1829 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NASNonDeliveryIndication"); +#line 1864 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NASNonDeliveryIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_NASNonDeliveryIndication, NASNonDeliveryIndication_sequence); @@ -9241,8 +9541,8 @@ static const per_sequence_t RerouteNASRequest_sequence[] = { static int dissect_s1ap_RerouteNASRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1831 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RerouteNASRequest"); +#line 1866 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RerouteNASRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_RerouteNASRequest, RerouteNASRequest_sequence); @@ -9273,6 +9573,23 @@ dissect_s1ap_S1_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, } +static const per_sequence_t NASDeliveryIndication_sequence[] = { + { &hf_s1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_NASDeliveryIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 1970 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NASDeliveryIndication"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_NASDeliveryIndication, NASDeliveryIndication_sequence); + + return offset; +} + + static const per_sequence_t Reset_sequence[] = { { &hf_s1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_Container }, { NULL, 0, 0, NULL } @@ -9280,8 +9597,8 @@ static const per_sequence_t Reset_sequence[] = { static int dissect_s1ap_Reset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1833 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Reset"); +#line 1868 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Reset"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_Reset, Reset_sequence); @@ -9348,8 +9665,8 @@ static const per_sequence_t ResetAcknowledge_sequence[] = { static int dissect_s1ap_ResetAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1835 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetAcknowledge"); +#line 1870 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_ResetAcknowledge, ResetAcknowledge_sequence); @@ -9393,8 +9710,8 @@ static const per_sequence_t S1SetupRequest_sequence[] = { static int dissect_s1ap_S1SetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1839 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupRequest"); +#line 1874 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_S1SetupRequest, S1SetupRequest_sequence); @@ -9410,8 +9727,8 @@ static const per_sequence_t S1SetupResponse_sequence[] = { static int dissect_s1ap_S1SetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1841 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupResponse"); +#line 1876 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_S1SetupResponse, S1SetupResponse_sequence); @@ -9427,8 +9744,8 @@ static const per_sequence_t S1SetupFailure_sequence[] = { static int dissect_s1ap_S1SetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1843 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupFailure"); +#line 1878 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "S1SetupFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_S1SetupFailure, S1SetupFailure_sequence); @@ -9444,8 +9761,8 @@ static const per_sequence_t ENBConfigurationUpdate_sequence[] = { static int dissect_s1ap_ENBConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1845 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdate"); +#line 1880 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdate"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_ENBConfigurationUpdate, ENBConfigurationUpdate_sequence); @@ -9461,8 +9778,8 @@ static const per_sequence_t ENBConfigurationUpdateAcknowledge_sequence[] = { static int dissect_s1ap_ENBConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1847 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdateAcknowledge"); +#line 1882 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdateAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_ENBConfigurationUpdateAcknowledge, ENBConfigurationUpdateAcknowledge_sequence); @@ -9478,8 +9795,8 @@ static const per_sequence_t ENBConfigurationUpdateFailure_sequence[] = { static int dissect_s1ap_ENBConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1849 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdateFailure"); +#line 1884 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationUpdateFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_ENBConfigurationUpdateFailure, ENBConfigurationUpdateFailure_sequence); @@ -9495,8 +9812,8 @@ static const per_sequence_t MMEConfigurationUpdate_sequence[] = { static int dissect_s1ap_MMEConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1851 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdate"); +#line 1886 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdate"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_MMEConfigurationUpdate, MMEConfigurationUpdate_sequence); @@ -9512,8 +9829,8 @@ static const per_sequence_t MMEConfigurationUpdateAcknowledge_sequence[] = { static int dissect_s1ap_MMEConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1853 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdateAcknowledge"); +#line 1888 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdateAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_MMEConfigurationUpdateAcknowledge, MMEConfigurationUpdateAcknowledge_sequence); @@ -9529,8 +9846,8 @@ static const per_sequence_t MMEConfigurationUpdateFailure_sequence[] = { static int dissect_s1ap_MMEConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1855 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdateFailure"); +#line 1890 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationUpdateFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_MMEConfigurationUpdateFailure, MMEConfigurationUpdateFailure_sequence); @@ -9546,8 +9863,8 @@ static const per_sequence_t DownlinkS1cdma2000tunnelling_sequence[] = { static int dissect_s1ap_DownlinkS1cdma2000tunnelling(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1857 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkS1cdma2000tunnelling"); +#line 1892 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkS1cdma2000tunnelling"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_DownlinkS1cdma2000tunnelling, DownlinkS1cdma2000tunnelling_sequence); @@ -9563,8 +9880,8 @@ static const per_sequence_t UplinkS1cdma2000tunnelling_sequence[] = { static int dissect_s1ap_UplinkS1cdma2000tunnelling(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1859 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkS1cdma2000tunnelling"); +#line 1894 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkS1cdma2000tunnelling"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_UplinkS1cdma2000tunnelling, UplinkS1cdma2000tunnelling_sequence); @@ -9580,8 +9897,8 @@ static const per_sequence_t UECapabilityInfoIndication_sequence[] = { static int dissect_s1ap_UECapabilityInfoIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1861 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UECapabilityInfoIndication"); +#line 1896 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UECapabilityInfoIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_UECapabilityInfoIndication, UECapabilityInfoIndication_sequence); @@ -9597,8 +9914,8 @@ static const per_sequence_t ENBStatusTransfer_sequence[] = { static int dissect_s1ap_ENBStatusTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1863 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBStatusTransfer"); +#line 1898 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBStatusTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_ENBStatusTransfer, ENBStatusTransfer_sequence); @@ -9614,8 +9931,8 @@ static const per_sequence_t MMEStatusTransfer_sequence[] = { static int dissect_s1ap_MMEStatusTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1865 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEStatusTransfer"); +#line 1900 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEStatusTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_MMEStatusTransfer, MMEStatusTransfer_sequence); @@ -9631,8 +9948,8 @@ static const per_sequence_t TraceStart_sequence[] = { static int dissect_s1ap_TraceStart(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1867 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceStart"); +#line 1902 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceStart"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_TraceStart, TraceStart_sequence); @@ -9648,8 +9965,8 @@ static const per_sequence_t TraceFailureIndication_sequence[] = { static int dissect_s1ap_TraceFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1869 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceFailureIndication"); +#line 1904 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceFailureIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_TraceFailureIndication, TraceFailureIndication_sequence); @@ -9665,8 +9982,8 @@ static const per_sequence_t DeactivateTrace_sequence[] = { static int dissect_s1ap_DeactivateTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1871 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DeactivateTrace"); +#line 1906 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DeactivateTrace"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_DeactivateTrace, DeactivateTrace_sequence); @@ -9682,8 +9999,8 @@ static const per_sequence_t CellTrafficTrace_sequence[] = { static int dissect_s1ap_CellTrafficTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1873 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CellTrafficTrace"); +#line 1908 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CellTrafficTrace"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_CellTrafficTrace, CellTrafficTrace_sequence); @@ -9699,8 +10016,8 @@ static const per_sequence_t LocationReportingControl_sequence[] = { static int dissect_s1ap_LocationReportingControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1875 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReportingControl"); +#line 1910 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReportingControl"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_LocationReportingControl, LocationReportingControl_sequence); @@ -9716,8 +10033,8 @@ static const per_sequence_t LocationReportingFailureIndication_sequence[] = { static int dissect_s1ap_LocationReportingFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1877 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReportingFailureIndication"); +#line 1912 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReportingFailureIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_LocationReportingFailureIndication, LocationReportingFailureIndication_sequence); @@ -9733,8 +10050,8 @@ static const per_sequence_t LocationReport_sequence[] = { static int dissect_s1ap_LocationReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1879 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReport"); +#line 1914 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "LocationReport"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_LocationReport, LocationReport_sequence); @@ -9750,8 +10067,8 @@ static const per_sequence_t OverloadStart_sequence[] = { static int dissect_s1ap_OverloadStart(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1881 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "OverloadStart"); +#line 1916 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "OverloadStart"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_OverloadStart, OverloadStart_sequence); @@ -9767,8 +10084,8 @@ static const per_sequence_t OverloadStop_sequence[] = { static int dissect_s1ap_OverloadStop(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1883 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "OverloadStop"); +#line 1918 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "OverloadStop"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_OverloadStop, OverloadStop_sequence); @@ -9784,8 +10101,8 @@ static const per_sequence_t WriteReplaceWarningRequest_sequence[] = { static int dissect_s1ap_WriteReplaceWarningRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1885 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningRequest"); +#line 1920 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_WriteReplaceWarningRequest, WriteReplaceWarningRequest_sequence); @@ -9801,8 +10118,8 @@ static const per_sequence_t WriteReplaceWarningResponse_sequence[] = { static int dissect_s1ap_WriteReplaceWarningResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1887 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningResponse"); +#line 1922 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_WriteReplaceWarningResponse, WriteReplaceWarningResponse_sequence); @@ -9818,8 +10135,8 @@ static const per_sequence_t ENBDirectInformationTransfer_sequence[] = { static int dissect_s1ap_ENBDirectInformationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1889 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBDirectInformationTransfer"); +#line 1924 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBDirectInformationTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_ENBDirectInformationTransfer, ENBDirectInformationTransfer_sequence); @@ -9855,8 +10172,8 @@ static const per_sequence_t MMEDirectInformationTransfer_sequence[] = { static int dissect_s1ap_MMEDirectInformationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1891 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEDirectInformationTransfer"); +#line 1926 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEDirectInformationTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_MMEDirectInformationTransfer, MMEDirectInformationTransfer_sequence); @@ -9872,8 +10189,8 @@ static const per_sequence_t ENBConfigurationTransfer_sequence[] = { static int dissect_s1ap_ENBConfigurationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1893 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationTransfer"); +#line 1928 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBConfigurationTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_ENBConfigurationTransfer, ENBConfigurationTransfer_sequence); @@ -9889,8 +10206,8 @@ static const per_sequence_t MMEConfigurationTransfer_sequence[] = { static int dissect_s1ap_MMEConfigurationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1895 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationTransfer"); +#line 1930 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMEConfigurationTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_MMEConfigurationTransfer, MMEConfigurationTransfer_sequence); @@ -9906,8 +10223,8 @@ static const per_sequence_t PrivateMessage_sequence[] = { static int dissect_s1ap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1897 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PrivateMessage"); +#line 1932 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PrivateMessage"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_PrivateMessage, PrivateMessage_sequence); @@ -9923,8 +10240,8 @@ static const per_sequence_t KillRequest_sequence[] = { static int dissect_s1ap_KillRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1899 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "KillRequest"); +#line 1934 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "KillRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_KillRequest, KillRequest_sequence); @@ -9940,8 +10257,8 @@ static const per_sequence_t KillResponse_sequence[] = { static int dissect_s1ap_KillResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1901 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "KillResponse"); +#line 1936 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "KillResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_KillResponse, KillResponse_sequence); @@ -9957,8 +10274,8 @@ static const per_sequence_t PWSRestartIndication_sequence[] = { static int dissect_s1ap_PWSRestartIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1903 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSRestartIndication"); +#line 1938 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSRestartIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_PWSRestartIndication, PWSRestartIndication_sequence); @@ -9974,8 +10291,8 @@ static const per_sequence_t PWSFailureIndication_sequence[] = { static int dissect_s1ap_PWSFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1905 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSFailureIndication"); +#line 1940 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSFailureIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_PWSFailureIndication, PWSFailureIndication_sequence); @@ -9991,8 +10308,8 @@ static const per_sequence_t DownlinkUEAssociatedLPPaTransport_sequence[] = { static int dissect_s1ap_DownlinkUEAssociatedLPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1907 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkUEAssociatedLPPaTransport"); +#line 1942 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkUEAssociatedLPPaTransport"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_DownlinkUEAssociatedLPPaTransport, DownlinkUEAssociatedLPPaTransport_sequence); @@ -10008,8 +10325,8 @@ static const per_sequence_t UplinkUEAssociatedLPPaTransport_sequence[] = { static int dissect_s1ap_UplinkUEAssociatedLPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1909 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkUEAssociatedLPPaTransport"); +#line 1944 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkUEAssociatedLPPaTransport"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_UplinkUEAssociatedLPPaTransport, UplinkUEAssociatedLPPaTransport_sequence); @@ -10025,8 +10342,8 @@ static const per_sequence_t DownlinkNonUEAssociatedLPPaTransport_sequence[] = { static int dissect_s1ap_DownlinkNonUEAssociatedLPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1911 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkNonUEAssociatedLPPaTransport"); +#line 1946 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DownlinkNonUEAssociatedLPPaTransport"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_DownlinkNonUEAssociatedLPPaTransport, DownlinkNonUEAssociatedLPPaTransport_sequence); @@ -10042,8 +10359,8 @@ static const per_sequence_t UplinkNonUEAssociatedLPPaTransport_sequence[] = { static int dissect_s1ap_UplinkNonUEAssociatedLPPaTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1913 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkNonUEAssociatedLPPaTransport"); +#line 1948 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UplinkNonUEAssociatedLPPaTransport"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_UplinkNonUEAssociatedLPPaTransport, UplinkNonUEAssociatedLPPaTransport_sequence); @@ -10059,8 +10376,8 @@ static const per_sequence_t E_RABModificationIndication_sequence[] = { static int dissect_s1ap_E_RABModificationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1915 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModificationIndication"); +#line 1950 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModificationIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_E_RABModificationIndication, E_RABModificationIndication_sequence); @@ -10146,8 +10463,8 @@ static const per_sequence_t E_RABModificationConfirm_sequence[] = { static int dissect_s1ap_E_RABModificationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1917 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModificationConfirm"); +#line 1952 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E-RABModificationConfirm"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_E_RABModificationConfirm, E_RABModificationConfirm_sequence); @@ -10192,8 +10509,8 @@ static const per_sequence_t UEContextModificationIndication_sequence[] = { static int dissect_s1ap_UEContextModificationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1919 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationIndication"); +#line 1954 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_UEContextModificationIndication, UEContextModificationIndication_sequence); @@ -10209,8 +10526,8 @@ static const per_sequence_t UEContextModificationConfirm_sequence[] = { static int dissect_s1ap_UEContextModificationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1921 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationConfirm"); +#line 1956 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationConfirm"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_UEContextModificationConfirm, UEContextModificationConfirm_sequence); @@ -10226,8 +10543,8 @@ static const per_sequence_t UEContextSuspendRequest_sequence[] = { static int dissect_s1ap_UEContextSuspendRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1923 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSuspendRequest"); +#line 1958 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSuspendRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_UEContextSuspendRequest, UEContextSuspendRequest_sequence); @@ -10243,8 +10560,8 @@ static const per_sequence_t UEContextSuspendResponse_sequence[] = { static int dissect_s1ap_UEContextSuspendResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1925 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSuspendResponse"); +#line 1960 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSuspendResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_UEContextSuspendResponse, UEContextSuspendResponse_sequence); @@ -10260,8 +10577,8 @@ static const per_sequence_t UEContextResumeRequest_sequence[] = { static int dissect_s1ap_UEContextResumeRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1927 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeRequest"); +#line 1962 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_UEContextResumeRequest, UEContextResumeRequest_sequence); @@ -10302,8 +10619,8 @@ static const per_sequence_t UEContextResumeResponse_sequence[] = { static int dissect_s1ap_UEContextResumeResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1929 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeResponse"); +#line 1964 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_UEContextResumeResponse, UEContextResumeResponse_sequence); @@ -10344,8 +10661,8 @@ static const per_sequence_t UEContextResumeFailure_sequence[] = { static int dissect_s1ap_UEContextResumeFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1931 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeFailure"); +#line 1966 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextResumeFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_UEContextResumeFailure, UEContextResumeFailure_sequence); @@ -10361,8 +10678,8 @@ static const per_sequence_t ConnectionEstablishmentIndication_sequence[] = { static int dissect_s1ap_ConnectionEstablishmentIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1933 "./asn1/s1ap/s1ap.cnf" -col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ConnectionEstablishmentIndication"); +#line 1968 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ConnectionEstablishmentIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_s1ap_ConnectionEstablishmentIndication, ConnectionEstablishmentIndication_sequence); @@ -10371,6 +10688,74 @@ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ConnectionEstablishmentI } +static const per_sequence_t RetrieveUEInformation_sequence[] = { + { &hf_s1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_RetrieveUEInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 1972 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RetrieveUEInformation"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_RetrieveUEInformation, RetrieveUEInformation_sequence); + + return offset; +} + + +static const per_sequence_t UEInformationTransfer_sequence[] = { + { &hf_s1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_UEInformationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 1974 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEInformationTransfer"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_UEInformationTransfer, UEInformationTransfer_sequence); + + return offset; +} + + +static const per_sequence_t ENBCPRelocationIndication_sequence[] = { + { &hf_s1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_ENBCPRelocationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 1976 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ENBCPRelocationIndication"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_ENBCPRelocationIndication, ENBCPRelocationIndication_sequence); + + return offset; +} + + +static const per_sequence_t MMECPRelocationIndication_sequence[] = { + { &hf_s1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_MMECPRelocationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 1978 "./asn1/s1ap/s1ap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MMECPRelocationIndication"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_MMECPRelocationIndication, MMECPRelocationIndication_sequence); + + return offset; +} + + static int dissect_s1ap_InitiatingMessage_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -11529,6 +11914,14 @@ static int dissect_COUNTvaluePDCP_SNlength18_PDU(tvbuff_t *tvb _U_, packet_info offset += 7; offset >>= 3; return offset; } +static int dissect_Coverage_Level_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_Coverage_Level(tvb, offset, &asn1_ctx, tree, hf_s1ap_Coverage_Level_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_CriticalityDiagnostics_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -11545,6 +11938,30 @@ static int dissect_DataCodingScheme_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U offset += 7; offset >>= 3; return offset; } +static int dissect_DCN_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_DCN_ID(tvb, offset, &asn1_ctx, tree, hf_s1ap_DCN_ID_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_ServedDCNs_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_ServedDCNs(tvb, offset, &asn1_ctx, tree, hf_s1ap_ServedDCNs_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_DL_CP_SecurityInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_DL_CP_SecurityInformation(tvb, offset, &asn1_ctx, tree, hf_s1ap_DL_CP_SecurityInformation_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_Direct_Forwarding_Path_Availability_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -11561,6 +11978,14 @@ static int dissect_Data_Forwarding_Not_Possible_PDU(tvbuff_t *tvb _U_, packet_in offset += 7; offset >>= 3; return offset; } +static int dissect_DLNASPDUDeliveryAckRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_DLNASPDUDeliveryAckRequest(tvb, offset, &asn1_ctx, tree, hf_s1ap_DLNASPDUDeliveryAckRequest_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_PWSfailedECGIList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -11617,6 +12042,14 @@ static int dissect_ENBname_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_ offset += 7; offset >>= 3; return offset; } +static int dissect_EnhancedCoverageRestricted_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_EnhancedCoverageRestricted(tvb, offset, &asn1_ctx, tree, hf_s1ap_EnhancedCoverageRestricted_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_E_RABInformationListItem_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -11641,6 +12074,14 @@ static int dissect_E_RABItem_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, prot offset += 7; offset >>= 3; return offset; } +static int dissect_E_RABLevelQoSParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_E_RABLevelQoSParameters(tvb, offset, &asn1_ctx, tree, hf_s1ap_E_RABLevelQoSParameters_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_EUTRAN_CGI_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -12473,6 +12914,14 @@ static int dissect_UESecurityCapabilities_PDU(tvbuff_t *tvb _U_, packet_info *pi offset += 7; offset >>= 3; return offset; } +static int dissect_UESidelinkAggregateMaximumBitrate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_UESidelinkAggregateMaximumBitrate(tvb, offset, &asn1_ctx, tree, hf_s1ap_UESidelinkAggregateMaximumBitrate_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_UE_Usage_Type_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -12481,6 +12930,14 @@ static int dissect_UE_Usage_Type_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, offset += 7; offset >>= 3; return offset; } +static int dissect_UL_CP_SecurityInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_UL_CP_SecurityInformation(tvb, offset, &asn1_ctx, tree, hf_s1ap_UL_CP_SecurityInformation_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_UserLocationInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -12505,6 +12962,14 @@ static int dissect_VoiceSupportMatchIndicator_PDU(tvbuff_t *tvb _U_, packet_info offset += 7; offset >>= 3; return offset; } +static int dissect_V2XServicesAuthorized_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_V2XServicesAuthorized(tvb, offset, &asn1_ctx, tree, hf_s1ap_V2XServicesAuthorized_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_WarningAreaList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -13081,6 +13546,14 @@ static int dissect_S1_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pro offset += 7; offset >>= 3; return offset; } +static int dissect_NASDeliveryIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_NASDeliveryIndication(tvb, offset, &asn1_ctx, tree, hf_s1ap_NASDeliveryIndication_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_Reset_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -13601,6 +14074,38 @@ static int dissect_ConnectionEstablishmentIndication_PDU(tvbuff_t *tvb _U_, pack offset += 7; offset >>= 3; return offset; } +static int dissect_RetrieveUEInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_RetrieveUEInformation(tvb, offset, &asn1_ctx, tree, hf_s1ap_RetrieveUEInformation_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_UEInformationTransfer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_UEInformationTransfer(tvb, offset, &asn1_ctx, tree, hf_s1ap_UEInformationTransfer_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_ENBCPRelocationIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_ENBCPRelocationIndication(tvb, offset, &asn1_ctx, tree, hf_s1ap_ENBCPRelocationIndication_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_MMECPRelocationIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_MMECPRelocationIndication(tvb, offset, &asn1_ctx, tree, hf_s1ap_MMECPRelocationIndication_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_S1AP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -13949,6 +14454,16 @@ proto_reg_handoff_s1ap(void) dissector_add_uint("s1ap.ies", id_SRVCCOperationNotPossible, create_dissector_handle(dissect_SRVCCOperationNotPossible_PDU, proto_s1ap)); dissector_add_uint("s1ap.ies", id_NB_IoT_UEIdentityIndexValue, create_dissector_handle(dissect_NB_IoT_UEIdentityIndexValue_PDU, proto_s1ap)); dissector_add_uint("s1ap.ies", id_RRC_Resume_Cause, create_dissector_handle(dissect_RRC_Establishment_Cause_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_V2XServicesAuthorized, create_dissector_handle(dissect_V2XServicesAuthorized_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_UESidelinkAggregateMaximumBitrate, create_dissector_handle(dissect_UESidelinkAggregateMaximumBitrate_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_EnhancedCoverageRestricted, create_dissector_handle(dissect_EnhancedCoverageRestricted_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_DLNASPDUDeliveryAckRequest, create_dissector_handle(dissect_DLNASPDUDeliveryAckRequest_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_DCN_ID, create_dissector_handle(dissect_DCN_ID_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_Coverage_Level, create_dissector_handle(dissect_Coverage_Level_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_ServedDCNs, create_dissector_handle(dissect_ServedDCNs_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_DL_CP_SecurityInformation, create_dissector_handle(dissect_DL_CP_SecurityInformation_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_UE_Level_QoS_Parameters, create_dissector_handle(dissect_E_RABLevelQoSParameters_PDU, proto_s1ap)); + dissector_add_uint("s1ap.ies", id_UL_CP_SecurityInformation, create_dissector_handle(dissect_UL_CP_SecurityInformation_PDU, proto_s1ap)); dissector_add_uint("s1ap.extension", id_Data_Forwarding_Not_Possible, create_dissector_handle(dissect_Data_Forwarding_Not_Possible_PDU, proto_s1ap)); dissector_add_uint("s1ap.extension", id_Time_Synchronisation_Info, create_dissector_handle(dissect_TimeSynchronisationInfo_PDU, proto_s1ap)); dissector_add_uint("s1ap.extension", id_x2TNLConfigurationInfo, create_dissector_handle(dissect_X2TNLConfigurationInfo_PDU, proto_s1ap)); @@ -14070,6 +14585,11 @@ proto_reg_handoff_s1ap(void) dissector_add_uint("s1ap.proc.imsg", id_UEContextResume, create_dissector_handle(dissect_UEContextResumeRequest_PDU, proto_s1ap)); dissector_add_uint("s1ap.proc.sout", id_UEContextResume, create_dissector_handle(dissect_UEContextResumeResponse_PDU, proto_s1ap)); dissector_add_uint("s1ap.proc.uout", id_UEContextResume, create_dissector_handle(dissect_UEContextResumeFailure_PDU, proto_s1ap)); + dissector_add_uint("s1ap.proc.imsg", id_NASDeliveryIndication, create_dissector_handle(dissect_NASDeliveryIndication_PDU, proto_s1ap)); + dissector_add_uint("s1ap.proc.imsg", id_RetrieveUEInformation, create_dissector_handle(dissect_RetrieveUEInformation_PDU, proto_s1ap)); + dissector_add_uint("s1ap.proc.imsg", id_UEInformationTransfer, create_dissector_handle(dissect_UEInformationTransfer_PDU, proto_s1ap)); + dissector_add_uint("s1ap.proc.imsg", id_eNBCPRelocationIndication, create_dissector_handle(dissect_ENBCPRelocationIndication_PDU, proto_s1ap)); + dissector_add_uint("s1ap.proc.imsg", id_MMECPRelocationIndication, create_dissector_handle(dissect_MMECPRelocationIndication_PDU, proto_s1ap)); /*--- End of included file: packet-s1ap-dis-tab.c ---*/ @@ -14343,6 +14863,10 @@ void proto_register_s1ap(void) { { "COUNTvaluePDCP-SNlength18", "s1ap.COUNTvaluePDCP_SNlength18_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_Coverage_Level_PDU, + { "Coverage-Level", "s1ap.Coverage_Level", + FT_UINT32, BASE_DEC, VALS(s1ap_Coverage_Level_vals), 0, + NULL, HFILL }}, { &hf_s1ap_CriticalityDiagnostics_PDU, { "CriticalityDiagnostics", "s1ap.CriticalityDiagnostics_element", FT_NONE, BASE_NONE, NULL, 0, @@ -14351,6 +14875,18 @@ void proto_register_s1ap(void) { { "DataCodingScheme", "s1ap.DataCodingScheme", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_DCN_ID_PDU, + { "DCN-ID", "s1ap.DCN_ID", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_ServedDCNs_PDU, + { "ServedDCNs", "s1ap.ServedDCNs", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_DL_CP_SecurityInformation_PDU, + { "DL-CP-SecurityInformation", "s1ap.DL_CP_SecurityInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_Direct_Forwarding_Path_Availability_PDU, { "Direct-Forwarding-Path-Availability", "s1ap.Direct_Forwarding_Path_Availability", FT_UINT32, BASE_DEC, VALS(s1ap_Direct_Forwarding_Path_Availability_vals), 0, @@ -14359,6 +14895,10 @@ void proto_register_s1ap(void) { { "Data-Forwarding-Not-Possible", "s1ap.Data_Forwarding_Not_Possible", FT_UINT32, BASE_DEC, VALS(s1ap_Data_Forwarding_Not_Possible_vals), 0, NULL, HFILL }}, + { &hf_s1ap_DLNASPDUDeliveryAckRequest_PDU, + { "DLNASPDUDeliveryAckRequest", "s1ap.DLNASPDUDeliveryAckRequest", + FT_UINT32, BASE_DEC, VALS(s1ap_DLNASPDUDeliveryAckRequest_vals), 0, + NULL, HFILL }}, { &hf_s1ap_PWSfailedECGIList_PDU, { "PWSfailedECGIList", "s1ap.PWSfailedECGIList", FT_UINT32, BASE_DEC, NULL, 0, @@ -14387,6 +14927,10 @@ void proto_register_s1ap(void) { { "ENBname", "s1ap.ENBname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_EnhancedCoverageRestricted_PDU, + { "EnhancedCoverageRestricted", "s1ap.EnhancedCoverageRestricted", + FT_UINT32, BASE_DEC, VALS(s1ap_EnhancedCoverageRestricted_vals), 0, + NULL, HFILL }}, { &hf_s1ap_E_RABInformationListItem_PDU, { "E-RABInformationListItem", "s1ap.E_RABInformationListItem_element", FT_NONE, BASE_NONE, NULL, 0, @@ -14399,6 +14943,10 @@ void proto_register_s1ap(void) { { "E-RABItem", "s1ap.E_RABItem_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_E_RABLevelQoSParameters_PDU, + { "E-RABLevelQoSParameters", "s1ap.E_RABLevelQoSParameters_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_EUTRAN_CGI_PDU, { "EUTRAN-CGI", "s1ap.EUTRAN_CGI_element", FT_NONE, BASE_NONE, NULL, 0, @@ -14815,10 +15363,18 @@ void proto_register_s1ap(void) { { "UESecurityCapabilities", "s1ap.UESecurityCapabilities_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_UESidelinkAggregateMaximumBitrate_PDU, + { "UESidelinkAggregateMaximumBitrate", "s1ap.UESidelinkAggregateMaximumBitrate_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_UE_Usage_Type_PDU, { "UE-Usage-Type", "s1ap.UE_Usage_Type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_UL_CP_SecurityInformation_PDU, + { "UL-CP-SecurityInformation", "s1ap.UL_CP_SecurityInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_UserLocationInformation_PDU, { "UserLocationInformation", "s1ap.UserLocationInformation_element", FT_NONE, BASE_NONE, NULL, 0, @@ -14831,6 +15387,10 @@ void proto_register_s1ap(void) { { "VoiceSupportMatchIndicator", "s1ap.VoiceSupportMatchIndicator", FT_UINT32, BASE_DEC, VALS(s1ap_VoiceSupportMatchIndicator_vals), 0, NULL, HFILL }}, + { &hf_s1ap_V2XServicesAuthorized_PDU, + { "V2XServicesAuthorized", "s1ap.V2XServicesAuthorized_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_WarningAreaList_PDU, { "WarningAreaList", "s1ap.WarningAreaList", FT_UINT32, BASE_DEC, VALS(s1ap_WarningAreaList_vals), 0, @@ -15119,6 +15679,10 @@ void proto_register_s1ap(void) { { "S1-Message", "s1ap.S1_Message", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_NASDeliveryIndication_PDU, + { "NASDeliveryIndication", "s1ap.NASDeliveryIndication_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_Reset_PDU, { "Reset", "s1ap.Reset_element", FT_NONE, BASE_NONE, NULL, 0, @@ -15379,6 +15943,22 @@ void proto_register_s1ap(void) { { "ConnectionEstablishmentIndication", "s1ap.ConnectionEstablishmentIndication_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_RetrieveUEInformation_PDU, + { "RetrieveUEInformation", "s1ap.RetrieveUEInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_UEInformationTransfer_PDU, + { "UEInformationTransfer", "s1ap.UEInformationTransfer_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_ENBCPRelocationIndication_PDU, + { "ENBCPRelocationIndication", "s1ap.ENBCPRelocationIndication_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_MMECPRelocationIndication_PDU, + { "MMECPRelocationIndication", "s1ap.MMECPRelocationIndication_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_S1AP_PDU_PDU, { "S1AP-PDU", "s1ap.S1AP_PDU", FT_UINT32, BASE_DEC, VALS(s1ap_S1AP_PDU_vals), 0, @@ -15715,6 +16295,22 @@ void proto_register_s1ap(void) { { "typeOfError", "s1ap.typeOfError", FT_UINT32, BASE_DEC, VALS(s1ap_TypeOfError_vals), 0, NULL, HFILL }}, + { &hf_s1ap_ServedDCNs_item, + { "ServedDCNsItem", "s1ap.ServedDCNsItem_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_dCN_ID, + { "dCN-ID", "s1ap.dCN_ID", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_relativeDCNCapacity, + { "relativeDCNCapacity", "s1ap.relativeDCNCapacity", + FT_UINT32, BASE_DEC, NULL, 0, + "RelativeMMECapacity", HFILL }}, + { &hf_s1ap_dl_NAS_MAC, + { "dl-NAS-MAC", "s1ap.dl_NAS_MAC", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_ECGIList_item, { "EUTRAN-CGI", "s1ap.EUTRAN_CGI_element", FT_NONE, BASE_NONE, NULL, 0, @@ -15767,6 +16363,14 @@ void proto_register_s1ap(void) { { "homeENB-ID", "s1ap.homeENB_ID", FT_BYTES, BASE_NONE, NULL, 0, "BIT_STRING_SIZE_28", HFILL }}, + { &hf_s1ap_short_macroENB_ID, + { "short-macroENB-ID", "s1ap.short_macroENB_ID", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_18", HFILL }}, + { &hf_s1ap_long_macroENB_ID, + { "long-macroENB-ID", "s1ap.long_macroENB_ID", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_21", HFILL }}, { &hf_s1ap_lAI, { "lAI", "s1ap.lAI_element", FT_NONE, BASE_NONE, NULL, 0, @@ -16455,6 +17059,18 @@ void proto_register_s1ap(void) { { "integrityProtectionAlgorithms", "s1ap.integrityProtectionAlgorithms", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_uESidelinkAggregateMaximumBitRate, + { "uESidelinkAggregateMaximumBitRate", "s1ap.uESidelinkAggregateMaximumBitRate", + FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0, + "BitRate", HFILL }}, + { &hf_s1ap_ul_NAS_MAC, + { "ul-NAS-MAC", "s1ap.ul_NAS_MAC", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_ul_NAS_Count, + { "ul-NAS-Count", "s1ap.ul_NAS_Count", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_eutran_cgi, { "eutran-cgi", "s1ap.eutran_cgi_element", FT_NONE, BASE_NONE, NULL, 0, @@ -16463,6 +17079,14 @@ void proto_register_s1ap(void) { { "tai", "s1ap.tai_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_vehicleUE, + { "vehicleUE", "s1ap.vehicleUE", + FT_UINT32, BASE_DEC, VALS(s1ap_VehicleUE_vals), 0, + NULL, HFILL }}, + { &hf_s1ap_pedestrianUE, + { "pedestrianUE", "s1ap.pedestrianUE", + FT_UINT32, BASE_DEC, VALS(s1ap_PedestrianUE_vals), 0, + NULL, HFILL }}, { &hf_s1ap_cellIDList, { "cellIDList", "s1ap.cellIDList", FT_UINT32, BASE_DEC, NULL, 0, @@ -16988,6 +17612,9 @@ void proto_register_s1ap(void) { &ett_s1ap_CriticalityDiagnostics, &ett_s1ap_CriticalityDiagnostics_IE_List, &ett_s1ap_CriticalityDiagnostics_IE_Item, + &ett_s1ap_ServedDCNs, + &ett_s1ap_ServedDCNsItem, + &ett_s1ap_DL_CP_SecurityInformation, &ett_s1ap_ECGIList, &ett_s1ap_PWSfailedECGIList, &ett_s1ap_EmergencyAreaIDList, @@ -17107,7 +17734,10 @@ void proto_register_s1ap(void) { &ett_s1ap_UE_HistoryInformation, &ett_s1ap_UEPagingID, &ett_s1ap_UESecurityCapabilities, + &ett_s1ap_UESidelinkAggregateMaximumBitrate, + &ett_s1ap_UL_CP_SecurityInformation, &ett_s1ap_UserLocationInformation, + &ett_s1ap_V2XServicesAuthorized, &ett_s1ap_WarningAreaList, &ett_s1ap_X2TNLConfigurationInfo, &ett_s1ap_ENBX2ExtTLAs, @@ -17172,6 +17802,7 @@ void proto_register_s1ap(void) { &ett_s1ap_UplinkNASTransport, &ett_s1ap_NASNonDeliveryIndication, &ett_s1ap_RerouteNASRequest, + &ett_s1ap_NASDeliveryIndication, &ett_s1ap_Reset, &ett_s1ap_ResetType, &ett_s1ap_UE_associatedLogicalS1_ConnectionListRes, @@ -17234,6 +17865,10 @@ void proto_register_s1ap(void) { &ett_s1ap_E_RABFailedToResumeItemResumeRes, &ett_s1ap_UEContextResumeFailure, &ett_s1ap_ConnectionEstablishmentIndication, + &ett_s1ap_RetrieveUEInformation, + &ett_s1ap_UEInformationTransfer, + &ett_s1ap_ENBCPRelocationIndication, + &ett_s1ap_MMECPRelocationIndication, &ett_s1ap_S1AP_PDU, &ett_s1ap_InitiatingMessage, &ett_s1ap_SuccessfulOutcome, |