From 4fd6630d9b9c7b25dd0638f93bdc4b2a6a5b00bc Mon Sep 17 00:00:00 2001 From: Pascal Quantin Date: Fri, 5 Apr 2024 11:12:14 +0200 Subject: [PATCH] XnAP: upgrade dissector to v17.8.0 --- .../asn1/xnap/XnAP-CommonDataTypes.asn | 2 +- epan/dissectors/asn1/xnap/XnAP-Constants.asn | 2 +- epan/dissectors/asn1/xnap/XnAP-Containers.asn | 2 +- epan/dissectors/asn1/xnap/XnAP-IEs.asn | 6 +-- .../asn1/xnap/XnAP-PDU-Contents.asn | 12 ++++-- .../asn1/xnap/XnAP-PDU-Descriptions.asn | 2 +- .../asn1/xnap/packet-xnap-template.c | 26 +++++++++++-- epan/dissectors/asn1/xnap/xnap.cnf | 10 +++++ epan/dissectors/packet-xnap.c | 39 +++++++++++++++++-- 9 files changed, 83 insertions(+), 18 deletions(-) diff --git a/epan/dissectors/asn1/xnap/XnAP-CommonDataTypes.asn b/epan/dissectors/asn1/xnap/XnAP-CommonDataTypes.asn index 75bdf3d889..bd564a140d 100644 --- a/epan/dissectors/asn1/xnap/XnAP-CommonDataTypes.asn +++ b/epan/dissectors/asn1/xnap/XnAP-CommonDataTypes.asn @@ -1,4 +1,4 @@ --- 3GPP TS 38.423 V17.7.0 (2023-12) +-- 3GPP TS 38.423 V17.8.0 (2024-03) -- 9.3.6 Common definitions -- ************************************************************** -- diff --git a/epan/dissectors/asn1/xnap/XnAP-Constants.asn b/epan/dissectors/asn1/xnap/XnAP-Constants.asn index 7b46f60031..6690c7f0b7 100644 --- a/epan/dissectors/asn1/xnap/XnAP-Constants.asn +++ b/epan/dissectors/asn1/xnap/XnAP-Constants.asn @@ -1,4 +1,4 @@ --- 3GPP TS 38.423 V17.7.0 (2023-12) +-- 3GPP TS 38.423 V17.8.0 (2024-03) -- 9.3.7 Constant definitions -- ************************************************************** -- diff --git a/epan/dissectors/asn1/xnap/XnAP-Containers.asn b/epan/dissectors/asn1/xnap/XnAP-Containers.asn index 4f9a1060ae..670bc4288d 100644 --- a/epan/dissectors/asn1/xnap/XnAP-Containers.asn +++ b/epan/dissectors/asn1/xnap/XnAP-Containers.asn @@ -1,4 +1,4 @@ --- 3GPP TS 38.423 V17.7.0 (2023-12) +-- 3GPP TS 38.423 V17.8.0 (2024-03) -- 9.3.8 Container definitions -- ************************************************************** -- diff --git a/epan/dissectors/asn1/xnap/XnAP-IEs.asn b/epan/dissectors/asn1/xnap/XnAP-IEs.asn index 8b2a9b1b38..377c67c3c9 100644 --- a/epan/dissectors/asn1/xnap/XnAP-IEs.asn +++ b/epan/dissectors/asn1/xnap/XnAP-IEs.asn @@ -1,4 +1,4 @@ --- 3GPP TS 38.423 V17.7.0 (2023-12) +-- 3GPP TS 38.423 V17.8.0 (2024-03) -- 9.3.5 Information Element definitions -- ************************************************************** -- @@ -2103,7 +2103,7 @@ ExplicitFormat-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { ExtendedRATRestrictionInformation ::= SEQUENCE { - primaryRATRestriction BIT STRING (SIZE(8, ...)), + primaryRATRestriction BIT STRING (SIZE(8, ..., 16)), secondaryRATRestriction BIT STRING (SIZE(8, ...)), iE-Extensions ProtocolExtensionContainer { {ExtendedRATRestrictionInformation-ExtIEs} } OPTIONAL, ... @@ -4138,7 +4138,7 @@ NR-U-ChannelInfo-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { } -Bandwidth ::= ENUMERATED{mhz10, mhz20, mhz40, mhz60, mhz80, ...} +Bandwidth ::= ENUMERATED{mhz10, mhz20, mhz40, mhz60, mhz80, ..., mhz100} NRCyclicPrefix ::= ENUMERATED {normal, extended, ...} diff --git a/epan/dissectors/asn1/xnap/XnAP-PDU-Contents.asn b/epan/dissectors/asn1/xnap/XnAP-PDU-Contents.asn index ad01705010..ab49f8a958 100644 --- a/epan/dissectors/asn1/xnap/XnAP-PDU-Contents.asn +++ b/epan/dissectors/asn1/xnap/XnAP-PDU-Contents.asn @@ -1,4 +1,4 @@ --- 3GPP TS 38.423 V17.7.0 (2023-12) +-- 3GPP TS 38.423 V17.8.0 (2024-03) -- 9.3.4 PDU Definitions -- ************************************************************** -- @@ -585,7 +585,8 @@ HandoverRequest-IEs XNAP-PROTOCOL-IES ::= { { ID id-TimeSynchronizationAssistanceInformation CRITICALITY ignore TYPE TimeSynchronizationAssistanceInformation PRESENCE optional }| { ID id-QMCConfigInfo CRITICALITY ignore TYPE QMCConfigInfo PRESENCE optional }| { ID id-FiveGProSeAuthorized CRITICALITY ignore TYPE FiveGProSeAuthorized PRESENCE optional }| - { ID id-FiveGProSePC5QoSParameters CRITICALITY ignore TYPE FiveGProSePC5QoSParameters PRESENCE optional }, + { ID id-FiveGProSePC5QoSParameters CRITICALITY ignore TYPE FiveGProSePC5QoSParameters PRESENCE optional }| + { ID id-IABAuthorizationStatus CRITICALITY ignore TYPE IABAuthorizationStatus PRESENCE optional }, ... } @@ -1025,7 +1026,8 @@ SNodeAdditionRequest-IEs XNAP-PROTOCOL-IES ::= { { ID id-SCGActivationRequest CRITICALITY ignore TYPE SCGActivationRequest PRESENCE optional }| { ID id-CPAInformationRequest CRITICALITY reject TYPE CPAInformationRequest PRESENCE optional }| { ID id-S-NG-RANnodeUE-Slice-MBR CRITICALITY reject TYPE UESliceMaximumBitRateList PRESENCE optional }| - { ID id-F1-terminatingIAB-donorIndicator CRITICALITY reject TYPE F1-terminatingIAB-donorIndicator PRESENCE optional }, + { ID id-F1-terminatingIAB-donorIndicator CRITICALITY reject TYPE F1-terminatingIAB-donorIndicator PRESENCE optional }| + { ID id-IABAuthorizationStatus CRITICALITY ignore TYPE IABAuthorizationStatus PRESENCE optional }, ... } @@ -1237,7 +1239,8 @@ SNodeModificationRequest-IEs XNAP-PROTOCOL-IES ::= { { ID id-CPAInformationModReq CRITICALITY ignore TYPE CPAInformationModReq PRESENCE optional }| { ID id-CPCInformationUpdate CRITICALITY ignore TYPE CPCInformationUpdate PRESENCE optional }| { ID id-S-NG-RANnodeUE-Slice-MBR CRITICALITY ignore TYPE UESliceMaximumBitRateList PRESENCE optional }| - { ID id-ManagementBasedMDTPLMNModificationList CRITICALITY ignore TYPE MDTPLMNModificationList PRESENCE optional }, + { ID id-ManagementBasedMDTPLMNModificationList CRITICALITY ignore TYPE MDTPLMNModificationList PRESENCE optional }| + { ID id-IABAuthorizationStatus CRITICALITY ignore TYPE IABAuthorizationStatus PRESENCE optional }, ... } @@ -1406,6 +1409,7 @@ PDUSessionNotAdmitted-SNModResponse ::= SEQUENCE { } PDUSessionNotAdmitted-SNModResponse-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + { ID id-PDUSessionResourcesNotAdmitted-List CRITICALITY ignore EXTENSION PDUSessionResourcesNotAdmitted-List PRESENCE optional }, ... } diff --git a/epan/dissectors/asn1/xnap/XnAP-PDU-Descriptions.asn b/epan/dissectors/asn1/xnap/XnAP-PDU-Descriptions.asn index 94d99c9e7a..8942fc6957 100644 --- a/epan/dissectors/asn1/xnap/XnAP-PDU-Descriptions.asn +++ b/epan/dissectors/asn1/xnap/XnAP-PDU-Descriptions.asn @@ -1,4 +1,4 @@ --- 3GPP TS 38.423 V17.7.0 (2023-12) +-- 3GPP TS 38.423 V17.8.0 (2024-03) -- 9.3.3 Elementary Procedure Definitions -- ************************************************************** -- diff --git a/epan/dissectors/asn1/xnap/packet-xnap-template.c b/epan/dissectors/asn1/xnap/packet-xnap-template.c index 4b28a7d036..423bc10bf4 100644 --- a/epan/dissectors/asn1/xnap/packet-xnap-template.c +++ b/epan/dissectors/asn1/xnap/packet-xnap-template.c @@ -10,7 +10,7 @@ * SPDX-License-Identifier: GPL-2.0-or-later * * Ref: - * 3GPP TS 38.423 V17.7.0 (2023-12) + * 3GPP TS 38.423 V17.8.0 (2024-03) */ #include "config.h" @@ -60,6 +60,10 @@ static int hf_xnap_primaryRATRestriction_nR_LEO; static int hf_xnap_primaryRATRestriction_nR_MEO; static int hf_xnap_primaryRATRestriction_nR_GEO; static int hf_xnap_primaryRATRestriction_nR_OTHERSAT; +static int hf_xnap_primaryRATRestriction_e_UTRA_LEO; +static int hf_xnap_primaryRATRestriction_e_UTRA_MEO; +static int hf_xnap_primaryRATRestriction_e_UTRA_GEO; +static int hf_xnap_primaryRATRestriction_e_UTRA_OTHERSAT; static int hf_xnap_primaryRATRestriction_reserved; static int hf_xnap_secondaryRATRestriction_e_UTRA; static int hf_xnap_secondaryRATRestriction_nR; @@ -394,12 +398,28 @@ void proto_register_xnap(void) { FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x04, NULL, HFILL }}, { &hf_xnap_primaryRATRestriction_nR_OTHERSAT, - { "nR-unlicensed", "xnap.primaryRATRestriction.nR_unlicensed", + { "nR-unlicensed", "xnap.primaryRATRestriction.nR_OTHERSAT", FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x02, NULL, HFILL }}, + { &hf_xnap_primaryRATRestriction_e_UTRA_LEO, + { "e-UTRA-LEO", "xnap.primaryRATRestriction.e_UTRA_LEO", + FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x01, + NULL, HFILL }}, + { &hf_xnap_primaryRATRestriction_e_UTRA_MEO, + { "e-UTRA-MEO", "xnap.primaryRATRestriction.e_UTRA_MEO", + FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x80, + NULL, HFILL }}, + { &hf_xnap_primaryRATRestriction_e_UTRA_GEO, + { "e-UTRA-GEO", "xnap.primaryRATRestriction.e_UTRA_GEO", + FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x40, + NULL, HFILL }}, + { &hf_xnap_primaryRATRestriction_e_UTRA_OTHERSAT, + { "e-UTRA-unlicensed", "xnap.primaryRATRestriction.e_UTRA_OTHERSAT", + FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x20, + NULL, HFILL }}, { &hf_xnap_primaryRATRestriction_reserved, { "reserved", "xnap.primaryRATRestriction.reserved", - FT_UINT8, BASE_HEX, NULL, 0x01, + FT_UINT8, BASE_HEX, NULL, 0x1f, NULL, HFILL }}, { &hf_xnap_secondaryRATRestriction_e_UTRA, { "e-UTRA", "xnap.secondaryRATRestriction.e_UTRA", diff --git a/epan/dissectors/asn1/xnap/xnap.cnf b/epan/dissectors/asn1/xnap/xnap.cnf index 8449bb3fa1..2346aedf1f 100644 --- a/epan/dissectors/asn1/xnap/xnap.cnf +++ b/epan/dissectors/asn1/xnap/xnap.cnf @@ -607,11 +607,20 @@ BluetoothName TYPE=FT_STRING DISPLAY = BASE_NONE &hf_xnap_primaryRATRestriction_nR_MEO, &hf_xnap_primaryRATRestriction_nR_GEO, &hf_xnap_primaryRATRestriction_nR_OTHERSAT, + &hf_xnap_primaryRATRestriction_e_UTRA_LEO, + NULL + }; + static int * const fields2[] = { + &hf_xnap_primaryRATRestriction_e_UTRA_MEO, + &hf_xnap_primaryRATRestriction_e_UTRA_GEO, + &hf_xnap_primaryRATRestriction_e_UTRA_OTHERSAT, &hf_xnap_primaryRATRestriction_reserved, NULL }; proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_primaryRATRestriction); proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 1, fields, ENC_BIG_ENDIAN); + if (tvb_reported_length(parameter_tvb) >= 2) + proto_tree_add_bitmask_list(subtree, parameter_tvb, 1, 1, fields2, ENC_BIG_ENDIAN); } #.FN_BODY ExtendedRATRestrictionInformation/secondaryRATRestriction VAL_PTR=¶meter_tvb @@ -1916,6 +1925,7 @@ CoverageModificationCause N xnap.extensio AdditionalListofPDUSessionResourceChangeConfirmInfo-SNterminated N xnap.extension id-AdditionalListofPDUSessionResourceChangeConfirmInfo-SNterminated ExcessPacketDelayThresholdConfiguration N xnap.extension id-ExcessPacketDelayThresholdConfiguration QoSFlowMappingIndication N xnap.extension id-QosFlowMappingIndication +PDUSessionResourcesNotAdmitted-List N xnap.extension id-PDUSessionResourcesNotAdmitted-List #XNAP-ELEMENTARY-PROCEDURE HandoverRequest N xnap.proc.imsg id-handoverPreparation diff --git a/epan/dissectors/packet-xnap.c b/epan/dissectors/packet-xnap.c index 02c55e807e..92493c0fcc 100644 --- a/epan/dissectors/packet-xnap.c +++ b/epan/dissectors/packet-xnap.c @@ -15,7 +15,7 @@ * SPDX-License-Identifier: GPL-2.0-or-later * * Ref: - * 3GPP TS 38.423 V17.7.0 (2023-12) + * 3GPP TS 38.423 V17.8.0 (2024-03) */ #include "config.h" @@ -616,6 +616,10 @@ static int hf_xnap_primaryRATRestriction_nR_LEO; static int hf_xnap_primaryRATRestriction_nR_MEO; static int hf_xnap_primaryRATRestriction_nR_GEO; static int hf_xnap_primaryRATRestriction_nR_OTHERSAT; +static int hf_xnap_primaryRATRestriction_e_UTRA_LEO; +static int hf_xnap_primaryRATRestriction_e_UTRA_MEO; +static int hf_xnap_primaryRATRestriction_e_UTRA_GEO; +static int hf_xnap_primaryRATRestriction_e_UTRA_OTHERSAT; static int hf_xnap_primaryRATRestriction_reserved; static int hf_xnap_secondaryRATRestriction_e_UTRA; static int hf_xnap_secondaryRATRestriction_nR; @@ -11029,11 +11033,20 @@ dissect_xnap_T_primaryRATRestriction(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx &hf_xnap_primaryRATRestriction_nR_MEO, &hf_xnap_primaryRATRestriction_nR_GEO, &hf_xnap_primaryRATRestriction_nR_OTHERSAT, + &hf_xnap_primaryRATRestriction_e_UTRA_LEO, + NULL + }; + static int * const fields2[] = { + &hf_xnap_primaryRATRestriction_e_UTRA_MEO, + &hf_xnap_primaryRATRestriction_e_UTRA_GEO, + &hf_xnap_primaryRATRestriction_e_UTRA_OTHERSAT, &hf_xnap_primaryRATRestriction_reserved, NULL }; proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_primaryRATRestriction); proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 1, fields, ENC_BIG_ENDIAN); + if (tvb_reported_length(parameter_tvb) >= 2) + proto_tree_add_bitmask_list(subtree, parameter_tvb, 1, 1, fields2, ENC_BIG_ENDIAN); } @@ -16286,6 +16299,7 @@ static const value_string xnap_Bandwidth_vals[] = { { 2, "mhz40" }, { 3, "mhz60" }, { 4, "mhz80" }, + { 5, "mhz100" }, { 0, NULL } }; @@ -16293,7 +16307,7 @@ static const value_string xnap_Bandwidth_vals[] = { static int dissect_xnap_Bandwidth(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, - 5, NULL, TRUE, 0, NULL); + 5, NULL, TRUE, 1, NULL); return offset; } @@ -28363,12 +28377,28 @@ void proto_register_xnap(void) { FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x04, NULL, HFILL }}, { &hf_xnap_primaryRATRestriction_nR_OTHERSAT, - { "nR-unlicensed", "xnap.primaryRATRestriction.nR_unlicensed", + { "nR-unlicensed", "xnap.primaryRATRestriction.nR_OTHERSAT", FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x02, NULL, HFILL }}, + { &hf_xnap_primaryRATRestriction_e_UTRA_LEO, + { "e-UTRA-LEO", "xnap.primaryRATRestriction.e_UTRA_LEO", + FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x01, + NULL, HFILL }}, + { &hf_xnap_primaryRATRestriction_e_UTRA_MEO, + { "e-UTRA-MEO", "xnap.primaryRATRestriction.e_UTRA_MEO", + FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x80, + NULL, HFILL }}, + { &hf_xnap_primaryRATRestriction_e_UTRA_GEO, + { "e-UTRA-GEO", "xnap.primaryRATRestriction.e_UTRA_GEO", + FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x40, + NULL, HFILL }}, + { &hf_xnap_primaryRATRestriction_e_UTRA_OTHERSAT, + { "e-UTRA-unlicensed", "xnap.primaryRATRestriction.e_UTRA_OTHERSAT", + FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x20, + NULL, HFILL }}, { &hf_xnap_primaryRATRestriction_reserved, { "reserved", "xnap.primaryRATRestriction.reserved", - FT_UINT8, BASE_HEX, NULL, 0x01, + FT_UINT8, BASE_HEX, NULL, 0x1f, NULL, HFILL }}, { &hf_xnap_secondaryRATRestriction_e_UTRA, { "e-UTRA", "xnap.secondaryRATRestriction.e_UTRA", @@ -36543,6 +36573,7 @@ proto_reg_handoff_xnap(void) dissector_add_uint("xnap.extension", id_AdditionalListofPDUSessionResourceChangeConfirmInfo_SNterminated, create_dissector_handle(dissect_AdditionalListofPDUSessionResourceChangeConfirmInfo_SNterminated_PDU, proto_xnap)); dissector_add_uint("xnap.extension", id_ExcessPacketDelayThresholdConfiguration, create_dissector_handle(dissect_ExcessPacketDelayThresholdConfiguration_PDU, proto_xnap)); dissector_add_uint("xnap.extension", id_QosFlowMappingIndication, create_dissector_handle(dissect_QoSFlowMappingIndication_PDU, proto_xnap)); + dissector_add_uint("xnap.extension", id_PDUSessionResourcesNotAdmitted_List, create_dissector_handle(dissect_PDUSessionResourcesNotAdmitted_List_PDU, proto_xnap)); dissector_add_uint("xnap.proc.imsg", id_handoverPreparation, create_dissector_handle(dissect_HandoverRequest_PDU, proto_xnap)); dissector_add_uint("xnap.proc.sout", id_handoverPreparation, create_dissector_handle(dissect_HandoverRequestAcknowledge_PDU, proto_xnap)); dissector_add_uint("xnap.proc.uout", id_handoverPreparation, create_dissector_handle(dissect_HandoverPreparationFailure_PDU, proto_xnap));