aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-x2ap.c
diff options
context:
space:
mode:
authorPascal Quantin <pascal@wireshark.org>2022-01-03 16:31:50 +0100
committerA Wireshark GitLab Utility <gerald+gitlab-utility@wireshark.org>2022-01-03 15:39:36 +0000
commit60dd63892a925e2f0648a20b1fbf4c876b5cf03e (patch)
tree49f1214125f7eb4dbfb7b01e110ac02f1556012c /epan/dissectors/packet-x2ap.c
parentcc725c0f93ff1a434d7f386d8de86556cdc747d5 (diff)
X2AP: upgrade dissector to v16.8.0
Diffstat (limited to 'epan/dissectors/packet-x2ap.c')
-rw-r--r--epan/dissectors/packet-x2ap.c123
1 files changed, 115 insertions, 8 deletions
diff --git a/epan/dissectors/packet-x2ap.c b/epan/dissectors/packet-x2ap.c
index f83b308bf3..72ff664e67 100644
--- a/epan/dissectors/packet-x2ap.c
+++ b/epan/dissectors/packet-x2ap.c
@@ -11,7 +11,7 @@
* X2 Application Protocol (X2AP);
* 3GPP TS 36.423 packet dissection
* Copyright 2007-2014, Anders Broman <anders.broman@ericsson.com>
- * Copyright 2016-2021, Pascal Quantin <pascal@wireshark.org>
+ * Copyright 2016-2022, Pascal Quantin <pascal@wireshark.org>
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -20,7 +20,7 @@
* SPDX-License-Identifier: GPL-2.0-or-later
*
* Ref:
- * 3GPP TS 36.423 V16.7.0 (2021-10)
+ * 3GPP TS 36.423 V16.8.0 (2021-12)
*/
#include "config.h"
@@ -589,7 +589,10 @@ typedef enum _ProtocolIE_ID_enum {
id_TraceCollectionEntityURI = 405,
id_SFN_Offset = 406,
id_CHO_DC_EarlyDataForwarding = 407,
- id_IMSvoiceEPSfallbackfrom5G = 408
+ id_IMSvoiceEPSfallbackfrom5G = 408,
+ id_AdditionLocationInformation = 409,
+ id_DirectForwardingPathAvailability = 410,
+ id_sourceNG_RAN_node_id = 411
} ProtocolIE_ID_enum;
/*--- End of included file: packet-x2ap-val.h ---*/
@@ -674,6 +677,7 @@ static int hf_x2ap_ReportCharacteristics_ENDC_PDU = -1;
static int hf_x2ap_ABSInformation_PDU = -1; /* ABSInformation */
static int hf_x2ap_ABS_Status_PDU = -1; /* ABS_Status */
static int hf_x2ap_ActivationID_PDU = -1; /* ActivationID */
+static int hf_x2ap_AdditionLocationInformation_PDU = -1; /* AdditionLocationInformation */
static int hf_x2ap_AdditionalRRMPriorityIndex_PDU = -1; /* AdditionalRRMPriorityIndex */
static int hf_x2ap_AdditionalSpecialSubframe_Info_PDU = -1; /* AdditionalSpecialSubframe_Info */
static int hf_x2ap_AdditionalSpecialSubframeExtension_Info_PDU = -1; /* AdditionalSpecialSubframeExtension_Info */
@@ -710,6 +714,7 @@ static int hf_x2ap_DAPSRequestInfo_PDU = -1; /* DAPSRequestInfo */
static int hf_x2ap_DAPSResponseInfo_PDU = -1; /* DAPSResponseInfo */
static int hf_x2ap_DeactivationIndication_PDU = -1; /* DeactivationIndication */
static int hf_x2ap_DesiredActNotificationLevel_PDU = -1; /* DesiredActNotificationLevel */
+static int hf_x2ap_DirectForwardingPathAvailability_PDU = -1; /* DirectForwardingPathAvailability */
static int hf_x2ap_DL_Forwarding_PDU = -1; /* DL_Forwarding */
static int hf_x2ap_DL_scheduling_PDCCH_CCE_usage_PDU = -1; /* DL_scheduling_PDCCH_CCE_usage */
static int hf_x2ap_DuplicationActivation_PDU = -1; /* DuplicationActivation */
@@ -735,6 +740,7 @@ static int hf_x2ap_FreqBandIndicatorPriority_PDU = -1; /* FreqBandIndicatorPrio
static int hf_x2ap_FrequencyShift7p5khz_PDU = -1; /* FrequencyShift7p5khz */
static int hf_x2ap_GlobalENB_ID_PDU = -1; /* GlobalENB_ID */
static int hf_x2ap_GlobalGNB_ID_PDU = -1; /* GlobalGNB_ID */
+static int hf_x2ap_Global_RAN_NODE_ID_PDU = -1; /* Global_RAN_NODE_ID */
static int hf_x2ap_GNBOverloadInformation_PDU = -1; /* GNBOverloadInformation */
static int hf_x2ap_GTPtunnelEndpoint_PDU = -1; /* GTPtunnelEndpoint */
static int hf_x2ap_GUGroupIDList_PDU = -1; /* GUGroupIDList */
@@ -1317,6 +1323,8 @@ static int hf_x2ap_e_RAB_GuaranteedBitrateDL = -1; /* BitRate */
static int hf_x2ap_e_RAB_GuaranteedBitrateUL = -1; /* BitRate */
static int hf_x2ap_eNB_ID = -1; /* ENB_ID */
static int hf_x2ap_gNB_ID = -1; /* GNB_ID */
+static int hf_x2ap_gNB = -1; /* GlobalGNB_ID */
+static int hf_x2ap_choice_extension = -1; /* ProtocolIE_Single_Container */
static int hf_x2ap_GTPTLAs_item = -1; /* GTPTLA_Item */
static int hf_x2ap_gTPTransportLayerAddresses = -1; /* TransportLayerAddress */
static int hf_x2ap_transportLayerAddress = -1; /* TransportLayerAddress */
@@ -1527,7 +1535,6 @@ static int hf_x2ap_ssbAreaULSchedulingPDCCHCCEUsage = -1; /* INTEGER_0_100 */
static int hf_x2ap_shortBitmap = -1; /* BIT_STRING_SIZE_4 */
static int hf_x2ap_mediumBitmap = -1; /* BIT_STRING_SIZE_8 */
static int hf_x2ap_longBitmap = -1; /* BIT_STRING_SIZE_64 */
-static int hf_x2ap_choice_extension = -1; /* ProtocolIE_Single_Container */
static int hf_x2ap_four_bitCQI = -1; /* INTEGER_0_15_ */
static int hf_x2ap_two_bitSubbandDifferentialCQI = -1; /* INTEGER_0_3_ */
static int hf_x2ap_two_bitDifferentialCQI = -1; /* INTEGER_0_3_ */
@@ -2025,6 +2032,7 @@ static gint ett_x2ap_SEQUENCE_SIZE_0_maxnoofNrCellBands_OF_SupportedSULFreqBandI
static gint ett_x2ap_GBR_QosInformation = -1;
static gint ett_x2ap_GlobalENB_ID = -1;
static gint ett_x2ap_GlobalGNB_ID = -1;
+static gint ett_x2ap_Global_RAN_NODE_ID = -1;
static gint ett_x2ap_GTPTLAs = -1;
static gint ett_x2ap_GTPTLA_Item = -1;
static gint ett_x2ap_GTPtunnelEndpoint = -1;
@@ -3173,6 +3181,9 @@ static const value_string x2ap_ProtocolIE_ID_vals[] = {
{ id_SFN_Offset, "id-SFN-Offset" },
{ id_CHO_DC_EarlyDataForwarding, "id-CHO-DC-EarlyDataForwarding" },
{ id_IMSvoiceEPSfallbackfrom5G, "id-IMSvoiceEPSfallbackfrom5G" },
+ { id_AdditionLocationInformation, "id-AdditionLocationInformation" },
+ { id_DirectForwardingPathAvailability, "id-DirectForwardingPathAvailability" },
+ { id_sourceNG_RAN_node_id, "id-sourceNG-RAN-node-id" },
{ 0, NULL }
};
@@ -3549,6 +3560,21 @@ dissect_x2ap_ActivationID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
}
+static const value_string x2ap_AdditionLocationInformation_vals[] = {
+ { 0, "includePSCell" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_x2ap_AdditionLocationInformation(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_x2ap_AdditionalRRMPriorityIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
@@ -6037,6 +6063,21 @@ dissect_x2ap_DesiredActNotificationLevel(tvbuff_t *tvb _U_, int offset _U_, asn1
}
+static const value_string x2ap_DirectForwardingPathAvailability_vals[] = {
+ { 0, "direct-path-available" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_x2ap_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);
+
+ return offset;
+}
+
+
static const value_string x2ap_DL_Forwarding_vals[] = {
{ 0, "dL-forwardingProposed" },
{ 0, NULL }
@@ -7692,6 +7733,28 @@ dissect_x2ap_GlobalGNB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
}
+static const value_string x2ap_Global_RAN_NODE_ID_vals[] = {
+ { 0, "gNB" },
+ { 1, "choice-extension" },
+ { 0, NULL }
+};
+
+static const per_choice_t Global_RAN_NODE_ID_choice[] = {
+ { 0, &hf_x2ap_gNB , ASN1_NO_EXTENSIONS , dissect_x2ap_GlobalGNB_ID },
+ { 1, &hf_x2ap_choice_extension, ASN1_NO_EXTENSIONS , dissect_x2ap_ProtocolIE_Single_Container },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_x2ap_Global_RAN_NODE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
+ ett_x2ap_Global_RAN_NODE_ID, Global_RAN_NODE_ID_choice,
+ NULL);
+
+ return offset;
+}
+
+
static const value_string x2ap_GNBOverloadInformation_vals[] = {
{ 0, "overloaded" },
{ 1, "not-overloaded" },
@@ -18343,6 +18406,14 @@ static int dissect_ActivationID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, p
offset += 7; offset >>= 3;
return offset;
}
+static int dissect_AdditionLocationInformation_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_x2ap_AdditionLocationInformation(tvb, offset, &asn1_ctx, tree, hf_x2ap_AdditionLocationInformation_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
static int dissect_AdditionalRRMPriorityIndex_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
@@ -18631,6 +18702,14 @@ static int dissect_DesiredActNotificationLevel_PDU(tvbuff_t *tvb _U_, packet_inf
offset += 7; offset >>= 3;
return offset;
}
+static int dissect_DirectForwardingPathAvailability_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_x2ap_DirectForwardingPathAvailability(tvb, offset, &asn1_ctx, tree, hf_x2ap_DirectForwardingPathAvailability_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
static int dissect_DL_Forwarding_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
@@ -18831,6 +18910,14 @@ static int dissect_GlobalGNB_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, p
offset += 7; offset >>= 3;
return offset;
}
+static int dissect_Global_RAN_NODE_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_x2ap_Global_RAN_NODE_ID(tvb, offset, &asn1_ctx, tree, hf_x2ap_Global_RAN_NODE_ID_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
static int dissect_GNBOverloadInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
@@ -22229,6 +22316,10 @@ void proto_register_x2ap(void) {
{ "ActivationID", "x2ap.ActivationID",
FT_UINT32, BASE_DEC, NULL, 0,
NULL, HFILL }},
+ { &hf_x2ap_AdditionLocationInformation_PDU,
+ { "AdditionLocationInformation", "x2ap.AdditionLocationInformation",
+ FT_UINT32, BASE_DEC, VALS(x2ap_AdditionLocationInformation_vals), 0,
+ NULL, HFILL }},
{ &hf_x2ap_AdditionalRRMPriorityIndex_PDU,
{ "AdditionalRRMPriorityIndex", "x2ap.AdditionalRRMPriorityIndex",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -22373,6 +22464,10 @@ void proto_register_x2ap(void) {
{ "DesiredActNotificationLevel", "x2ap.DesiredActNotificationLevel",
FT_UINT32, BASE_DEC, VALS(x2ap_DesiredActNotificationLevel_vals), 0,
NULL, HFILL }},
+ { &hf_x2ap_DirectForwardingPathAvailability_PDU,
+ { "DirectForwardingPathAvailability", "x2ap.DirectForwardingPathAvailability",
+ FT_UINT32, BASE_DEC, VALS(x2ap_DirectForwardingPathAvailability_vals), 0,
+ NULL, HFILL }},
{ &hf_x2ap_DL_Forwarding_PDU,
{ "DL-Forwarding", "x2ap.DL_Forwarding",
FT_UINT32, BASE_DEC, VALS(x2ap_DL_Forwarding_vals), 0,
@@ -22473,6 +22568,10 @@ void proto_register_x2ap(void) {
{ "GlobalGNB-ID", "x2ap.GlobalGNB_ID_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_x2ap_Global_RAN_NODE_ID_PDU,
+ { "Global-RAN-NODE-ID", "x2ap.Global_RAN_NODE_ID",
+ FT_UINT32, BASE_DEC, VALS(x2ap_Global_RAN_NODE_ID_vals), 0,
+ NULL, HFILL }},
{ &hf_x2ap_GNBOverloadInformation_PDU,
{ "GNBOverloadInformation", "x2ap.GNBOverloadInformation",
FT_UINT32, BASE_DEC, VALS(x2ap_GNBOverloadInformation_vals), 0,
@@ -24801,6 +24900,14 @@ void proto_register_x2ap(void) {
{ "gNB-ID", "x2ap.gNB_ID",
FT_UINT32, BASE_DEC, VALS(x2ap_GNB_ID_vals), 0,
NULL, HFILL }},
+ { &hf_x2ap_gNB,
+ { "gNB", "x2ap.gNB_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "GlobalGNB_ID", HFILL }},
+ { &hf_x2ap_choice_extension,
+ { "choice-extension", "x2ap.choice_extension_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ProtocolIE_Single_Container", HFILL }},
{ &hf_x2ap_GTPTLAs_item,
{ "GTPTLA-Item", "x2ap.GTPTLA_Item_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -25641,10 +25748,6 @@ void proto_register_x2ap(void) {
{ "longBitmap", "x2ap.longBitmap",
FT_BYTES, BASE_NONE, NULL, 0,
"BIT_STRING_SIZE_64", HFILL }},
- { &hf_x2ap_choice_extension,
- { "choice-extension", "x2ap.choice_extension_element",
- FT_NONE, BASE_NONE, NULL, 0,
- "ProtocolIE_Single_Container", HFILL }},
{ &hf_x2ap_four_bitCQI,
{ "four-bitCQI", "x2ap.four_bitCQI",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -27152,6 +27255,7 @@ void proto_register_x2ap(void) {
&ett_x2ap_GBR_QosInformation,
&ett_x2ap_GlobalENB_ID,
&ett_x2ap_GlobalGNB_ID,
+ &ett_x2ap_Global_RAN_NODE_ID,
&ett_x2ap_GTPTLAs,
&ett_x2ap_GTPTLA_Item,
&ett_x2ap_GTPtunnelEndpoint,
@@ -27958,6 +28062,8 @@ proto_reg_handoff_x2ap(void)
dissector_add_uint("x2ap.ies", id_CellToReport_E_UTRA_ENDC, create_dissector_handle(dissect_CellToReport_E_UTRA_ENDC_List_PDU, proto_x2ap));
dissector_add_uint("x2ap.ies", id_CellToReport_E_UTRA_ENDC_Item, create_dissector_handle(dissect_CellToReport_E_UTRA_ENDC_Item_PDU, proto_x2ap));
dissector_add_uint("x2ap.ies", id_CHO_DC_EarlyDataForwarding, create_dissector_handle(dissect_CHO_DC_EarlyDataForwarding_PDU, proto_x2ap));
+ dissector_add_uint("x2ap.ies", id_DirectForwardingPathAvailability, create_dissector_handle(dissect_DirectForwardingPathAvailability_PDU, proto_x2ap));
+ dissector_add_uint("x2ap.ies", id_sourceNG_RAN_node_id, create_dissector_handle(dissect_Global_RAN_NODE_ID_PDU, proto_x2ap));
dissector_add_uint("x2ap.extension", id_Number_of_Antennaports, create_dissector_handle(dissect_Number_of_Antennaports_PDU, proto_x2ap));
dissector_add_uint("x2ap.extension", id_CompositeAvailableCapacityGroup, create_dissector_handle(dissect_CompositeAvailableCapacityGroup_PDU, proto_x2ap));
dissector_add_uint("x2ap.extension", id_PRACH_Configuration, create_dissector_handle(dissect_PRACH_Configuration_PDU, proto_x2ap));
@@ -28078,6 +28184,7 @@ proto_reg_handoff_x2ap(void)
dissector_add_uint("x2ap.extension", id_TraceCollectionEntityURI, create_dissector_handle(dissect_URI_Address_PDU, proto_x2ap));
dissector_add_uint("x2ap.extension", id_SFN_Offset, create_dissector_handle(dissect_SFN_Offset_PDU, proto_x2ap));
dissector_add_uint("x2ap.extension", id_IMSvoiceEPSfallbackfrom5G, create_dissector_handle(dissect_IMSvoiceEPSfallbackfrom5G_PDU, proto_x2ap));
+ dissector_add_uint("x2ap.extension", id_AdditionLocationInformation, create_dissector_handle(dissect_AdditionLocationInformation_PDU, proto_x2ap));
dissector_add_uint("x2ap.proc.imsg", id_handoverPreparation, create_dissector_handle(dissect_HandoverRequest_PDU, proto_x2ap));
dissector_add_uint("x2ap.proc.sout", id_handoverPreparation, create_dissector_handle(dissect_HandoverRequestAcknowledge_PDU, proto_x2ap));
dissector_add_uint("x2ap.proc.uout", id_handoverPreparation, create_dissector_handle(dissect_HandoverPreparationFailure_PDU, proto_x2ap));