aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Quantin <pascal@wireshark.org>2022-01-03 19:07:23 +0100
committerA Wireshark GitLab Utility <gerald+gitlab-utility@wireshark.org>2022-01-03 18:48:52 +0000
commitce43234c5a3840602b4a2ae05e82d1d04d17f313 (patch)
treedfc9fd1ecc658055fda80a55e2ff8fefd68438aa
parentc50512abc35b1b06b133d8684cc191fce8cdc443 (diff)
E1AP: upgrade dissector to v16.8.0
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-CommonDataTypes.asn2
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-Constants.asn4
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-Containers.asn2
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-IEs.asn26
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-PDU-Contents.asn8
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-PDU-Descriptions.asn2
-rw-r--r--epan/dissectors/asn1/e1ap/e1ap.cnf4
-rw-r--r--epan/dissectors/asn1/e1ap/packet-e1ap-template.c4
-rw-r--r--epan/dissectors/packet-e1ap.c198
9 files changed, 165 insertions, 85 deletions
diff --git a/epan/dissectors/asn1/e1ap/E1AP-CommonDataTypes.asn b/epan/dissectors/asn1/e1ap/E1AP-CommonDataTypes.asn
index 0d96a85c81..4d489405c4 100644
--- a/epan/dissectors/asn1/e1ap/E1AP-CommonDataTypes.asn
+++ b/epan/dissectors/asn1/e1ap/E1AP-CommonDataTypes.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.463 V16.7.0 (2021-10)
+-- 3GPP TS 38.463 V16.8.0 (2021-12)
-- **************************************************************
--
-- Common definitions
diff --git a/epan/dissectors/asn1/e1ap/E1AP-Constants.asn b/epan/dissectors/asn1/e1ap/E1AP-Constants.asn
index 6a7496581a..fe3962df3b 100644
--- a/epan/dissectors/asn1/e1ap/E1AP-Constants.asn
+++ b/epan/dissectors/asn1/e1ap/E1AP-Constants.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.463 V16.7.0 (2021-10)
+-- 3GPP TS 38.463 V16.8.0 (2021-12)
-- **************************************************************
--
-- Constant definitions
@@ -232,6 +232,8 @@ id-DataForwardingtoNG-RANQoSFlowInformationList ProtocolIE-ID ::= 136
id-MaxCIDEHCDL ProtocolIE-ID ::= 137
id-ignoreMappingRuleIndication ProtocolIE-ID ::= 138
id-DirectForwardingPathAvailability ProtocolIE-ID ::= 139
+id-EarlyDataForwardingIndicator ProtocolIE-ID ::= 140
+id-QoSFlowsDRBRemapping ProtocolIE-ID ::= 141
END
diff --git a/epan/dissectors/asn1/e1ap/E1AP-Containers.asn b/epan/dissectors/asn1/e1ap/E1AP-Containers.asn
index 0d5b2d14da..99b544dcce 100644
--- a/epan/dissectors/asn1/e1ap/E1AP-Containers.asn
+++ b/epan/dissectors/asn1/e1ap/E1AP-Containers.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.463 V16.7.0 (2021-10)
+-- 3GPP TS 38.463 V16.8.0 (2021-12)
-- **************************************************************
--
-- Container definitions
diff --git a/epan/dissectors/asn1/e1ap/E1AP-IEs.asn b/epan/dissectors/asn1/e1ap/E1AP-IEs.asn
index 5ae007bb38..5d4f72bdbd 100644
--- a/epan/dissectors/asn1/e1ap/E1AP-IEs.asn
+++ b/epan/dissectors/asn1/e1ap/E1AP-IEs.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.463 V16.7.0 (2021-10)
+-- 3GPP TS 38.463 V16.8.0 (2021-12)
-- **************************************************************
--
-- Information Element Definitions
@@ -53,6 +53,8 @@ IMPORTS
id-DataForwardingtoNG-RANQoSFlowInformationList,
id-MaxCIDEHCDL,
id-ignoreMappingRuleIndication,
+ id-EarlyDataForwardingIndicator,
+ id-QoSFlowsDRBRemapping,
maxnoofQoSParaSets,
maxnoofErrors,
maxnoofSliceItems,
@@ -426,7 +428,8 @@ DefaultDRB ::= ENUMERATED {
DirectForwardingPathAvailability ::= ENUMERATED {
inter-system-direct-path-available,
- ...
+ ...,
+ intra-system-direct-path-available
}
DiscardTimer ::= ENUMERATED {ms10, ms20, ms30, ms40, ms50, ms60, ms75, ms100, ms150, ms200, ms250, ms300, ms500, ms750, ms1500, infinity}
@@ -831,9 +834,11 @@ DRB-To-Modify-Item-NG-RAN ::= SEQUENCE {
DRB-To-Modify-Item-NG-RAN-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
{ID id-OldQoSFlowMap-ULendmarkerexpected CRITICALITY reject EXTENSION QoS-Flow-List PRESENCE optional}|
- {ID id-DRB-QoS CRITICALITY ignore EXTENSION QoSFlowLevelQoSParameters PRESENCE optional}|
- {ID id-EarlyForwardingCOUNTReq CRITICALITY reject EXTENSION EarlyForwardingCOUNTReq PRESENCE optional}|
- {ID id-EarlyForwardingCOUNTInfo CRITICALITY reject EXTENSION EarlyForwardingCOUNTInfo PRESENCE optional},
+ {ID id-DRB-QoS CRITICALITY ignore EXTENSION QoSFlowLevelQoSParameters PRESENCE optional}|
+ {ID id-EarlyForwardingCOUNTReq CRITICALITY reject EXTENSION EarlyForwardingCOUNTReq PRESENCE optional}|
+ {ID id-EarlyForwardingCOUNTInfo CRITICALITY reject EXTENSION EarlyForwardingCOUNTInfo PRESENCE optional}|
+ {ID id-DAPSRequestInfo CRITICALITY ignore EXTENSION DAPSRequestInfo PRESENCE optional}|
+ {ID id-EarlyDataForwardingIndicator CRITICALITY ignore EXTENSION EarlyDataForwardingIndicator PRESENCE optional},
...
}
@@ -942,9 +947,10 @@ DRB-To-Setup-Item-NG-RAN ::= SEQUENCE {
}
DRB-To-Setup-Item-NG-RAN-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
- {ID id-DRB-QoS CRITICALITY ignore EXTENSION QoSFlowLevelQoSParameters PRESENCE optional}|
- {ID id-DAPSRequestInfo CRITICALITY ignore EXTENSION DAPSRequestInfo PRESENCE optional}|
- {ID id-ignoreMappingRuleIndication CRITICALITY reject EXTENSION IgnoreMappingRuleIndication PRESENCE optional},
+ {ID id-DRB-QoS CRITICALITY ignore EXTENSION QoSFlowLevelQoSParameters PRESENCE optional}|
+ {ID id-DAPSRequestInfo CRITICALITY ignore EXTENSION DAPSRequestInfo PRESENCE optional}|
+ {ID id-ignoreMappingRuleIndication CRITICALITY reject EXTENSION IgnoreMappingRuleIndication PRESENCE optional}|
+ {ID id-QoSFlowsDRBRemapping CRITICALITY reject EXTENSION QoS-Flows-DRB-Remapping PRESENCE optional},
...
}
@@ -1017,6 +1023,8 @@ DataDiscardRequired ::= ENUMERATED {
-- E
+EarlyDataForwardingIndicator ::= ENUMERATED {stop, ...}
+
EarlyForwardingCOUNTInfo ::= CHOICE {
firstDLCount FirstDLCount,
dLDiscardingCount DLDiscarding,
@@ -2088,6 +2096,8 @@ QoS-Flow-Mapping-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
QoS-Flow-Mapping-Indication ::= ENUMERATED {ul, dl, ...}
+QoS-Flows-DRB-Remapping ::= ENUMERATED {update, source-configuration, ...}
+
QoS-Parameters-Support-List ::= SEQUENCE {
eUTRAN-QoS-Support-List EUTRAN-QoS-Support-List OPTIONAL,
nG-RAN-QoS-Support-List NG-RAN-QoS-Support-List OPTIONAL,
diff --git a/epan/dissectors/asn1/e1ap/E1AP-PDU-Contents.asn b/epan/dissectors/asn1/e1ap/E1AP-PDU-Contents.asn
index 4d0a1ac7cc..34e778a768 100644
--- a/epan/dissectors/asn1/e1ap/E1AP-PDU-Contents.asn
+++ b/epan/dissectors/asn1/e1ap/E1AP-PDU-Contents.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.463 V16.7.0 (2021-10)
+-- 3GPP TS 38.463 V16.8.0 (2021-12)
-- **************************************************************
--
-- PDU definitions for E1AP
@@ -1335,8 +1335,8 @@ DeactivateTraceIEs E1AP-PROTOCOL-IES ::= {
-- **************************************************************
CellTrafficTrace ::= SEQUENCE {
- protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } },
- ...
+protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } },
+...
}
CellTrafficTraceIEs E1AP-PROTOCOL-IES ::= {
@@ -1345,7 +1345,7 @@ CellTrafficTraceIEs E1AP-PROTOCOL-IES ::= {
{ID id-TraceID CRITICALITY ignore TYPE TraceID PRESENCE mandatory}|
{ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE mandatory }|
{ID id-PrivacyIndicator CRITICALITY ignore TYPE PrivacyIndicator PRESENCE optional}|
- {ID id-URIaddress CRITICALITY ignore TYPE URIaddress PRESENCE optional},
+{ID id-URIaddress CRITICALITY ignore TYPE URIaddress PRESENCE optional},
...
}
diff --git a/epan/dissectors/asn1/e1ap/E1AP-PDU-Descriptions.asn b/epan/dissectors/asn1/e1ap/E1AP-PDU-Descriptions.asn
index d79c5d129d..0b10d31bdd 100644
--- a/epan/dissectors/asn1/e1ap/E1AP-PDU-Descriptions.asn
+++ b/epan/dissectors/asn1/e1ap/E1AP-PDU-Descriptions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.463 V16.7.0 (2021-10)
+-- 3GPP TS 38.463 V16.8.0 (2021-12)
-- **************************************************************
--
-- Elementary Procedure definitions
diff --git a/epan/dissectors/asn1/e1ap/e1ap.cnf b/epan/dissectors/asn1/e1ap/e1ap.cnf
index d856763ccd..30daf8a585 100644
--- a/epan/dissectors/asn1/e1ap/e1ap.cnf
+++ b/epan/dissectors/asn1/e1ap/e1ap.cnf
@@ -289,6 +289,8 @@ id-DataForwardingtoNG-RANQoSFlowInformationList ProtocolIE-ID
id-MaxCIDEHCDL ProtocolIE-ID
id-ignoreMappingRuleIndication ProtocolIE-ID
id-DirectForwardingPathAvailability ProtocolIE-ID
+id-EarlyDataForwardingIndicator ProtocolIE-ID
+id-QoSFlowsDRBRemapping ProtocolIE-ID
#.END
#.REGISTER
@@ -436,6 +438,8 @@ Extended-NR-CGI-Support-List N e1ap.extension id-Extended-NR-CGI
DataForwardingtoNG-RANQoSFlowInformationList N e1ap.extension id-DataForwardingtoNG-RANQoSFlowInformationList
MaxCIDEHCDL N e1ap.extension id-MaxCIDEHCDL
IgnoreMappingRuleIndication N e1ap.extension id-ignoreMappingRuleIndication
+EarlyDataForwardingIndicator N e1ap.extension id-EarlyDataForwardingIndicator
+QoS-Flows-DRB-Remapping N e1ap.extension id-QoSFlowsDRBRemapping
#E1AP-ELEMENTARY-PROCEDURE
Reset N e1ap.proc.imsg id-reset
diff --git a/epan/dissectors/asn1/e1ap/packet-e1ap-template.c b/epan/dissectors/asn1/e1ap/packet-e1ap-template.c
index 87daf9fc26..8b58ab32fa 100644
--- a/epan/dissectors/asn1/e1ap/packet-e1ap-template.c
+++ b/epan/dissectors/asn1/e1ap/packet-e1ap-template.c
@@ -1,6 +1,6 @@
/* 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>
@@ -8,7 +8,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"
diff --git a/epan/dissectors/packet-e1ap.c b/epan/dissectors/packet-e1ap.c
index baa95b89cc..b624b7d9e8 100644
--- a/epan/dissectors/packet-e1ap.c
+++ b/epan/dissectors/packet-e1ap.c
@@ -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, &param_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, &timestamp_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, &timestamp_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, &timestamp_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, &timestamp_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, &parameter_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, &param_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, &param_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, &parameter_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, &param_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));