From b4cd8c0a8e727c633769917814aa2227d8df0572 Mon Sep 17 00:00:00 2001 From: Anders Broman Date: Mon, 4 Oct 2021 22:59:08 +0200 Subject: [PATCH] NR RRC: Register protocols which sets proto and info columns. --- epan/dissectors/asn1/nr-rrc/nr-rrc.cnf | 6 +- .../asn1/nr-rrc/packet-nr-rrc-template.c | 61 ++++++++++++++++ epan/dissectors/packet-nr-rrc.c | 72 +++++++++++++++++-- 3 files changed, 129 insertions(+), 10 deletions(-) diff --git a/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf b/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf index ff7816f52d..cf99fcac7c 100644 --- a/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf +++ b/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf @@ -123,7 +123,7 @@ BCCH-BCH-Message @bcch.bch BCCH-DL-SCH-Message @bcch.dl.sch CellGroupConfig CG-Config -CG-ConfigInfo @cg_configinfo +CG-ConfigInfo ConfigRestrictInfoSCG DL-CCCH-Message @dl.ccch DL-DCCH-Message @dl.dcch @@ -146,7 +146,7 @@ PH-TypeListMCG PH-TypeListSCG RA-ReportList-r16 RACH-ConfigCommon -RadioBearerConfig @radiobearerconfig +RadioBearerConfig ReferenceTime-r16 RRCReconfiguration @rrc_reconf RRCReconfigurationComplete @@ -172,7 +172,7 @@ SIB12-r16 SIB13-r16 SIB14-r16 TDD-UL-DL-ConfigCommon -UE-CapabilityRAT-ContainerList @ue_capabilityrat_containerlist +UE-CapabilityRAT-ContainerList UE-CapabilityRequestFilterCommon UE-CapabilityRequestFilterNR UE-MRDC-Capability @ue_mrdc_cap diff --git a/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c b/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c index 483e5a9485..9d2e88723b 100644 --- a/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c +++ b/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c @@ -528,6 +528,61 @@ nr_rrc_MeasTriggerQuantityOffset_fmt(gchar *s, guint32 v) g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB (%d)", (float)d/2, d); } +static int +dissect_nr_rrc_cg_configinfo_msg(tvbuff_t* tvb _U_, packet_info* pinfo _U_, proto_tree* tree _U_, void* data _U_) +{ + proto_item* ti; + proto_tree* sub_tree; + + col_set_str(pinfo->cinfo, COL_PROTOCOL, "NR RRC"); + col_set_str(pinfo->cinfo, COL_INFO, "CG-ConfigInfo"); + + ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA); + sub_tree = proto_item_add_subtree(ti, ett_nr_rrc); + return dissect_nr_rrc_CG_ConfigInfo_PDU(tvb, pinfo, sub_tree, NULL); +} + +static int +dissect_nr_rrc_radiobearerconfig_msg(tvbuff_t* tvb _U_, packet_info* pinfo _U_, proto_tree* tree _U_, void* data _U_) +{ + proto_item* ti; + proto_tree* sub_tree; + + col_set_str(pinfo->cinfo, COL_PROTOCOL, "NR RRC"); + col_set_str(pinfo->cinfo, COL_INFO, "RadioBearerConfig"); + + ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA); + sub_tree = proto_item_add_subtree(ti, ett_nr_rrc); + return dissect_nr_rrc_RadioBearerConfig_PDU(tvb, pinfo, sub_tree, NULL); +} + +static int +dissect_nr_rrc_ue_mrdc_capability_msg(tvbuff_t* tvb _U_, packet_info* pinfo _U_, proto_tree* tree _U_, void* data _U_) +{ + proto_item* ti; + proto_tree* sub_tree; + + col_set_str(pinfo->cinfo, COL_PROTOCOL, "NR RRC"); + col_set_str(pinfo->cinfo, COL_INFO, "UE-MRDC-Capability"); + + ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA); + sub_tree = proto_item_add_subtree(ti, ett_nr_rrc); + return dissect_nr_rrc_UE_MRDC_Capability_PDU(tvb, pinfo, sub_tree, NULL); +} + +static int +dissect_nr_rrc_ue_capabilityrat_containerlist_msg(tvbuff_t* tvb _U_, packet_info* pinfo _U_, proto_tree* tree _U_, void* data _U_) +{ + proto_item* ti; + proto_tree* sub_tree; + + col_set_str(pinfo->cinfo, COL_PROTOCOL, "NR RRC"); + col_set_str(pinfo->cinfo, COL_INFO, "UE-CapabilityRAT-ContainerList"); + + ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA); + sub_tree = proto_item_add_subtree(ti, ett_nr_rrc); + return dissect_nr_rrc_UE_CapabilityRAT_ContainerList_PDU(tvb, pinfo, sub_tree, NULL); +} #include "packet-nr-rrc-fn.c" int @@ -767,6 +822,12 @@ proto_register_nr_rrc(void) { expert_register_field_array(expert_nr_rrc, ei, array_length(ei)); /* Register the dissectors defined in nr-rrc.cnf */ + register_dissector("nr-rrc.cg_configinfo", dissect_nr_rrc_cg_configinfo_msg, proto_nr_rrc); + register_dissector("nr-rrc.radiobearerconfig", dissect_nr_rrc_radiobearerconfig_msg, proto_nr_rrc); + register_dissector("nr-rrc.ue_capabilityrat_containerlist", dissect_nr_rrc_ue_capabilityrat_containerlist_msg, proto_nr_rrc); + register_dissector("nr-rrc.ue_mrdc_cap_msg", dissect_nr_rrc_ue_mrdc_capability_msg, proto_nr_rrc); + + #include "packet-nr-rrc-dis-reg.c" nr_rrc_etws_cmas_dcs_hash = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), diff --git a/epan/dissectors/packet-nr-rrc.c b/epan/dissectors/packet-nr-rrc.c index b40a549fdd..921cc59c80 100644 --- a/epan/dissectors/packet-nr-rrc.c +++ b/epan/dissectors/packet-nr-rrc.c @@ -9436,6 +9436,61 @@ nr_rrc_MeasTriggerQuantityOffset_fmt(gchar *s, guint32 v) g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB (%d)", (float)d/2, d); } +static int +dissect_nr_rrc_cg_configinfo_msg(tvbuff_t* tvb _U_, packet_info* pinfo _U_, proto_tree* tree _U_, void* data _U_) +{ + proto_item* ti; + proto_tree* sub_tree; + + col_set_str(pinfo->cinfo, COL_PROTOCOL, "NR RRC"); + col_set_str(pinfo->cinfo, COL_INFO, "CG-ConfigInfo"); + + ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA); + sub_tree = proto_item_add_subtree(ti, ett_nr_rrc); + return dissect_nr_rrc_CG_ConfigInfo_PDU(tvb, pinfo, sub_tree, NULL); +} + +static int +dissect_nr_rrc_radiobearerconfig_msg(tvbuff_t* tvb _U_, packet_info* pinfo _U_, proto_tree* tree _U_, void* data _U_) +{ + proto_item* ti; + proto_tree* sub_tree; + + col_set_str(pinfo->cinfo, COL_PROTOCOL, "NR RRC"); + col_set_str(pinfo->cinfo, COL_INFO, "RadioBearerConfig"); + + ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA); + sub_tree = proto_item_add_subtree(ti, ett_nr_rrc); + return dissect_nr_rrc_RadioBearerConfig_PDU(tvb, pinfo, sub_tree, NULL); +} + +static int +dissect_nr_rrc_ue_mrdc_capability_msg(tvbuff_t* tvb _U_, packet_info* pinfo _U_, proto_tree* tree _U_, void* data _U_) +{ + proto_item* ti; + proto_tree* sub_tree; + + col_set_str(pinfo->cinfo, COL_PROTOCOL, "NR RRC"); + col_set_str(pinfo->cinfo, COL_INFO, "UE-MRDC-Capability"); + + ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA); + sub_tree = proto_item_add_subtree(ti, ett_nr_rrc); + return dissect_nr_rrc_UE_MRDC_Capability_PDU(tvb, pinfo, sub_tree, NULL); +} + +static int +dissect_nr_rrc_ue_capabilityrat_containerlist_msg(tvbuff_t* tvb _U_, packet_info* pinfo _U_, proto_tree* tree _U_, void* data _U_) +{ + proto_item* ti; + proto_tree* sub_tree; + + col_set_str(pinfo->cinfo, COL_PROTOCOL, "NR RRC"); + col_set_str(pinfo->cinfo, COL_INFO, "UE-CapabilityRAT-ContainerList"); + + ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA); + sub_tree = proto_item_add_subtree(ti, ett_nr_rrc); + return dissect_nr_rrc_UE_CapabilityRAT_ContainerList_PDU(tvb, pinfo, sub_tree, NULL); +} /*--- Included file: packet-nr-rrc-fn.c ---*/ #line 1 "./asn1/nr-rrc/packet-nr-rrc-fn.c" @@ -91527,7 +91582,7 @@ static int dissect_UE_NR_Capability_v15c0_PDU(tvbuff_t *tvb _U_, packet_info *pi /*--- End of included file: packet-nr-rrc-fn.c ---*/ -#line 532 "./asn1/nr-rrc/packet-nr-rrc-template.c" +#line 587 "./asn1/nr-rrc/packet-nr-rrc-template.c" int dissect_nr_rrc_nr_RLF_Report_r16_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { @@ -116160,7 +116215,7 @@ proto_register_nr_rrc(void) { "T_sl_Rx_256QAM_r16_01", HFILL }}, /*--- End of included file: packet-nr-rrc-hfarr.c ---*/ -#line 564 "./asn1/nr-rrc/packet-nr-rrc-template.c" +#line 619 "./asn1/nr-rrc/packet-nr-rrc-template.c" { &hf_nr_rrc_serialNumber_gs, { "Geographical Scope", "nr-rrc.serialNumber.gs", @@ -118746,7 +118801,7 @@ proto_register_nr_rrc(void) { &ett_nr_rrc_T_csi_ReportSidelink_r16, /*--- End of included file: packet-nr-rrc-ettarr.c ---*/ -#line 702 "./asn1/nr-rrc/packet-nr-rrc-template.c" +#line 757 "./asn1/nr-rrc/packet-nr-rrc-template.c" &ett_nr_rrc_DedicatedNAS_Message, &ett_nr_rrc_targetRAT_MessageContainer, &ett_nr_rrc_nas_Container, @@ -118815,10 +118870,15 @@ proto_register_nr_rrc(void) { expert_register_field_array(expert_nr_rrc, ei, array_length(ei)); /* Register the dissectors defined in nr-rrc.cnf */ + register_dissector("nr-rrc.cg_configinfo", dissect_nr_rrc_cg_configinfo_msg, proto_nr_rrc); + register_dissector("nr-rrc.radiobearerconfig", dissect_nr_rrc_radiobearerconfig_msg, proto_nr_rrc); + register_dissector("nr-rrc.ue_capabilityrat_containerlist", dissect_nr_rrc_ue_capabilityrat_containerlist_msg, proto_nr_rrc); + register_dissector("nr-rrc.ue_mrdc_cap_msg", dissect_nr_rrc_ue_mrdc_capability_msg, proto_nr_rrc); + + /*--- Included file: packet-nr-rrc-dis-reg.c ---*/ #line 1 "./asn1/nr-rrc/packet-nr-rrc-dis-reg.c" - register_dissector("nr-rrc.cg_configinfo", dissect_nr_rrc_CG_ConfigInfo_PDU, proto_nr_rrc); register_dissector("nr-rrc.ue_radio_paging_info", dissect_nr_rrc_UERadioPagingInformation_PDU, proto_nr_rrc); register_dissector("nr-rrc.ue_radio_access_cap_info", dissect_UERadioAccessCapabilityInformation_PDU, proto_nr_rrc); register_dissector("nr-rrc.bcch.bch", dissect_BCCH_BCH_Message_PDU, proto_nr_rrc); @@ -118830,8 +118890,6 @@ proto_register_nr_rrc(void) { register_dissector("nr-rrc.ul.ccch1", dissect_UL_CCCH1_Message_PDU, proto_nr_rrc); register_dissector("nr-rrc.ul.dcch", dissect_nr_rrc_UL_DCCH_Message_PDU, proto_nr_rrc); register_dissector("nr-rrc.rrc_reconf", dissect_nr_rrc_RRCReconfiguration_PDU, proto_nr_rrc); - register_dissector("nr-rrc.radiobearerconfig", dissect_nr_rrc_RadioBearerConfig_PDU, proto_nr_rrc); - register_dissector("nr-rrc.ue_capabilityrat_containerlist", dissect_nr_rrc_UE_CapabilityRAT_ContainerList_PDU, proto_nr_rrc); register_dissector("nr-rrc.ue_mrdc_cap", dissect_nr_rrc_UE_MRDC_Capability_PDU, proto_nr_rrc); register_dissector("nr-rrc.ue_nr_cap", dissect_nr_rrc_UE_NR_Capability_PDU, proto_nr_rrc); register_dissector("nr-rrc.sbcch.sl.bch", dissect_SBCCH_SL_BCH_Message_PDU, proto_nr_rrc); @@ -118839,7 +118897,7 @@ proto_register_nr_rrc(void) { /*--- End of included file: packet-nr-rrc-dis-reg.c ---*/ -#line 771 "./asn1/nr-rrc/packet-nr-rrc-template.c" +#line 832 "./asn1/nr-rrc/packet-nr-rrc-template.c" nr_rrc_etws_cmas_dcs_hash = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash, g_direct_equal);