|
|
|
@ -8,7 +8,7 @@
|
|
|
|
|
#line 1 "./asn1/e1ap/packet-e1ap-template.c"
|
|
|
|
|
/* packet-e1ap.c
|
|
|
|
|
* Routines for E-UTRAN E1 Application Protocol (E1AP) packet dissection
|
|
|
|
|
* Copyright 2018-2020, Pascal Quantin <pascal@wireshark.org>
|
|
|
|
|
* Copyright 2018-2022, Pascal Quantin <pascal@wireshark.org>
|
|
|
|
|
*
|
|
|
|
|
* Wireshark - Network traffic analyzer
|
|
|
|
|
* By Gerald Combs <gerald@wireshark.org>
|
|
|
|
@ -16,7 +16,7 @@
|
|
|
|
|
*
|
|
|
|
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
|
*
|
|
|
|
|
* References: 3GPP TS 38.463 V16.6.0 (2021-07)
|
|
|
|
|
* References: 3GPP TS 38.463 V16.8.0 (2021-12)
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include "config.h"
|
|
|
|
@ -243,7 +243,9 @@ typedef enum _ProtocolIE_ID_enum {
|
|
|
|
|
id_DataForwardingtoNG_RANQoSFlowInformationList = 136,
|
|
|
|
|
id_MaxCIDEHCDL = 137,
|
|
|
|
|
id_ignoreMappingRuleIndication = 138,
|
|
|
|
|
id_DirectForwardingPathAvailability = 139
|
|
|
|
|
id_DirectForwardingPathAvailability = 139,
|
|
|
|
|
id_EarlyDataForwardingIndicator = 140,
|
|
|
|
|
id_QoSFlowsDRBRemapping = 141
|
|
|
|
|
} ProtocolIE_ID_enum;
|
|
|
|
|
|
|
|
|
|
/*--- End of included file: packet-e1ap-val.h ---*/
|
|
|
|
@ -309,6 +311,7 @@ static int hf_e1ap_DRB_Required_To_Remove_List_EUTRAN_PDU = -1; /* DRB_Required
|
|
|
|
|
static int hf_e1ap_DRB_To_Setup_List_EUTRAN_PDU = -1; /* DRB_To_Setup_List_EUTRAN */
|
|
|
|
|
static int hf_e1ap_DRB_To_Setup_Mod_List_EUTRAN_PDU = -1; /* DRB_To_Setup_Mod_List_EUTRAN */
|
|
|
|
|
static int hf_e1ap_DataDiscardRequired_PDU = -1; /* DataDiscardRequired */
|
|
|
|
|
static int hf_e1ap_EarlyDataForwardingIndicator_PDU = -1; /* EarlyDataForwardingIndicator */
|
|
|
|
|
static int hf_e1ap_EarlyForwardingCOUNTInfo_PDU = -1; /* EarlyForwardingCOUNTInfo */
|
|
|
|
|
static int hf_e1ap_EarlyForwardingCOUNTReq_PDU = -1; /* EarlyForwardingCOUNTReq */
|
|
|
|
|
static int hf_e1ap_EHC_Parameters_PDU = -1; /* EHC_Parameters */
|
|
|
|
@ -357,6 +360,7 @@ static int hf_e1ap_PPI_PDU = -1; /* PPI */
|
|
|
|
|
static int hf_e1ap_PrivacyIndicator_PDU = -1; /* PrivacyIndicator */
|
|
|
|
|
static int hf_e1ap_QoS_Flow_List_PDU = -1; /* QoS_Flow_List */
|
|
|
|
|
static int hf_e1ap_QoS_Flow_Mapping_Indication_PDU = -1; /* QoS_Flow_Mapping_Indication */
|
|
|
|
|
static int hf_e1ap_QoS_Flows_DRB_Remapping_PDU = -1; /* QoS_Flows_DRB_Remapping */
|
|
|
|
|
static int hf_e1ap_QoSFlowLevelQoSParameters_PDU = -1; /* QoSFlowLevelQoSParameters */
|
|
|
|
|
static int hf_e1ap_QosMonitoringRequest_PDU = -1; /* QosMonitoringRequest */
|
|
|
|
|
static int hf_e1ap_QosMonitoringReportingFrequency_PDU = -1; /* QosMonitoringReportingFrequency */
|
|
|
|
@ -1497,6 +1501,8 @@ static const value_string e1ap_ProtocolIE_ID_vals[] = {
|
|
|
|
|
{ id_MaxCIDEHCDL, "id-MaxCIDEHCDL" },
|
|
|
|
|
{ id_ignoreMappingRuleIndication, "id-ignoreMappingRuleIndication" },
|
|
|
|
|
{ id_DirectForwardingPathAvailability, "id-DirectForwardingPathAvailability" },
|
|
|
|
|
{ id_EarlyDataForwardingIndicator, "id-EarlyDataForwardingIndicator" },
|
|
|
|
|
{ id_QoSFlowsDRBRemapping, "id-QoSFlowsDRBRemapping" },
|
|
|
|
|
{ 0, NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
@ -2345,7 +2351,7 @@ dissect_e1ap_ConfidentialityProtectionResult(tvbuff_t *tvb _U_, int offset _U_,
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 586 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 590 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
tvbuff_t *param_tvb = NULL;
|
|
|
|
|
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
|
|
|
|
|
1, 160, TRUE, NULL, 0, ¶m_tvb, NULL);
|
|
|
|
@ -2735,7 +2741,7 @@ dissect_e1ap_T_secondaryRATType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_T_startTimeStamp_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 609 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 613 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
tvbuff_t *timestamp_tvb = NULL;
|
|
|
|
|
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
|
|
|
|
4, 4, FALSE, ×tamp_tvb);
|
|
|
|
@ -2743,7 +2749,7 @@ dissect_e1ap_T_startTimeStamp_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#line 613 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 617 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
if (timestamp_tvb) {
|
|
|
|
|
proto_item_append_text(actx->created_item, " (%s)", tvb_ntp_fmt_ts_sec(timestamp_tvb, 0));
|
|
|
|
|
}
|
|
|
|
@ -2756,7 +2762,7 @@ dissect_e1ap_T_startTimeStamp_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_T_endTimeStamp_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 618 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 622 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
tvbuff_t *timestamp_tvb = NULL;
|
|
|
|
|
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
|
|
|
|
4, 4, FALSE, ×tamp_tvb);
|
|
|
|
@ -2764,7 +2770,7 @@ dissect_e1ap_T_endTimeStamp_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#line 622 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 626 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
if (timestamp_tvb) {
|
|
|
|
|
proto_item_append_text(actx->created_item, " (%s)", tvb_ntp_fmt_ts_sec(timestamp_tvb, 0));
|
|
|
|
|
}
|
|
|
|
@ -2882,7 +2888,7 @@ dissect_e1ap_Data_Usage_per_QoS_Flow_List(tvbuff_t *tvb _U_, int offset _U_, asn
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_T_startTimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 547 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 551 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
tvbuff_t *timestamp_tvb = NULL;
|
|
|
|
|
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
|
|
|
|
4, 4, FALSE, ×tamp_tvb);
|
|
|
|
@ -2890,7 +2896,7 @@ dissect_e1ap_T_startTimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#line 551 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 555 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
if (timestamp_tvb) {
|
|
|
|
|
proto_item_append_text(actx->created_item, " (%s)", tvb_ntp_fmt_ts_sec(timestamp_tvb, 0));
|
|
|
|
|
}
|
|
|
|
@ -2903,7 +2909,7 @@ dissect_e1ap_T_startTimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_T_endTimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 556 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 560 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
tvbuff_t *timestamp_tvb = NULL;
|
|
|
|
|
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
|
|
|
|
4, 4, FALSE, ×tamp_tvb);
|
|
|
|
@ -2911,7 +2917,7 @@ dissect_e1ap_T_endTimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#line 560 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 564 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
if (timestamp_tvb) {
|
|
|
|
|
proto_item_append_text(actx->created_item, " (%s)", tvb_ntp_fmt_ts_sec(timestamp_tvb, 0));
|
|
|
|
|
}
|
|
|
|
@ -3002,6 +3008,7 @@ dissect_e1ap_DefaultDRB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
|
|
|
|
|
|
|
|
|
|
static const value_string e1ap_DirectForwardingPathAvailability_vals[] = {
|
|
|
|
|
{ 0, "inter-system-direct-path-available" },
|
|
|
|
|
{ 1, "intra-system-direct-path-available" },
|
|
|
|
|
{ 0, NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
@ -3009,7 +3016,7 @@ static const value_string e1ap_DirectForwardingPathAvailability_vals[] = {
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_DirectForwardingPathAvailability(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);
|
|
|
|
|
1, NULL, TRUE, 1, NULL);
|
|
|
|
|
|
|
|
|
|
return offset;
|
|
|
|
|
}
|
|
|
|
@ -5179,6 +5186,21 @@ dissect_e1ap_DataDiscardRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static const value_string e1ap_EarlyDataForwardingIndicator_vals[] = {
|
|
|
|
|
{ 0, "stop" },
|
|
|
|
|
{ 0, NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_EarlyDataForwardingIndicator(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 FirstDLCount_sequence[] = {
|
|
|
|
|
{ &hf_e1ap_firstDLCountVal, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_PDCP_Count },
|
|
|
|
|
{ &hf_e1ap_iE_Extensions , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
|
|
|
|
@ -5355,7 +5377,7 @@ dissect_e1ap_EncryptionKey(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_PortNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 537 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 541 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
|
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
|
|
|
|
|
16, 16, FALSE, NULL, 0, ¶meter_tvb, NULL);
|
|
|
|
@ -5903,7 +5925,7 @@ dissect_e1ap_IntegrityProtectionResult(tvbuff_t *tvb _U_, int offset _U_, asn1_c
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_InterfacesToTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 639 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 643 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
tvbuff_t *param_tvb = NULL;
|
|
|
|
|
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
|
|
|
|
|
8, 8, FALSE, NULL, 0, ¶m_tvb, NULL);
|
|
|
|
@ -5931,7 +5953,7 @@ dissect_e1ap_InterfacesToTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_MeasurementsToActivate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 659 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 663 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
tvbuff_t *param_tvb = NULL;
|
|
|
|
|
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
|
|
|
|
|
8, 8, FALSE, NULL, 0, ¶m_tvb, NULL);
|
|
|
|
@ -6209,7 +6231,7 @@ dissect_e1ap_MDT_Configuration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 518 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 522 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
tvbuff_t *param_tvb = NULL;
|
|
|
|
|
e1ap_private_data_t *e1ap_data = e1ap_get_private_data(actx->pinfo);
|
|
|
|
|
e212_number_type_t number_type = e1ap_data->number_type;
|
|
|
|
@ -6399,7 +6421,7 @@ static const per_sequence_t NR_CGI_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_NR_CGI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 529 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 533 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
e1ap_private_data_t *e1ap_data = e1ap_get_private_data(actx->pinfo);
|
|
|
|
|
e1ap_data->number_type = E212_NRCGI;
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -7041,6 +7063,22 @@ dissect_e1ap_PrivacyIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static const value_string e1ap_QoS_Flows_DRB_Remapping_vals[] = {
|
|
|
|
|
{ 0, "update" },
|
|
|
|
|
{ 1, "source-configuration" },
|
|
|
|
|
{ 0, NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_QoS_Flows_DRB_Remapping(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 QoS_Parameters_Support_List_sequence[] = {
|
|
|
|
|
{ &hf_e1ap_eUTRAN_QoS_Support_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_EUTRAN_QoS_Support_List },
|
|
|
|
|
{ &hf_e1ap_nG_RAN_QoS_Support_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_NG_RAN_QoS_Support_List },
|
|
|
|
@ -7253,7 +7291,7 @@ dissect_e1ap_RegistrationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_ReportCharacteristics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 675 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 679 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
tvbuff_t *parameter_tvb = NULL;
|
|
|
|
|
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
|
|
|
|
|
36, 36, FALSE, NULL, 0, ¶meter_tvb, NULL);
|
|
|
|
@ -7438,7 +7476,7 @@ dissect_e1ap_Periodicity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_BurstArrivalTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 692 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 696 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
tvbuff_t *param_tvb = NULL;
|
|
|
|
|
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
|
|
|
|
NO_BOUND, NO_BOUND, FALSE, ¶m_tvb);
|
|
|
|
@ -7659,7 +7697,7 @@ static const per_sequence_t Reset_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_Reset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 706 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 710 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Reset");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -7729,7 +7767,7 @@ static const per_sequence_t ResetAcknowledge_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_ResetAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 708 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 712 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetAcknowledge");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -7760,7 +7798,7 @@ static const per_sequence_t ErrorIndication_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_ErrorIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 710 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 714 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ErrorIndication");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -7777,7 +7815,7 @@ static const per_sequence_t GNB_CU_UP_E1SetupRequest_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_GNB_CU_UP_E1SetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 712 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 716 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-UP-E1SetupRequest");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -7826,7 +7864,7 @@ static const per_sequence_t GNB_CU_UP_E1SetupResponse_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_GNB_CU_UP_E1SetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 714 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 718 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-UP-E1SetupResponse");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -7843,7 +7881,7 @@ static const per_sequence_t GNB_CU_UP_E1SetupFailure_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_GNB_CU_UP_E1SetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 716 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 720 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-UP-E1SetupFailure");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -7860,7 +7898,7 @@ static const per_sequence_t GNB_CU_CP_E1SetupRequest_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_GNB_CU_CP_E1SetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 718 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 722 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-CP-E1SetupRequest");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -7877,7 +7915,7 @@ static const per_sequence_t GNB_CU_CP_E1SetupResponse_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_GNB_CU_CP_E1SetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 720 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 724 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-CP-E1SetupResponse");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -7894,7 +7932,7 @@ static const per_sequence_t GNB_CU_CP_E1SetupFailure_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_GNB_CU_CP_E1SetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 722 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 726 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-CP-E1SetupFailure");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -7911,7 +7949,7 @@ static const per_sequence_t GNB_CU_UP_ConfigurationUpdate_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_GNB_CU_UP_ConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 724 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 728 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-UP-ConfigurationUpdate");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -7942,7 +7980,7 @@ static const per_sequence_t GNB_CU_UP_ConfigurationUpdateAcknowledge_sequence[]
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_GNB_CU_UP_ConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 726 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 730 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-UP-ConfigurationUpdateAcknowledge");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -7959,7 +7997,7 @@ static const per_sequence_t GNB_CU_UP_ConfigurationUpdateFailure_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_GNB_CU_UP_ConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 728 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 732 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-UP-ConfigurationUpdateFailure");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -7976,7 +8014,7 @@ static const per_sequence_t GNB_CU_CP_ConfigurationUpdate_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_GNB_CU_CP_ConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 730 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 734 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-CP-ConfigurationUpdate");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8035,7 +8073,7 @@ static const per_sequence_t GNB_CU_CP_ConfigurationUpdateAcknowledge_sequence[]
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_GNB_CU_CP_ConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 732 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 736 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-CP-ConfigurationUpdateAcknowledge");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8080,7 +8118,7 @@ static const per_sequence_t GNB_CU_CP_ConfigurationUpdateFailure_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_GNB_CU_CP_ConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 734 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 738 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-CP-ConfigurationUpdateFailure");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8097,7 +8135,7 @@ static const per_sequence_t E1ReleaseRequest_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_E1ReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 736 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 740 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E1ReleaseRequest");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8114,7 +8152,7 @@ static const per_sequence_t E1ReleaseResponse_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_E1ReleaseResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 738 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 742 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E1ReleaseResponse");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8131,7 +8169,7 @@ static const per_sequence_t BearerContextSetupRequest_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_BearerContextSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 740 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 744 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextSetupRequest");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8172,7 +8210,7 @@ static const per_sequence_t BearerContextSetupResponse_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_BearerContextSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 742 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 746 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextSetupResponse");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8213,7 +8251,7 @@ static const per_sequence_t BearerContextSetupFailure_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_BearerContextSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 744 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 748 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextSetupFailure");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8230,7 +8268,7 @@ static const per_sequence_t BearerContextModificationRequest_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_BearerContextModificationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 746 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 750 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextModificationRequest");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8271,7 +8309,7 @@ static const per_sequence_t BearerContextModificationResponse_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_BearerContextModificationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 748 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 752 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextModificationResponse");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8312,7 +8350,7 @@ static const per_sequence_t BearerContextModificationFailure_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_BearerContextModificationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 750 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 754 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextModificationFailure");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8329,7 +8367,7 @@ static const per_sequence_t BearerContextModificationRequired_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_BearerContextModificationRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 752 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 756 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextModificationRequired");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8370,7 +8408,7 @@ static const per_sequence_t BearerContextModificationConfirm_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_BearerContextModificationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 754 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 758 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextModificationConfirm");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8411,7 +8449,7 @@ static const per_sequence_t BearerContextReleaseCommand_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_BearerContextReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 756 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 760 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextReleaseCommand");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8428,7 +8466,7 @@ static const per_sequence_t BearerContextReleaseComplete_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_BearerContextReleaseComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 758 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 762 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextReleaseComplete");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8445,7 +8483,7 @@ static const per_sequence_t BearerContextReleaseRequest_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_BearerContextReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 760 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 764 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextReleaseRequest");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8476,7 +8514,7 @@ static const per_sequence_t BearerContextInactivityNotification_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_BearerContextInactivityNotification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 762 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 766 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "BearerContextInactivityNotification");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8493,7 +8531,7 @@ static const per_sequence_t DLDataNotification_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_DLDataNotification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 764 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 768 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DLDataNotification");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8510,7 +8548,7 @@ static const per_sequence_t ULDataNotification_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_ULDataNotification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 766 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 770 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ULDataNotification");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8527,7 +8565,7 @@ static const per_sequence_t DataUsageReport_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_DataUsageReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 768 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 772 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DataUsageReport");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8544,7 +8582,7 @@ static const per_sequence_t GNB_CU_UP_CounterCheckRequest_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_GNB_CU_UP_CounterCheckRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 770 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 774 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-UP-CounterCheckRequest");
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-UP-CounterCheckRequest");
|
|
|
|
|
|
|
|
|
@ -8600,7 +8638,7 @@ static const per_sequence_t GNB_CU_CPMeasurementResultsInformation_sequence[] =
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_GNB_CU_CPMeasurementResultsInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 776 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 780 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNB-CU-CPMeasurementResultsInformation");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8617,7 +8655,7 @@ static const per_sequence_t MRDC_DataUsageReport_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_MRDC_DataUsageReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 778 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 782 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MRDC-DataUsageReport");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8634,7 +8672,7 @@ static const per_sequence_t TraceStart_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_TraceStart(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 782 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 786 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "TraceStart");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8651,7 +8689,7 @@ static const per_sequence_t DeactivateTrace_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_DeactivateTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 780 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 784 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DeactivateTrace");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8668,7 +8706,7 @@ static const per_sequence_t CellTrafficTrace_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_CellTrafficTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 798 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 802 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CellTrafficTrace");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8685,7 +8723,7 @@ static const per_sequence_t PrivateMessage_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 774 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 778 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PrivateMessage");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8702,7 +8740,7 @@ static const per_sequence_t ResourceStatusRequest_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_ResourceStatusRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 784 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 788 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResourceStatusRequest");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8729,7 +8767,7 @@ static const per_sequence_t ResourceStatusResponse_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_ResourceStatusResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 786 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 790 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResourceStatusResponse");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8746,7 +8784,7 @@ static const per_sequence_t ResourceStatusFailure_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_ResourceStatusFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 788 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 792 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResourceStatusFailure");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8763,7 +8801,7 @@ static const per_sequence_t ResourceStatusUpdate_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_ResourceStatusUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 790 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 794 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResourceStatusUpdate");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8780,7 +8818,7 @@ static const per_sequence_t IAB_UPTNLAddressUpdate_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_IAB_UPTNLAddressUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 792 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 796 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "IAB-UPTNLAddressUpdate");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8811,7 +8849,7 @@ static const per_sequence_t IAB_UPTNLAddressUpdateAcknowledge_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_IAB_UPTNLAddressUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 794 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 798 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "IAB-UPTNLAddressUpdateAcknowledge");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8842,7 +8880,7 @@ static const per_sequence_t IAB_UPTNLAddressUpdateFailure_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_IAB_UPTNLAddressUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 796 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 800 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "IAB-UPTNLAddressUpdateFailure");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -8859,7 +8897,7 @@ static const per_sequence_t EarlyForwardingSNTransfer_sequence[] = {
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
dissect_e1ap_EarlyForwardingSNTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
|
#line 800 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
#line 804 "./asn1/e1ap/e1ap.cnf"
|
|
|
|
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "EarlyForwardingSNTransfer");
|
|
|
|
|
|
|
|
|
|
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
|
|
|
@ -9277,6 +9315,14 @@ static int dissect_DataDiscardRequired_PDU(tvbuff_t *tvb _U_, packet_info *pinfo
|
|
|
|
|
offset += 7; offset >>= 3;
|
|
|
|
|
return offset;
|
|
|
|
|
}
|
|
|
|
|
static int dissect_EarlyDataForwardingIndicator_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_e1ap_EarlyDataForwardingIndicator(tvb, offset, &asn1_ctx, tree, hf_e1ap_EarlyDataForwardingIndicator_PDU);
|
|
|
|
|
offset += 7; offset >>= 3;
|
|
|
|
|
return offset;
|
|
|
|
|
}
|
|
|
|
|
static int dissect_EarlyForwardingCOUNTInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
|
|
|
|
|
int offset = 0;
|
|
|
|
|
asn1_ctx_t asn1_ctx;
|
|
|
|
@ -9661,6 +9707,14 @@ static int dissect_QoS_Flow_Mapping_Indication_PDU(tvbuff_t *tvb _U_, packet_inf
|
|
|
|
|
offset += 7; offset >>= 3;
|
|
|
|
|
return offset;
|
|
|
|
|
}
|
|
|
|
|
static int dissect_QoS_Flows_DRB_Remapping_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_e1ap_QoS_Flows_DRB_Remapping(tvb, offset, &asn1_ctx, tree, hf_e1ap_QoS_Flows_DRB_Remapping_PDU);
|
|
|
|
|
offset += 7; offset >>= 3;
|
|
|
|
|
return offset;
|
|
|
|
|
}
|
|
|
|
|
static int dissect_QoSFlowLevelQoSParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
|
|
|
|
|
int offset = 0;
|
|
|
|
|
asn1_ctx_t asn1_ctx;
|
|
|
|
@ -10748,6 +10802,10 @@ void proto_register_e1ap(void) {
|
|
|
|
|
{ "DataDiscardRequired", "e1ap.DataDiscardRequired",
|
|
|
|
|
FT_UINT32, BASE_DEC, VALS(e1ap_DataDiscardRequired_vals), 0,
|
|
|
|
|
NULL, HFILL }},
|
|
|
|
|
{ &hf_e1ap_EarlyDataForwardingIndicator_PDU,
|
|
|
|
|
{ "EarlyDataForwardingIndicator", "e1ap.EarlyDataForwardingIndicator",
|
|
|
|
|
FT_UINT32, BASE_DEC, VALS(e1ap_EarlyDataForwardingIndicator_vals), 0,
|
|
|
|
|
NULL, HFILL }},
|
|
|
|
|
{ &hf_e1ap_EarlyForwardingCOUNTInfo_PDU,
|
|
|
|
|
{ "EarlyForwardingCOUNTInfo", "e1ap.EarlyForwardingCOUNTInfo",
|
|
|
|
|
FT_UINT32, BASE_DEC, VALS(e1ap_EarlyForwardingCOUNTInfo_vals), 0,
|
|
|
|
@ -10940,6 +10998,10 @@ void proto_register_e1ap(void) {
|
|
|
|
|
{ "QoS-Flow-Mapping-Indication", "e1ap.QoS_Flow_Mapping_Indication",
|
|
|
|
|
FT_UINT32, BASE_DEC, VALS(e1ap_QoS_Flow_Mapping_Indication_vals), 0,
|
|
|
|
|
NULL, HFILL }},
|
|
|
|
|
{ &hf_e1ap_QoS_Flows_DRB_Remapping_PDU,
|
|
|
|
|
{ "QoS-Flows-DRB-Remapping", "e1ap.QoS_Flows_DRB_Remapping",
|
|
|
|
|
FT_UINT32, BASE_DEC, VALS(e1ap_QoS_Flows_DRB_Remapping_vals), 0,
|
|
|
|
|
NULL, HFILL }},
|
|
|
|
|
{ &hf_e1ap_QoSFlowLevelQoSParameters_PDU,
|
|
|
|
|
{ "QoSFlowLevelQoSParameters", "e1ap.QoSFlowLevelQoSParameters_element",
|
|
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
|
|
|
@ -13400,6 +13462,8 @@ proto_reg_handoff_e1ap(void)
|
|
|
|
|
dissector_add_uint("e1ap.extension", id_DataForwardingtoNG_RANQoSFlowInformationList, create_dissector_handle(dissect_DataForwardingtoNG_RANQoSFlowInformationList_PDU, proto_e1ap));
|
|
|
|
|
dissector_add_uint("e1ap.extension", id_MaxCIDEHCDL, create_dissector_handle(dissect_MaxCIDEHCDL_PDU, proto_e1ap));
|
|
|
|
|
dissector_add_uint("e1ap.extension", id_ignoreMappingRuleIndication, create_dissector_handle(dissect_IgnoreMappingRuleIndication_PDU, proto_e1ap));
|
|
|
|
|
dissector_add_uint("e1ap.extension", id_EarlyDataForwardingIndicator, create_dissector_handle(dissect_EarlyDataForwardingIndicator_PDU, proto_e1ap));
|
|
|
|
|
dissector_add_uint("e1ap.extension", id_QoSFlowsDRBRemapping, create_dissector_handle(dissect_QoS_Flows_DRB_Remapping_PDU, proto_e1ap));
|
|
|
|
|
dissector_add_uint("e1ap.proc.imsg", id_reset, create_dissector_handle(dissect_Reset_PDU, proto_e1ap));
|
|
|
|
|
dissector_add_uint("e1ap.proc.sout", id_reset, create_dissector_handle(dissect_ResetAcknowledge_PDU, proto_e1ap));
|
|
|
|
|
dissector_add_uint("e1ap.proc.imsg", id_errorIndication, create_dissector_handle(dissect_ErrorIndication_PDU, proto_e1ap));
|
|
|
|
|