From a4c5296aaffe9149b4bc63cee6a3506ba5fdb11f Mon Sep 17 00:00:00 2001 From: Pascal Quantin Date: Sun, 12 Jan 2020 17:20:54 +0100 Subject: [PATCH] F1AP: upgrade dissector to v15.8.0 Change-Id: I92f98721286cfff4b113618a68add578412352fa Reviewed-on: https://code.wireshark.org/review/35756 Petri-Dish: Pascal Quantin Tested-by: Petri Dish Buildbot Reviewed-by: Pascal Quantin --- .../asn1/f1ap/F1AP-CommonDataTypes.asn | 2 +- epan/dissectors/asn1/f1ap/F1AP-Constants.asn | 9 +- epan/dissectors/asn1/f1ap/F1AP-Containers.asn | 2 +- epan/dissectors/asn1/f1ap/F1AP-IEs.asn | 22 +- .../asn1/f1ap/F1AP-PDU-Contents.asn | 28 +- .../asn1/f1ap/F1AP-PDU-Descriptions.asn | 2 +- epan/dissectors/asn1/f1ap/f1ap.cnf | 25 ++ .../asn1/f1ap/packet-f1ap-template.c | 10 +- epan/dissectors/asn1/nr-rrc/nr-rrc.cnf | 2 + epan/dissectors/packet-f1ap.c | 326 +++++++++++++----- epan/dissectors/packet-nr-rrc.c | 17 + epan/dissectors/packet-nr-rrc.h | 1 + 12 files changed, 330 insertions(+), 116 deletions(-) diff --git a/epan/dissectors/asn1/f1ap/F1AP-CommonDataTypes.asn b/epan/dissectors/asn1/f1ap/F1AP-CommonDataTypes.asn index d8508bc621..2f3bd22880 100644 --- a/epan/dissectors/asn1/f1ap/F1AP-CommonDataTypes.asn +++ b/epan/dissectors/asn1/f1ap/F1AP-CommonDataTypes.asn @@ -1,4 +1,4 @@ --- 3GPP TS 38.473 V15.7.0 (2019-09) +-- 3GPP TS 38.473 V15.8.0 (2019-12) -- 9.4.6 Common Definitions -- ************************************************************** -- diff --git a/epan/dissectors/asn1/f1ap/F1AP-Constants.asn b/epan/dissectors/asn1/f1ap/F1AP-Constants.asn index f71220b71c..31cd498129 100644 --- a/epan/dissectors/asn1/f1ap/F1AP-Constants.asn +++ b/epan/dissectors/asn1/f1ap/F1AP-Constants.asn @@ -1,4 +1,4 @@ --- 3GPP TS 38.473 V15.7.0 (2019-09) +-- 3GPP TS 38.473 V15.8.0 (2019-12) -- 9.4.7 Constant Definitions -- ************************************************************** -- @@ -352,7 +352,12 @@ id-Cell-Type ProtocolIE-ID ::= 232 id-IgnorePRACHConfiguration ProtocolIE-ID ::= 233 id-CG-Config ProtocolIE-ID ::= 234 id-PDCCH-BlindDetectionSCG ProtocolIE-ID ::= 235 -id-Requested-PDCCH-BlindDetectionSCG ProtocolIE-ID ::= 236 +id-Requested-PDCCH-BlindDetectionSCG ProtocolIE-ID ::= 236 id-Ph-InfoMCG ProtocolIE-ID ::= 237 +id-MeasGapSharingConfig ProtocolIE-ID ::= 238 +id-systemInformationAreaID ProtocolIE-ID ::= 239 +id-areaScope ProtocolIE-ID ::= 240 +id-RRCContainer-RRCSetupComplete ProtocolIE-ID ::= 241 + END diff --git a/epan/dissectors/asn1/f1ap/F1AP-Containers.asn b/epan/dissectors/asn1/f1ap/F1AP-Containers.asn index 961513514b..28ce53f3ac 100644 --- a/epan/dissectors/asn1/f1ap/F1AP-Containers.asn +++ b/epan/dissectors/asn1/f1ap/F1AP-Containers.asn @@ -1,4 +1,4 @@ --- 3GPP TS 38.473 V15.7.0 (2019-09) +-- 3GPP TS 38.473 V15.8.0 (2019-12) -- 9.4.8 Container Definitions -- ************************************************************** -- diff --git a/epan/dissectors/asn1/f1ap/F1AP-IEs.asn b/epan/dissectors/asn1/f1ap/F1AP-IEs.asn index 088b00a0f8..94e59a389f 100644 --- a/epan/dissectors/asn1/f1ap/F1AP-IEs.asn +++ b/epan/dissectors/asn1/f1ap/F1AP-IEs.asn @@ -1,4 +1,4 @@ --- 3GPP TS 38.473 V15.7.0 (2019-09) +-- 3GPP TS 38.473 V15.8.0 (2019-12) -- 9.4.5 Information Element Definitions -- ************************************************************** -- @@ -59,6 +59,9 @@ IMPORTS id-IgnorePRACHConfiguration, id-CG-Config, id-Ph-InfoMCG, + id-MeasGapSharingConfig, + id-systemInformationAreaID, + id-areaScope, maxNRARFCN, maxnoofErrors, maxnoofBPLMNs, @@ -140,6 +143,8 @@ AvailablePLMNList-Item-ExtIEs F1AP-PROTOCOL-EXTENSION ::= { AveragingWindow ::= INTEGER (0..4095, ...) +AreaScope ::= ENUMERATED {true, ...} + -- B BitRate ::= INTEGER (0..4000000000000,...) @@ -241,7 +246,9 @@ CauseRadioNetwork ::= ENUMERATED { resources-not-available-for-the-slice, amf-initiated-abnormal-release, release-due-to-pre-emption, - plmn-not-served-by-the-gNB-CU + plmn-not-served-by-the-gNB-CU, + multiple-drb-id-instances, + unknown-drb-id } CauseTransport ::= ENUMERATED { @@ -713,7 +720,8 @@ DUtoCURRCInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= { { ID id-DRX-Config CRITICALITY ignore EXTENSION DRX-Config PRESENCE optional }| { ID id-PDCCH-BlindDetectionSCG CRITICALITY ignore EXTENSION PDCCH-BlindDetectionSCG PRESENCE optional }| { ID id-Requested-PDCCH-BlindDetectionSCG CRITICALITY ignore EXTENSION Requested-PDCCH-BlindDetectionSCG PRESENCE optional }| - { ID id-Ph-InfoMCG CRITICALITY ignore EXTENSION Ph-InfoMCG PRESENCE optional }, + { ID id-Ph-InfoMCG CRITICALITY ignore EXTENSION Ph-InfoMCG PRESENCE optional }| + { ID id-MeasGapSharingConfig CRITICALITY ignore EXTENSION MeasGapSharingConfig PRESENCE optional }, ... } @@ -1028,6 +1036,7 @@ GNB-CUSystemInformation::= SEQUENCE { } GNB-CUSystemInformation-ExtIEs F1AP-PROTOCOL-EXTENSION ::= { + {ID id-systemInformationAreaID CRITICALITY ignore EXTENSION SystemInformationAreaID PRESENCE optional}, ... } @@ -1178,6 +1187,8 @@ MeasConfig ::= OCTET STRING MeasGapConfig ::= OCTET STRING +MeasGapSharingConfig ::= OCTET STRING + MeasurementTimingConfiguration ::= OCTET STRING MessageIdentifier ::= BIT STRING (SIZE (16)) @@ -1548,6 +1559,8 @@ RLC-Status-ExtIEs F1AP-PROTOCOL-EXTENSION ::= { RRCContainer ::= OCTET STRING +RRCContainer-RRCSetupComplete ::= OCTET STRING + RRCDeliveryStatus ::= SEQUENCE { delivery-status PDCP-SN, triggering-message PDCP-SN, @@ -1766,6 +1779,7 @@ SibtypetobeupdatedListItem ::= SEQUENCE { } SibtypetobeupdatedListItem-ExtIEs F1AP-PROTOCOL-EXTENSION ::= { + {ID id-areaScope CRITICALITY ignore EXTENSION AreaScope PRESENCE optional}, ... } @@ -1917,6 +1931,8 @@ SupportedSULFreqBandItem-ExtIEs F1AP-PROTOCOL-EXTENSION ::= { ... } +SystemInformationAreaID ::=BIT STRING (SIZE (24)) + -- T FiveGS-TAC ::= OCTET STRING (SIZE(3)) diff --git a/epan/dissectors/asn1/f1ap/F1AP-PDU-Contents.asn b/epan/dissectors/asn1/f1ap/F1AP-PDU-Contents.asn index b7a2bcb525..ec13104c3a 100644 --- a/epan/dissectors/asn1/f1ap/F1AP-PDU-Contents.asn +++ b/epan/dissectors/asn1/f1ap/F1AP-PDU-Contents.asn @@ -1,4 +1,4 @@ --- 3GPP TS 38.473 V15.7.0 (2019-09) +-- 3GPP TS 38.473 V15.8.0 (2019-12) -- 9.4.4 PDU Definitions -- ************************************************************** -- @@ -70,6 +70,7 @@ IMPORTS RAT-FrequencyPriorityInformation, ResourceCoordinationTransferContainer, RRCContainer, + RRCContainer-RRCSetupComplete, RRCReconfigurationCompleteIndicator, SCellIndex, SCell-ToBeRemoved-Item, @@ -143,7 +144,8 @@ IMPORTS PagingOrigin, UAC-Assistance-Info, RANUEID, - GNB-DU-TNL-Association-To-Remove-Item + GNB-DU-TNL-Association-To-Remove-Item, + NotificationInformation FROM F1AP-IEs @@ -230,6 +232,7 @@ FROM F1AP-Containers id-ResetType, id-ResourceCoordinationTransferContainer, id-RRCContainer, + id-RRCContainer-RRCSetupComplete, id-RRCReconfigurationCompleteIndicator, id-SCell-FailedtoSetup-List, id-SCell-FailedtoSetup-Item, @@ -343,6 +346,7 @@ FROM F1AP-Containers id-PagingOrigin, id-GNB-DU-TNL-Association-To-Remove-Item, id-GNB-DU-TNL-Association-To-Remove-List, + id-NotificationInformation, maxCellingNBDU, maxnoofCandidateSpCells, maxnoofDRBs, @@ -1454,7 +1458,8 @@ PWSCancelRequestIEs F1AP-PROTOCOL-IES ::= { { ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }| { ID id-NumberofBroadcastRequest CRITICALITY reject TYPE NumberofBroadcastRequest PRESENCE mandatory }| { ID id-Broadcast-To-Be-Cancelled-List CRITICALITY reject TYPE Broadcast-To-Be-Cancelled-List PRESENCE optional }| - { ID id-Cancel-all-Warning-Messages-Indicator CRITICALITY reject TYPE Cancel-all-Warning-Messages-Indicator PRESENCE optional }, + { ID id-Cancel-all-Warning-Messages-Indicator CRITICALITY reject TYPE Cancel-all-Warning-Messages-Indicator PRESENCE optional }| + { ID id-NotificationInformation CRITICALITY reject TYPE NotificationInformation PRESENCE optional}, ... } @@ -1539,14 +1544,15 @@ InitialULRRCMessageTransfer ::= SEQUENCE { } InitialULRRCMessageTransferIEs F1AP-PROTOCOL-IES ::= { - { ID id-gNB-DU-UE-F1AP-ID CRITICALITY reject TYPE GNB-DU-UE-F1AP-ID PRESENCE mandatory }| - { ID id-NRCGI CRITICALITY reject TYPE NRCGI PRESENCE mandatory }| - { ID id-C-RNTI CRITICALITY reject TYPE C-RNTI PRESENCE mandatory }| - { ID id-RRCContainer CRITICALITY reject TYPE RRCContainer PRESENCE mandatory }| - { ID id-DUtoCURRCContainer CRITICALITY reject TYPE DUtoCURRCContainer PRESENCE optional }| - { ID id-SULAccessIndication CRITICALITY ignore TYPE SULAccessIndication PRESENCE optional }| - { ID id-TransactionID CRITICALITY ignore TYPE TransactionID PRESENCE mandatory }| - { ID id-RANUEID CRITICALITY ignore TYPE RANUEID PRESENCE optional }, + { ID id-gNB-DU-UE-F1AP-ID CRITICALITY reject TYPE GNB-DU-UE-F1AP-ID PRESENCE mandatory }| + { ID id-NRCGI CRITICALITY reject TYPE NRCGI PRESENCE mandatory }| + { ID id-C-RNTI CRITICALITY reject TYPE C-RNTI PRESENCE mandatory }| + { ID id-RRCContainer CRITICALITY reject TYPE RRCContainer PRESENCE mandatory }| + { ID id-DUtoCURRCContainer CRITICALITY reject TYPE DUtoCURRCContainer PRESENCE optional }| + { ID id-SULAccessIndication CRITICALITY ignore TYPE SULAccessIndication PRESENCE optional }| + { ID id-TransactionID CRITICALITY ignore TYPE TransactionID PRESENCE mandatory }| + { ID id-RANUEID CRITICALITY ignore TYPE RANUEID PRESENCE optional }| + { ID id-RRCContainer-RRCSetupComplete CRITICALITY ignore TYPE RRCContainer-RRCSetupComplete PRESENCE optional }, ... } diff --git a/epan/dissectors/asn1/f1ap/F1AP-PDU-Descriptions.asn b/epan/dissectors/asn1/f1ap/F1AP-PDU-Descriptions.asn index a2dbf7ddd0..6cc28a5593 100644 --- a/epan/dissectors/asn1/f1ap/F1AP-PDU-Descriptions.asn +++ b/epan/dissectors/asn1/f1ap/F1AP-PDU-Descriptions.asn @@ -1,4 +1,4 @@ --- 3GPP TS 38.473 V15.7.0 (2019-09) +-- 3GPP TS 38.473 V15.8.0 (2019-12) -- 9.4.3 Elementary Procedure Definitions -- ************************************************************** -- diff --git a/epan/dissectors/asn1/f1ap/f1ap.cnf b/epan/dissectors/asn1/f1ap/f1ap.cnf index a8a77cf0f5..aa5226b9c3 100644 --- a/epan/dissectors/asn1/f1ap/f1ap.cnf +++ b/epan/dissectors/asn1/f1ap/f1ap.cnf @@ -365,6 +365,10 @@ id-CG-Config ProtocolIE-ID id-PDCCH-BlindDetectionSCG ProtocolIE-ID id-Requested-PDCCH-BlindDetectionSCG ProtocolIE-ID id-Ph-InfoMCG ProtocolIE-ID +id-MeasGapSharingConfig ProtocolIE-ID +id-systemInformationAreaID ProtocolIE-ID +id-areaScope ProtocolIE-ID +id-RRCContainer-RRCSetupComplete ProtocolIE-ID #.END #.REGISTER @@ -553,6 +557,7 @@ UAC-Assistance-Info N f1ap.ies id-UAC-Assistance-I RANUEID N f1ap.ies id-RANUEID GNB-DU-TNL-Association-To-Remove-Item N f1ap.ies id-GNB-DU-TNL-Association-To-Remove-Item GNB-DU-TNL-Association-To-Remove-List N f1ap.ies id-GNB-DU-TNL-Association-To-Remove-List +RRCContainer-RRCSetupComplete N f1ap.ies id-RRCContainer-RRCSetupComplete #F1AP-PROTOCOL-EXTENSION GNB-CUSystemInformation N f1ap.extension id-gNB-CUSystemInformation @@ -599,6 +604,9 @@ CG-Config N f1ap.extension id-CG-Config PDCCH-BlindDetectionSCG N f1ap.extension id-PDCCH-BlindDetectionSCG Requested-PDCCH-BlindDetectionSCG N f1ap.extension id-Requested-PDCCH-BlindDetectionSCG Ph-InfoMCG N f1ap.extension id-Ph-InfoMCG +MeasGapSharingConfig N f1ap.extension id-MeasGapSharingConfig +SystemInformationAreaID N f1ap.extension id-systemInformationAreaID +AreaScope N f1ap.extension id-areaScope #F1AP-ELEMENTARY-PROCEDURE Reset N f1ap.proc.imsg id-Reset @@ -774,6 +782,15 @@ F1RemovalFailure N f1ap.proc.uout id-F1Removal } } +#.FN_BODY RRCContainer-RRCSetupComplete VAL_PTR=¶m_tvb + tvbuff_t *param_tvb = NULL; +%(DEFAULT_BODY)s + if (param_tvb) { + proto_tree *subtree; + subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_RRCContainer_RRCSetupComplete); + call_dissector(nr_rrc_ul_dcch_handle, param_tvb, actx->pinfo, subtree); + } + #.FN_BODY DUtoCURRCContainer VAL_PTR = ¶m_tvb tvbuff_t *param_tvb = NULL; %(DEFAULT_BODY)s @@ -891,6 +908,14 @@ BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec dissect_nr_rrc_MeasGapConfig_PDU(param_tvb, actx->pinfo, subtree, NULL); } +#.FN_BODY MeasGapSharingConfig VAL_PTR = ¶m_tvb + tvbuff_t *param_tvb = NULL; +%(DEFAULT_BODY)s + if (param_tvb) { + proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_MeasGapSharingConfig); + dissect_nr_rrc_MeasGapSharingConfig_PDU(param_tvb, actx->pinfo, subtree, NULL); + } + #.FN_BODY DUtoCURRCInformation/requestedP-MaxFR1 VAL_PTR = ¶m_tvb tvbuff_t *param_tvb = NULL; %(DEFAULT_BODY)s diff --git a/epan/dissectors/asn1/f1ap/packet-f1ap-template.c b/epan/dissectors/asn1/f1ap/packet-f1ap-template.c index 75068fe653..6ffb8e0308 100644 --- a/epan/dissectors/asn1/f1ap/packet-f1ap-template.c +++ b/epan/dissectors/asn1/f1ap/packet-f1ap-template.c @@ -1,6 +1,6 @@ /* packet-f1ap.c * Routines for E-UTRAN F1 Application Protocol (F1AP) packet dissection - * Copyright 2018-2019, Pascal Quantin + * Copyright 2018-2020, Pascal Quantin * * Wireshark - Network traffic analyzer * By Gerald Combs @@ -8,7 +8,7 @@ * * SPDX-License-Identifier: GPL-2.0-or-later * - * References: 3GPP TS 38.473 V15.7.0 (2019-09) + * References: 3GPP TS 38.473 V15.8.0 (2019-12) */ #include "config.h" @@ -58,10 +58,12 @@ static gint ett_f1ap_requestedP_MaxFR1 = -1; static gint ett_f1ap_HandoverPreparationInformation = -1; static gint ett_f1ap_MeasConfig = -1; static gint ett_f1ap_MeasGapConfig = -1; +static gint ett_f1ap_MeasGapSharingConfig = -1; static gint ett_f1ap_EUTRA_NR_CellResourceCoordinationReq_Container = -1; static gint ett_f1ap_EUTRA_NR_CellResourceCoordinationReqAck_Container = -1; static gint ett_f1ap_ProtectedEUTRAResourceIndication = -1; static gint ett_f1ap_RRCContainer = -1; +static gint ett_f1ap_RRCContainer_RRCSetupComplete = -1; static gint ett_f1ap_sIBmessage = -1; static gint ett_f1ap_UplinkTxDirectCurrentListInformation = -1; static gint ett_f1ap_DRX_Config = -1; @@ -99,6 +101,7 @@ typedef struct { /* Global variables */ static dissector_handle_t f1ap_handle; static dissector_handle_t nr_rrc_ul_ccch_handle; +static dissector_handle_t nr_rrc_ul_dcch_handle; /* Dissector tables */ static dissector_table_t f1ap_ies_dissector_table; @@ -237,10 +240,12 @@ void proto_register_f1ap(void) { &ett_f1ap_HandoverPreparationInformation, &ett_f1ap_MeasConfig, &ett_f1ap_MeasGapConfig, + &ett_f1ap_MeasGapSharingConfig, &ett_f1ap_EUTRA_NR_CellResourceCoordinationReq_Container, &ett_f1ap_EUTRA_NR_CellResourceCoordinationReqAck_Container, &ett_f1ap_ProtectedEUTRAResourceIndication, &ett_f1ap_RRCContainer, + &ett_f1ap_RRCContainer_RRCSetupComplete, &ett_f1ap_sIBmessage, &ett_f1ap_UplinkTxDirectCurrentListInformation, &ett_f1ap_DRX_Config, @@ -277,6 +282,7 @@ proto_reg_handoff_f1ap(void) dissector_add_uint_with_preference("sctp.port", SCTP_PORT_F1AP, f1ap_handle); dissector_add_uint("sctp.ppi", F1AP_PROTOCOL_ID, f1ap_handle); nr_rrc_ul_ccch_handle = find_dissector_add_dependency("nr-rrc.ul.ccch", proto_f1ap); + nr_rrc_ul_dcch_handle = find_dissector_add_dependency("nr-rrc.ul.dcch", proto_f1ap); #include "packet-f1ap-dis-tab.c" } diff --git a/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf b/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf index 5a75352f71..af4906dcd3 100644 --- a/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf +++ b/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf @@ -53,6 +53,7 @@ HandoverCommand_PDU HandoverPreparationInformation_PDU MeasConfig_PDU MeasGapConfig_PDU +MeasGapSharingConfig_PDU MeasResultSCG-Failure_PDU MeasurementTimingConfiguration_PDU MIB_PDU @@ -99,6 +100,7 @@ HandoverCommand HandoverPreparationInformation MeasConfig MeasGapConfig +MeasGapSharingConfig MeasResultSCG-Failure MeasurementTimingConfiguration MIB diff --git a/epan/dissectors/packet-f1ap.c b/epan/dissectors/packet-f1ap.c index 0403827221..0fc4d0e01d 100644 --- a/epan/dissectors/packet-f1ap.c +++ b/epan/dissectors/packet-f1ap.c @@ -8,7 +8,7 @@ #line 1 "./asn1/f1ap/packet-f1ap-template.c" /* packet-f1ap.c * Routines for E-UTRAN F1 Application Protocol (F1AP) packet dissection - * Copyright 2018-2019, Pascal Quantin + * Copyright 2018-2020, Pascal Quantin * * Wireshark - Network traffic analyzer * By Gerald Combs @@ -16,7 +16,7 @@ * * SPDX-License-Identifier: GPL-2.0-or-later * - * References: 3GPP TS 38.473 V15.7.0 (2019-09) + * References: 3GPP TS 38.473 V15.8.0 (2019-12) */ #include "config.h" @@ -342,7 +342,11 @@ typedef enum _ProtocolIE_ID_enum { id_CG_Config = 234, id_PDCCH_BlindDetectionSCG = 235, id_Requested_PDCCH_BlindDetectionSCG = 236, - id_Ph_InfoMCG = 237 + id_Ph_InfoMCG = 237, + id_MeasGapSharingConfig = 238, + id_systemInformationAreaID = 239, + id_areaScope = 240, + id_RRCContainer_RRCSetupComplete = 241 } ProtocolIE_ID_enum; /*--- End of included file: packet-f1ap-val.h ---*/ @@ -359,6 +363,7 @@ static int hf_f1ap_transportLayerAddressIPv6 = -1; static int hf_f1ap_AdditionalSIBMessageList_PDU = -1; /* AdditionalSIBMessageList */ static int hf_f1ap_Associated_SCell_Item_PDU = -1; /* Associated_SCell_Item */ static int hf_f1ap_AvailablePLMNList_PDU = -1; /* AvailablePLMNList */ +static int hf_f1ap_AreaScope_PDU = -1; /* AreaScope */ static int hf_f1ap_BitRate_PDU = -1; /* BitRate */ static int hf_f1ap_BearerTypeChange_PDU = -1; /* BearerTypeChange */ static int hf_f1ap_BPLMN_ID_Info_List_PDU = -1; /* BPLMN_ID_Info_List */ @@ -435,6 +440,7 @@ static int hf_f1ap_IgnoreResourceCoordinationContainer_PDU = -1; /* IgnoreResou static int hf_f1ap_InactivityMonitoringRequest_PDU = -1; /* InactivityMonitoringRequest */ static int hf_f1ap_InactivityMonitoringResponse_PDU = -1; /* InactivityMonitoringResponse */ static int hf_f1ap_MaskedIMEISV_PDU = -1; /* MaskedIMEISV */ +static int hf_f1ap_MeasGapSharingConfig_PDU = -1; /* MeasGapSharingConfig */ static int hf_f1ap_MeasurementTimingConfiguration_PDU = -1; /* MeasurementTimingConfiguration */ static int hf_f1ap_NeedforGap_PDU = -1; /* NeedforGap */ static int hf_f1ap_NR_CGI_List_For_Restart_Item_PDU = -1; /* NR_CGI_List_For_Restart_Item */ @@ -473,6 +479,7 @@ static int hf_f1ap_RLCFailureIndication_PDU = -1; /* RLCFailureIndication */ static int hf_f1ap_RLCMode_PDU = -1; /* RLCMode */ static int hf_f1ap_RLC_Status_PDU = -1; /* RLC_Status */ static int hf_f1ap_RRCContainer_PDU = -1; /* RRCContainer */ +static int hf_f1ap_RRCContainer_RRCSetupComplete_PDU = -1; /* RRCContainer_RRCSetupComplete */ static int hf_f1ap_RRCDeliveryStatus_PDU = -1; /* RRCDeliveryStatus */ static int hf_f1ap_RRCDeliveryStatusRequest_PDU = -1; /* RRCDeliveryStatusRequest */ static int hf_f1ap_RRCReconfigurationCompleteIndicator_PDU = -1; /* RRCReconfigurationCompleteIndicator */ @@ -503,6 +510,7 @@ static int hf_f1ap_SRBs_ToBeReleased_Item_PDU = -1; /* SRBs_ToBeReleased_Item * static int hf_f1ap_SRBs_ToBeSetup_Item_PDU = -1; /* SRBs_ToBeSetup_Item */ static int hf_f1ap_SRBs_ToBeSetupMod_Item_PDU = -1; /* SRBs_ToBeSetupMod_Item */ static int hf_f1ap_SULAccessIndication_PDU = -1; /* SULAccessIndication */ +static int hf_f1ap_SystemInformationAreaID_PDU = -1; /* SystemInformationAreaID */ static int hf_f1ap_TimeToWait_PDU = -1; /* TimeToWait */ static int hf_f1ap_TransactionID_PDU = -1; /* TransactionID */ static int hf_f1ap_TransmissionActionIndicator_PDU = -1; /* TransmissionActionIndicator */ @@ -937,10 +945,12 @@ static gint ett_f1ap_requestedP_MaxFR1 = -1; static gint ett_f1ap_HandoverPreparationInformation = -1; static gint ett_f1ap_MeasConfig = -1; static gint ett_f1ap_MeasGapConfig = -1; +static gint ett_f1ap_MeasGapSharingConfig = -1; static gint ett_f1ap_EUTRA_NR_CellResourceCoordinationReq_Container = -1; static gint ett_f1ap_EUTRA_NR_CellResourceCoordinationReqAck_Container = -1; static gint ett_f1ap_ProtectedEUTRAResourceIndication = -1; static gint ett_f1ap_RRCContainer = -1; +static gint ett_f1ap_RRCContainer_RRCSetupComplete = -1; static gint ett_f1ap_sIBmessage = -1; static gint ett_f1ap_UplinkTxDirectCurrentListInformation = -1; static gint ett_f1ap_DRX_Config = -1; @@ -1225,7 +1235,7 @@ static gint ett_f1ap_SuccessfulOutcome = -1; static gint ett_f1ap_UnsuccessfulOutcome = -1; /*--- End of included file: packet-f1ap-ett.c ---*/ -#line 76 "./asn1/f1ap/packet-f1ap-template.c" +#line 78 "./asn1/f1ap/packet-f1ap-template.c" enum{ INITIATING_MESSAGE, @@ -1252,6 +1262,7 @@ typedef struct { /* Global variables */ static dissector_handle_t f1ap_handle; static dissector_handle_t nr_rrc_ul_ccch_handle; +static dissector_handle_t nr_rrc_ul_dcch_handle; /* Dissector tables */ static dissector_table_t f1ap_ies_dissector_table; @@ -1662,6 +1673,10 @@ static const value_string f1ap_ProtocolIE_ID_vals[] = { { id_PDCCH_BlindDetectionSCG, "id-PDCCH-BlindDetectionSCG" }, { id_Requested_PDCCH_BlindDetectionSCG, "id-Requested-PDCCH-BlindDetectionSCG" }, { id_Ph_InfoMCG, "id-Ph-InfoMCG" }, + { id_MeasGapSharingConfig, "id-MeasGapSharingConfig" }, + { id_systemInformationAreaID, "id-systemInformationAreaID" }, + { id_areaScope, "id-areaScope" }, + { id_RRCContainer_RRCSetupComplete, "id-RRCContainer-RRCSetupComplete" }, { 0, NULL } }; @@ -1844,7 +1859,7 @@ dissect_f1ap_PrivateIE_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int dissect_f1ap_T_additionalSIB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 678 "./asn1/f1ap/f1ap.cnf" +#line 686 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -1972,7 +1987,7 @@ dissect_f1ap_AllocationAndRetentionPriority(tvbuff_t *tvb _U_, int offset _U_, a static int dissect_f1ap_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 794 "./asn1/f1ap/f1ap.cnf" +#line 811 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 3, 3, FALSE, ¶m_tvb); @@ -2068,6 +2083,21 @@ dissect_f1ap_AveragingWindow(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } +static const value_string f1ap_AreaScope_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_f1ap_AreaScope(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_f1ap_BitRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -2125,7 +2155,7 @@ dissect_f1ap_ExtendedAvailablePLMN_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ static int dissect_f1ap_FiveGS_TAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 905 "./asn1/f1ap/f1ap.cnf" +#line 930 "./asn1/f1ap/f1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 3, 3, FALSE, ¶meter_tvb); @@ -2261,6 +2291,8 @@ static const value_string f1ap_CauseRadioNetwork_vals[] = { { 15, "amf-initiated-abnormal-release" }, { 16, "release-due-to-pre-emption" }, { 17, "plmn-not-served-by-the-gNB-CU" }, + { 18, "multiple-drb-id-instances" }, + { 19, "unknown-drb-id" }, { 0, NULL } }; @@ -2268,7 +2300,7 @@ static const value_string f1ap_CauseRadioNetwork_vals[] = { static int dissect_f1ap_CauseRadioNetwork(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, - 11, NULL, TRUE, 7, NULL); + 11, NULL, TRUE, 9, NULL); return offset; } @@ -2361,7 +2393,7 @@ dissect_f1ap_Cause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, prot static int dissect_f1ap_CellGroupConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 871 "./asn1/f1ap/f1ap.cnf" +#line 888 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -2702,7 +2734,7 @@ dissect_f1ap_CNUEPagingIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a static int dissect_f1ap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1022 "./asn1/f1ap/f1ap.cnf" +#line 1047 "./asn1/f1ap/f1ap.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); @@ -2861,7 +2893,7 @@ dissect_f1ap_C_RNTI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro static int dissect_f1ap_CG_ConfigInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 839 "./asn1/f1ap/f1ap.cnf" +#line 856 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -2880,7 +2912,7 @@ dissect_f1ap_CG_ConfigInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ static int dissect_f1ap_UE_CapabilityRAT_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 847 "./asn1/f1ap/f1ap.cnf" +#line 864 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -2899,7 +2931,7 @@ dissect_f1ap_UE_CapabilityRAT_ContainerList(tvbuff_t *tvb _U_, int offset _U_, a static int dissect_f1ap_MeasConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 855 "./asn1/f1ap/f1ap.cnf" +#line 872 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -3966,7 +3998,7 @@ dissect_f1ap_DRXCycle(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p static int dissect_f1ap_DRX_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1048 "./asn1/f1ap/f1ap.cnf" +#line 1073 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -4010,7 +4042,7 @@ dissect_f1ap_DRX_LongCycleStartOffset(tvbuff_t *tvb _U_, int offset _U_, asn1_ct static int dissect_f1ap_DUtoCURRCContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 778 "./asn1/f1ap/f1ap.cnf" +#line 795 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -4029,7 +4061,7 @@ dissect_f1ap_DUtoCURRCContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a static int dissect_f1ap_MeasGapConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 887 "./asn1/f1ap/f1ap.cnf" +#line 904 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -4048,7 +4080,7 @@ dissect_f1ap_MeasGapConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ static int dissect_f1ap_T_requestedP_MaxFR1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 895 "./asn1/f1ap/f1ap.cnf" +#line 920 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -4234,7 +4266,7 @@ dissect_f1ap_EUTRA_Mode_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_f1ap_ProtectedEUTRAResourceIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 998 "./asn1/f1ap/f1ap.cnf" +#line 1023 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -4565,7 +4597,7 @@ dissect_f1ap_ExecuteDuplication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a static int dissect_f1ap_EUTRA_NR_CellResourceCoordinationReq_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 699 "./asn1/f1ap/f1ap.cnf" +#line 707 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -4584,7 +4616,7 @@ dissect_f1ap_EUTRA_NR_CellResourceCoordinationReq_Container(tvbuff_t *tvb _U_, i static int dissect_f1ap_EUTRA_NR_CellResourceCoordinationReqAck_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 707 "./asn1/f1ap/f1ap.cnf" +#line 715 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -4827,7 +4859,7 @@ dissect_f1ap_FullConfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static int dissect_f1ap_CG_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 831 "./asn1/f1ap/f1ap.cnf" +#line 848 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -4846,7 +4878,7 @@ dissect_f1ap_CG_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, static int dissect_f1ap_T_sIBtype(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 921 "./asn1/f1ap/f1ap.cnf" +#line 946 "./asn1/f1ap/f1ap.cnf" f1ap_private_data_t *f1ap_data = f1ap_get_private_data(actx->pinfo); offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 2U, 32U, &f1ap_data->sib_type, TRUE); @@ -4861,7 +4893,7 @@ dissect_f1ap_T_sIBtype(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, static int dissect_f1ap_T_sIBmessage_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 925 "./asn1/f1ap/f1ap.cnf" +#line 950 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -5099,7 +5131,7 @@ dissect_f1ap_GNB_DU_Name(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ static int dissect_f1ap_Configured_EPS_TAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 914 "./asn1/f1ap/f1ap.cnf" +#line 939 "./asn1/f1ap/f1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, 2, 2, FALSE, ¶meter_tvb); @@ -5157,7 +5189,7 @@ dissect_f1ap_NR_Mode_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U static int dissect_f1ap_T_measurementTimingConfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 786 "./asn1/f1ap/f1ap.cnf" +#line 803 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -5197,7 +5229,7 @@ dissect_f1ap_Served_Cell_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx static int dissect_f1ap_MIB_message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 812 "./asn1/f1ap/f1ap.cnf" +#line 829 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -5216,7 +5248,7 @@ dissect_f1ap_MIB_message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ static int dissect_f1ap_SIB1_message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 820 "./asn1/f1ap/f1ap.cnf" +#line 837 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -5314,7 +5346,7 @@ dissect_f1ap_GNB_DU_TNL_Association_To_Remove_Item(tvbuff_t *tvb _U_, int offset static int dissect_f1ap_HandoverPreparationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 863 "./asn1/f1ap/f1ap.cnf" +#line 880 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -5401,9 +5433,28 @@ dissect_f1ap_MaskedIMEISV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U +static int +dissect_f1ap_MeasGapSharingConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 912 "./asn1/f1ap/f1ap.cnf" + tvbuff_t *param_tvb = NULL; + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); + + if (param_tvb) { + proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_MeasGapSharingConfig); + dissect_nr_rrc_MeasGapSharingConfig_PDU(param_tvb, actx->pinfo, subtree, NULL); + } + + + + return offset; +} + + + static int dissect_f1ap_MeasurementTimingConfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 879 "./asn1/f1ap/f1ap.cnf" +#line 896 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -5617,7 +5668,7 @@ dissect_f1ap_PagingPriority(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_f1ap_PDCCH_BlindDetectionSCG(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1056 "./asn1/f1ap/f1ap.cnf" +#line 1081 "./asn1/f1ap/f1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb); @@ -5671,7 +5722,7 @@ dissect_f1ap_PDUSessionID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U static int dissect_f1ap_Ph_InfoMCG(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1076 "./asn1/f1ap/f1ap.cnf" +#line 1101 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -5690,7 +5741,7 @@ dissect_f1ap_Ph_InfoMCG(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, static int dissect_f1ap_Ph_InfoSCG(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1084 "./asn1/f1ap/f1ap.cnf" +#line 1109 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -5709,7 +5760,7 @@ dissect_f1ap_Ph_InfoSCG(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, static int dissect_f1ap_PortNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 805 "./asn1/f1ap/f1ap.cnf" +#line 822 "./asn1/f1ap/f1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, -1, 16, 16, FALSE, NULL, 0, ¶meter_tvb, NULL); @@ -5784,7 +5835,7 @@ dissect_f1ap_PWS_Failed_NR_CGI_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ static int dissect_f1ap_SIBType_PWS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 961 "./asn1/f1ap/f1ap.cnf" +#line 986 "./asn1/f1ap/f1ap.cnf" f1ap_private_data_t *f1ap_data = f1ap_get_private_data(actx->pinfo); offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 6U, 8U, &f1ap_data->sib_type, TRUE); @@ -5799,7 +5850,7 @@ dissect_f1ap_SIBType_PWS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ static int dissect_f1ap_T_sIBmessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 965 "./asn1/f1ap/f1ap.cnf" +#line 990 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -5932,7 +5983,7 @@ dissect_f1ap_Reestablishment_Indication(tvbuff_t *tvb _U_, int offset _U_, asn1_ static int dissect_f1ap_RequestedBandCombinationIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1092 "./asn1/f1ap/f1ap.cnf" +#line 1117 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -5951,7 +6002,7 @@ dissect_f1ap_RequestedBandCombinationIndex(tvbuff_t *tvb _U_, int offset _U_, as static int dissect_f1ap_RequestedFeatureSetEntryIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1100 "./asn1/f1ap/f1ap.cnf" +#line 1125 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -5970,7 +6021,7 @@ dissect_f1ap_RequestedFeatureSetEntryIndex(tvbuff_t *tvb _U_, int offset _U_, as static int dissect_f1ap_Requested_PDCCH_BlindDetectionSCG(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1066 "./asn1/f1ap/f1ap.cnf" +#line 1091 "./asn1/f1ap/f1ap.cnf" tvbuff_t *parameter_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb); @@ -5988,7 +6039,7 @@ dissect_f1ap_Requested_PDCCH_BlindDetectionSCG(tvbuff_t *tvb _U_, int offset _U_ static int dissect_f1ap_RequestedP_MaxFR2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1108 "./asn1/f1ap/f1ap.cnf" +#line 1133 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -6055,7 +6106,7 @@ dissect_f1ap_ResourceCoordinationTransferInformation(tvbuff_t *tvb _U_, int offs static int dissect_f1ap_ResourceCoordinationTransferContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 715 "./asn1/f1ap/f1ap.cnf" +#line 723 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -6146,7 +6197,7 @@ dissect_f1ap_RLC_Status(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, static int dissect_f1ap_RRCContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 755 "./asn1/f1ap/f1ap.cnf" +#line 763 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -6177,6 +6228,26 @@ dissect_f1ap_RRCContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U } + +static int +dissect_f1ap_RRCContainer_RRCSetupComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 786 "./asn1/f1ap/f1ap.cnf" + tvbuff_t *param_tvb = NULL; + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); + + if (param_tvb) { + proto_tree *subtree; + subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_RRCContainer_RRCSetupComplete); + call_dissector(nr_rrc_ul_dcch_handle, param_tvb, actx->pinfo, subtree); + } + + + + return offset; +} + + static const per_sequence_t RRCDeliveryStatus_sequence[] = { { &hf_f1ap_delivery_status, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_PDCP_SN }, { &hf_f1ap_triggering_message, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_PDCP_SN }, @@ -6252,14 +6323,14 @@ dissect_f1ap_RRC_Version(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ static int dissect_f1ap_Latest_RRC_Version_Enhanced(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1014 "./asn1/f1ap/f1ap.cnf" +#line 1039 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 3, 3, FALSE, ¶m_tvb); -#line 1017 "./asn1/f1ap/f1ap.cnf" +#line 1042 "./asn1/f1ap/f1ap.cnf" if (param_tvb) { proto_item_set_text(actx->created_item, "%u.%u.%u", tvb_get_guint8(param_tvb, 0), tvb_get_guint8(param_tvb, 1), tvb_get_guint8(param_tvb, 2)); } @@ -6654,6 +6725,16 @@ dissect_f1ap_SULAccessIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * } + +static int +dissect_f1ap_SystemInformationAreaID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 24, 24, FALSE, NULL, 0, NULL, NULL); + + return offset; +} + + static const value_string f1ap_TimeToWait_vals[] = { { 0, "v1s" }, { 1, "v2s" }, @@ -6872,7 +6953,7 @@ dissect_f1ap_UE_associatedLogicalF1_ConnectionItem(tvbuff_t *tvb _U_, int offset static int dissect_f1ap_UEAssistanceInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1116 "./asn1/f1ap/f1ap.cnf" +#line 1141 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -6938,7 +7019,7 @@ dissect_f1ap_UEIdentityIndexValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int dissect_f1ap_UplinkTxDirectCurrentListInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1006 "./asn1/f1ap/f1ap.cnf" +#line 1031 "./asn1/f1ap/f1ap.cnf" tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); @@ -6961,7 +7042,7 @@ static const per_sequence_t Reset_sequence[] = { static int dissect_f1ap_Reset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1124 "./asn1/f1ap/f1ap.cnf" +#line 1149 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Reset"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7031,7 +7112,7 @@ static const per_sequence_t ResetAcknowledge_sequence[] = { static int dissect_f1ap_ResetAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1126 "./asn1/f1ap/f1ap.cnf" +#line 1151 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7062,7 +7143,7 @@ static const per_sequence_t ErrorIndication_sequence[] = { static int dissect_f1ap_ErrorIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1176 "./asn1/f1ap/f1ap.cnf" +#line 1201 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ErrorIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7079,7 +7160,7 @@ static const per_sequence_t F1SetupRequest_sequence[] = { static int dissect_f1ap_F1SetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1128 "./asn1/f1ap/f1ap.cnf" +#line 1153 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "F1SetupRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7110,7 +7191,7 @@ static const per_sequence_t F1SetupResponse_sequence[] = { static int dissect_f1ap_F1SetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1130 "./asn1/f1ap/f1ap.cnf" +#line 1155 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "F1SetupResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7141,7 +7222,7 @@ static const per_sequence_t F1SetupFailure_sequence[] = { static int dissect_f1ap_F1SetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1132 "./asn1/f1ap/f1ap.cnf" +#line 1157 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "F1SetupFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7158,7 +7239,7 @@ static const per_sequence_t GNBDUConfigurationUpdate_sequence[] = { static int dissect_f1ap_GNBDUConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1134 "./asn1/f1ap/f1ap.cnf" +#line 1159 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBDUConfigurationUpdate"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7259,7 +7340,7 @@ static const per_sequence_t GNBDUConfigurationUpdateAcknowledge_sequence[] = { static int dissect_f1ap_GNBDUConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1136 "./asn1/f1ap/f1ap.cnf" +#line 1161 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBDUConfigurationUpdateAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7276,7 +7357,7 @@ static const per_sequence_t GNBDUConfigurationUpdateFailure_sequence[] = { static int dissect_f1ap_GNBDUConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1138 "./asn1/f1ap/f1ap.cnf" +#line 1163 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBDUConfigurationUpdateFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7293,7 +7374,7 @@ static const per_sequence_t GNBCUConfigurationUpdate_sequence[] = { static int dissect_f1ap_GNBCUConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1140 "./asn1/f1ap/f1ap.cnf" +#line 1165 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBCUConfigurationUpdate"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7394,7 +7475,7 @@ static const per_sequence_t GNBCUConfigurationUpdateAcknowledge_sequence[] = { static int dissect_f1ap_GNBCUConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1142 "./asn1/f1ap/f1ap.cnf" +#line 1167 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBCUConfigurationUpdateAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7453,7 +7534,7 @@ static const per_sequence_t GNBCUConfigurationUpdateFailure_sequence[] = { static int dissect_f1ap_GNBCUConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1144 "./asn1/f1ap/f1ap.cnf" +#line 1169 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBCUConfigurationUpdateFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7470,7 +7551,7 @@ static const per_sequence_t GNBDUResourceCoordinationRequest_sequence[] = { static int dissect_f1ap_GNBDUResourceCoordinationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1188 "./asn1/f1ap/f1ap.cnf" +#line 1213 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBDUResourceCoordinationRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7487,7 +7568,7 @@ static const per_sequence_t GNBDUResourceCoordinationResponse_sequence[] = { static int dissect_f1ap_GNBDUResourceCoordinationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1190 "./asn1/f1ap/f1ap.cnf" +#line 1215 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBDUResourceCoordinationResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7504,7 +7585,7 @@ static const per_sequence_t UEContextSetupRequest_sequence[] = { static int dissect_f1ap_UEContextSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1146 "./asn1/f1ap/f1ap.cnf" +#line 1171 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSetupRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7577,7 +7658,7 @@ static const per_sequence_t UEContextSetupResponse_sequence[] = { static int dissect_f1ap_UEContextSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1148 "./asn1/f1ap/f1ap.cnf" +#line 1173 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSetupResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7664,7 +7745,7 @@ static const per_sequence_t UEContextSetupFailure_sequence[] = { static int dissect_f1ap_UEContextSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1150 "./asn1/f1ap/f1ap.cnf" +#line 1175 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSetupFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7695,7 +7776,7 @@ static const per_sequence_t UEContextReleaseRequest_sequence[] = { static int dissect_f1ap_UEContextReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1178 "./asn1/f1ap/f1ap.cnf" +#line 1203 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7712,7 +7793,7 @@ static const per_sequence_t UEContextReleaseCommand_sequence[] = { static int dissect_f1ap_UEContextReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1152 "./asn1/f1ap/f1ap.cnf" +#line 1177 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseCommand"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7729,7 +7810,7 @@ static const per_sequence_t UEContextReleaseComplete_sequence[] = { static int dissect_f1ap_UEContextReleaseComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1154 "./asn1/f1ap/f1ap.cnf" +#line 1179 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseComplete"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7746,7 +7827,7 @@ static const per_sequence_t UEContextModificationRequest_sequence[] = { static int dissect_f1ap_UEContextModificationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1156 "./asn1/f1ap/f1ap.cnf" +#line 1181 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7861,7 +7942,7 @@ static const per_sequence_t UEContextModificationResponse_sequence[] = { static int dissect_f1ap_UEContextModificationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1158 "./asn1/f1ap/f1ap.cnf" +#line 1183 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8004,7 +8085,7 @@ static const per_sequence_t UEContextModificationFailure_sequence[] = { static int dissect_f1ap_UEContextModificationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1160 "./asn1/f1ap/f1ap.cnf" +#line 1185 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8021,7 +8102,7 @@ static const per_sequence_t UEContextModificationRequired_sequence[] = { static int dissect_f1ap_UEContextModificationRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1162 "./asn1/f1ap/f1ap.cnf" +#line 1187 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationRequired"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8080,7 +8161,7 @@ static const per_sequence_t UEContextModificationConfirm_sequence[] = { static int dissect_f1ap_UEContextModificationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1164 "./asn1/f1ap/f1ap.cnf" +#line 1189 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationConfirm"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8111,7 +8192,7 @@ static const per_sequence_t UEContextModificationRefuse_sequence[] = { static int dissect_f1ap_UEContextModificationRefuse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1166 "./asn1/f1ap/f1ap.cnf" +#line 1191 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationRefuse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8128,7 +8209,7 @@ static const per_sequence_t WriteReplaceWarningRequest_sequence[] = { static int dissect_f1ap_WriteReplaceWarningRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1168 "./asn1/f1ap/f1ap.cnf" +#line 1193 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8159,7 +8240,7 @@ static const per_sequence_t WriteReplaceWarningResponse_sequence[] = { static int dissect_f1ap_WriteReplaceWarningResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1170 "./asn1/f1ap/f1ap.cnf" +#line 1195 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "WriteReplaceWarningResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8190,7 +8271,7 @@ static const per_sequence_t PWSCancelRequest_sequence[] = { static int dissect_f1ap_PWSCancelRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1172 "./asn1/f1ap/f1ap.cnf" +#line 1197 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSCancelRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8221,7 +8302,7 @@ static const per_sequence_t PWSCancelResponse_sequence[] = { static int dissect_f1ap_PWSCancelResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1174 "./asn1/f1ap/f1ap.cnf" +#line 1199 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSCancelResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8252,7 +8333,7 @@ static const per_sequence_t UEInactivityNotification_sequence[] = { static int dissect_f1ap_UEInactivityNotification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1186 "./asn1/f1ap/f1ap.cnf" +#line 1211 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEInactivityNotification"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8283,7 +8364,7 @@ static const per_sequence_t InitialULRRCMessageTransfer_sequence[] = { static int dissect_f1ap_InitialULRRCMessageTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1180 "./asn1/f1ap/f1ap.cnf" +#line 1205 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "InitialULRRCMessageTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8300,7 +8381,7 @@ static const per_sequence_t DLRRCMessageTransfer_sequence[] = { static int dissect_f1ap_DLRRCMessageTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1182 "./asn1/f1ap/f1ap.cnf" +#line 1207 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DLRRCMessageTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8327,7 +8408,7 @@ static const per_sequence_t ULRRCMessageTransfer_sequence[] = { static int dissect_f1ap_ULRRCMessageTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1184 "./asn1/f1ap/f1ap.cnf" +#line 1209 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ULRRCMessageTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8344,7 +8425,7 @@ static const per_sequence_t PrivateMessage_sequence[] = { static int dissect_f1ap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1192 "./asn1/f1ap/f1ap.cnf" +#line 1217 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PrivateMessage"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8361,7 +8442,7 @@ static const per_sequence_t SystemInformationDeliveryCommand_sequence[] = { static int dissect_f1ap_SystemInformationDeliveryCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1194 "./asn1/f1ap/f1ap.cnf" +#line 1219 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SystemInformationDeliveryCommand"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8378,7 +8459,7 @@ static const per_sequence_t Paging_sequence[] = { static int dissect_f1ap_Paging(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1196 "./asn1/f1ap/f1ap.cnf" +#line 1221 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Paging"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8409,7 +8490,7 @@ static const per_sequence_t Notify_sequence[] = { static int dissect_f1ap_Notify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1198 "./asn1/f1ap/f1ap.cnf" +#line 1223 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Notify"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8440,7 +8521,7 @@ static const per_sequence_t NetworkAccessRateReduction_sequence[] = { static int dissect_f1ap_NetworkAccessRateReduction(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1200 "./asn1/f1ap/f1ap.cnf" +#line 1225 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NetworkAccessRateReduction"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8457,7 +8538,7 @@ static const per_sequence_t PWSRestartIndication_sequence[] = { static int dissect_f1ap_PWSRestartIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1202 "./asn1/f1ap/f1ap.cnf" +#line 1227 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSRestartIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8488,7 +8569,7 @@ static const per_sequence_t PWSFailureIndication_sequence[] = { static int dissect_f1ap_PWSFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1204 "./asn1/f1ap/f1ap.cnf" +#line 1229 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWSFailureIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8519,7 +8600,7 @@ static const per_sequence_t GNBDUStatusIndication_sequence[] = { static int dissect_f1ap_GNBDUStatusIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1206 "./asn1/f1ap/f1ap.cnf" +#line 1231 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBDUStatusIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8536,7 +8617,7 @@ static const per_sequence_t RRCDeliveryReport_sequence[] = { static int dissect_f1ap_RRCDeliveryReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1208 "./asn1/f1ap/f1ap.cnf" +#line 1233 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRCDeliveryReport"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8553,7 +8634,7 @@ static const per_sequence_t F1RemovalRequest_sequence[] = { static int dissect_f1ap_F1RemovalRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1211 "./asn1/f1ap/f1ap.cnf" +#line 1236 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "F1RemovalRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8570,7 +8651,7 @@ static const per_sequence_t F1RemovalResponse_sequence[] = { static int dissect_f1ap_F1RemovalResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1214 "./asn1/f1ap/f1ap.cnf" +#line 1239 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "F1RemovalResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8587,7 +8668,7 @@ static const per_sequence_t F1RemovalFailure_sequence[] = { static int dissect_f1ap_F1RemovalFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1217 "./asn1/f1ap/f1ap.cnf" +#line 1242 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "F1RemovalFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -8735,6 +8816,14 @@ static int dissect_AvailablePLMNList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _ offset += 7; offset >>= 3; return offset; } +static int dissect_AreaScope_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_f1ap_AreaScope(tvb, offset, &asn1_ctx, tree, hf_f1ap_AreaScope_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_BitRate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -9343,6 +9432,14 @@ static int dissect_MaskedIMEISV_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, p offset += 7; offset >>= 3; return offset; } +static int dissect_MeasGapSharingConfig_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_f1ap_MeasGapSharingConfig(tvb, offset, &asn1_ctx, tree, hf_f1ap_MeasGapSharingConfig_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_MeasurementTimingConfiguration_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -9647,6 +9744,14 @@ static int dissect_RRCContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, p offset += 7; offset >>= 3; return offset; } +static int dissect_RRCContainer_RRCSetupComplete_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_f1ap_RRCContainer_RRCSetupComplete(tvb, offset, &asn1_ctx, tree, hf_f1ap_RRCContainer_RRCSetupComplete_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_RRCDeliveryStatus_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -9887,6 +9992,14 @@ static int dissect_SULAccessIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo offset += 7; offset >>= 3; return offset; } +static int dissect_SystemInformationAreaID_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_f1ap_SystemInformationAreaID(tvb, offset, &asn1_ctx, tree, hf_f1ap_SystemInformationAreaID_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_TimeToWait_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -10810,7 +10923,7 @@ static int dissect_F1AP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto /*--- End of included file: packet-f1ap-fn.c ---*/ -#line 140 "./asn1/f1ap/packet-f1ap-template.c" +#line 143 "./asn1/f1ap/packet-f1ap-template.c" static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) { @@ -10906,6 +11019,10 @@ void proto_register_f1ap(void) { { "AvailablePLMNList", "f1ap.AvailablePLMNList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_f1ap_AreaScope_PDU, + { "AreaScope", "f1ap.AreaScope", + FT_UINT32, BASE_DEC, VALS(f1ap_AreaScope_vals), 0, + NULL, HFILL }}, { &hf_f1ap_BitRate_PDU, { "BitRate", "f1ap.BitRate", FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0, @@ -11210,6 +11327,10 @@ void proto_register_f1ap(void) { { "MaskedIMEISV", "f1ap.MaskedIMEISV", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_f1ap_MeasGapSharingConfig_PDU, + { "MeasGapSharingConfig", "f1ap.MeasGapSharingConfig", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_f1ap_MeasurementTimingConfiguration_PDU, { "MeasurementTimingConfiguration", "f1ap.MeasurementTimingConfiguration", FT_BYTES, BASE_NONE, NULL, 0, @@ -11362,6 +11483,10 @@ void proto_register_f1ap(void) { { "RRCContainer", "f1ap.RRCContainer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_f1ap_RRCContainer_RRCSetupComplete_PDU, + { "RRCContainer-RRCSetupComplete", "f1ap.RRCContainer_RRCSetupComplete", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_f1ap_RRCDeliveryStatus_PDU, { "RRCDeliveryStatus", "f1ap.RRCDeliveryStatus_element", FT_NONE, BASE_NONE, NULL, 0, @@ -11482,6 +11607,10 @@ void proto_register_f1ap(void) { { "SULAccessIndication", "f1ap.SULAccessIndication", FT_UINT32, BASE_DEC, VALS(f1ap_SULAccessIndication_vals), 0, NULL, HFILL }}, + { &hf_f1ap_SystemInformationAreaID_PDU, + { "SystemInformationAreaID", "f1ap.SystemInformationAreaID", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_f1ap_TimeToWait_PDU, { "TimeToWait", "f1ap.TimeToWait", FT_UINT32, BASE_DEC, VALS(f1ap_TimeToWait_vals), 0, @@ -13140,7 +13269,7 @@ void proto_register_f1ap(void) { "UnsuccessfulOutcome_value", HFILL }}, /*--- End of included file: packet-f1ap-hfarr.c ---*/ -#line 221 "./asn1/f1ap/packet-f1ap-template.c" +#line 224 "./asn1/f1ap/packet-f1ap-template.c" }; /* List of subtrees */ @@ -13160,10 +13289,12 @@ void proto_register_f1ap(void) { &ett_f1ap_HandoverPreparationInformation, &ett_f1ap_MeasConfig, &ett_f1ap_MeasGapConfig, + &ett_f1ap_MeasGapSharingConfig, &ett_f1ap_EUTRA_NR_CellResourceCoordinationReq_Container, &ett_f1ap_EUTRA_NR_CellResourceCoordinationReqAck_Container, &ett_f1ap_ProtectedEUTRAResourceIndication, &ett_f1ap_RRCContainer, + &ett_f1ap_RRCContainer_RRCSetupComplete, &ett_f1ap_sIBmessage, &ett_f1ap_UplinkTxDirectCurrentListInformation, &ett_f1ap_DRX_Config, @@ -13448,7 +13579,7 @@ void proto_register_f1ap(void) { &ett_f1ap_UnsuccessfulOutcome, /*--- End of included file: packet-f1ap-ettarr.c ---*/ -#line 255 "./asn1/f1ap/packet-f1ap-template.c" +#line 260 "./asn1/f1ap/packet-f1ap-template.c" }; /* Register protocol */ @@ -13474,6 +13605,7 @@ proto_reg_handoff_f1ap(void) dissector_add_uint_with_preference("sctp.port", SCTP_PORT_F1AP, f1ap_handle); dissector_add_uint("sctp.ppi", F1AP_PROTOCOL_ID, f1ap_handle); nr_rrc_ul_ccch_handle = find_dissector_add_dependency("nr-rrc.ul.ccch", proto_f1ap); + nr_rrc_ul_dcch_handle = find_dissector_add_dependency("nr-rrc.ul.dcch", proto_f1ap); /*--- Included file: packet-f1ap-dis-tab.c ---*/ #line 1 "./asn1/f1ap/packet-f1ap-dis-tab.c" @@ -13660,6 +13792,7 @@ proto_reg_handoff_f1ap(void) dissector_add_uint("f1ap.ies", id_RANUEID, create_dissector_handle(dissect_RANUEID_PDU, proto_f1ap)); dissector_add_uint("f1ap.ies", id_GNB_DU_TNL_Association_To_Remove_Item, create_dissector_handle(dissect_GNB_DU_TNL_Association_To_Remove_Item_PDU, proto_f1ap)); dissector_add_uint("f1ap.ies", id_GNB_DU_TNL_Association_To_Remove_List, create_dissector_handle(dissect_GNB_DU_TNL_Association_To_Remove_List_PDU, proto_f1ap)); + dissector_add_uint("f1ap.ies", id_RRCContainer_RRCSetupComplete, create_dissector_handle(dissect_RRCContainer_RRCSetupComplete_PDU, proto_f1ap)); dissector_add_uint("f1ap.extension", id_gNB_CUSystemInformation, create_dissector_handle(dissect_GNB_CUSystemInformation_PDU, proto_f1ap)); dissector_add_uint("f1ap.extension", id_HandoverPreparationInformation, create_dissector_handle(dissect_HandoverPreparationInformation_PDU, proto_f1ap)); dissector_add_uint("f1ap.extension", id_TAISliceSupportList, create_dissector_handle(dissect_SliceSupportList_PDU, proto_f1ap)); @@ -13704,6 +13837,9 @@ proto_reg_handoff_f1ap(void) dissector_add_uint("f1ap.extension", id_PDCCH_BlindDetectionSCG, create_dissector_handle(dissect_PDCCH_BlindDetectionSCG_PDU, proto_f1ap)); dissector_add_uint("f1ap.extension", id_Requested_PDCCH_BlindDetectionSCG, create_dissector_handle(dissect_Requested_PDCCH_BlindDetectionSCG_PDU, proto_f1ap)); dissector_add_uint("f1ap.extension", id_Ph_InfoMCG, create_dissector_handle(dissect_Ph_InfoMCG_PDU, proto_f1ap)); + dissector_add_uint("f1ap.extension", id_MeasGapSharingConfig, create_dissector_handle(dissect_MeasGapSharingConfig_PDU, proto_f1ap)); + dissector_add_uint("f1ap.extension", id_systemInformationAreaID, create_dissector_handle(dissect_SystemInformationAreaID_PDU, proto_f1ap)); + dissector_add_uint("f1ap.extension", id_areaScope, create_dissector_handle(dissect_AreaScope_PDU, proto_f1ap)); dissector_add_uint("f1ap.proc.imsg", id_Reset, create_dissector_handle(dissect_Reset_PDU, proto_f1ap)); dissector_add_uint("f1ap.proc.sout", id_Reset, create_dissector_handle(dissect_ResetAcknowledge_PDU, proto_f1ap)); dissector_add_uint("f1ap.proc.imsg", id_F1Setup, create_dissector_handle(dissect_F1SetupRequest_PDU, proto_f1ap)); @@ -13753,7 +13889,7 @@ proto_reg_handoff_f1ap(void) /*--- End of included file: packet-f1ap-dis-tab.c ---*/ -#line 281 "./asn1/f1ap/packet-f1ap-template.c" +#line 287 "./asn1/f1ap/packet-f1ap-template.c" } /* diff --git a/epan/dissectors/packet-nr-rrc.c b/epan/dissectors/packet-nr-rrc.c index c58109939a..5c6c1c02f4 100644 --- a/epan/dissectors/packet-nr-rrc.c +++ b/epan/dissectors/packet-nr-rrc.c @@ -290,6 +290,7 @@ static int hf_nr_rrc_nr_rrc_CellGroupConfig_PDU = -1; /* CellGroupConfig */ static int hf_nr_rrc_nr_rrc_DRX_Config_PDU = -1; /* DRX_Config */ static int hf_nr_rrc_nr_rrc_MeasConfig_PDU = -1; /* MeasConfig */ static int hf_nr_rrc_nr_rrc_MeasGapConfig_PDU = -1; /* MeasGapConfig */ +static int hf_nr_rrc_nr_rrc_MeasGapSharingConfig_PDU = -1; /* MeasGapSharingConfig */ static int hf_nr_rrc_nr_rrc_MeasResultSCG_Failure_PDU = -1; /* MeasResultSCG_Failure */ static int hf_nr_rrc_nr_rrc_P_Max_PDU = -1; /* P_Max */ static int hf_nr_rrc_nr_rrc_RadioBearerConfig_PDU = -1; /* RadioBearerConfig */ @@ -18186,6 +18187,8 @@ static const per_sequence_t MeasGapSharingConfig_sequence[] = { static int dissect_nr_rrc_MeasGapSharingConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA); + proto_item_set_hidden(prot_ti); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_nr_rrc_MeasGapSharingConfig, MeasGapSharingConfig_sequence); @@ -44283,6 +44286,16 @@ int dissect_nr_rrc_MeasGapConfig_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, offset += 7; offset >>= 3; return offset; } +int dissect_nr_rrc_MeasGapSharingConfig_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA); + proto_item_set_hidden(prot_ti); + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo); + offset = dissect_nr_rrc_MeasGapSharingConfig(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_nr_rrc_MeasGapSharingConfig_PDU); + offset += 7; offset >>= 3; + return offset; +} int dissect_nr_rrc_MeasResultSCG_Failure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA); proto_item_set_hidden(prot_ti); @@ -44579,6 +44592,10 @@ proto_register_nr_rrc(void) { { "MeasGapConfig", "nr-rrc.MeasGapConfig_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_nr_rrc_MeasGapSharingConfig_PDU, + { "MeasGapSharingConfig", "nr-rrc.MeasGapSharingConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_nr_rrc_MeasResultSCG_Failure_PDU, { "MeasResultSCG-Failure", "nr-rrc.MeasResultSCG_Failure_element", FT_NONE, BASE_NONE, NULL, 0, diff --git a/epan/dissectors/packet-nr-rrc.h b/epan/dissectors/packet-nr-rrc.h index 6726ea17b3..068bf1e5a1 100644 --- a/epan/dissectors/packet-nr-rrc.h +++ b/epan/dissectors/packet-nr-rrc.h @@ -52,6 +52,7 @@ int dissect_nr_rrc_CellGroupConfig_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_ int dissect_nr_rrc_DRX_Config_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_nr_rrc_MeasConfig_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_nr_rrc_MeasGapConfig_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); +int dissect_nr_rrc_MeasGapSharingConfig_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_nr_rrc_MeasResultSCG_Failure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_nr_rrc_P_Max_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_nr_rrc_RadioBearerConfig_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);