NR-RRC: Access more messages trough dissector handles.

This commit is contained in:
Anders Broman 2021-11-03 13:17:03 +01:00
parent fa687143b8
commit 767115558f
2 changed files with 290 additions and 4 deletions

View File

@ -160,6 +160,9 @@ static expert_field ei_nr_rrc_number_pages_le15 = EI_INIT;
/* Forward declarations */
static int dissect_UECapabilityInformationSidelink_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_DL_DCCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_DL_CCCH_Message_PDU(tvbuff_t* tvb _U_, packet_info* pinfo _U_, proto_tree* tree _U_, void* data _U_);
static int dissect_UL_CCCH_Message_PDU(tvbuff_t* tvb _U_, packet_info* pinfo _U_, proto_tree* tree _U_, void* data _U_);
static int dissect_UERadioAccessCapabilityInformation_PDU(tvbuff_t* tvb _U_, packet_info* pinfo _U_, proto_tree* tree _U_, void* data _U_);
static const unit_name_string units_periodicities = { " periodicity", " periodicities" };
static const unit_name_string units_prbs = { " PRB", " PRBs" };
@ -598,6 +601,121 @@ dissect_nr_rrc_ul_dcch_message_msg(tvbuff_t* tvb _U_, packet_info* pinfo _U_, pr
return dissect_nr_rrc_UL_DCCH_Message_PDU(tvb, pinfo, sub_tree, NULL);
}
static int
dissect_nr_rrc_dl_dcch_message_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, "DL-DCCH-Message");
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_DL_DCCH_Message_PDU(tvb, pinfo, sub_tree, NULL);
}
static int
dissect_nr_rrc_dl_ccch_message_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, "DL-CCCH-Message");
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_DL_CCCH_Message_PDU(tvb, pinfo, sub_tree, NULL);
}
static int
dissect_nr_rrc_ul_ccch_message_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, "UL-CCCH-Message");
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_UL_CCCH_Message_PDU(tvb, pinfo, sub_tree, NULL);
}
static int
dissect_nr_rrc_cellgroupconfig_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, "CellGroupConfig");
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_CellGroupConfig_PDU(tvb, pinfo, sub_tree, NULL);
}
static int
dissect_ueradioaccesscapabilityinformation_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, "UERadioAccessCapabilityInformation");
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_UERadioAccessCapabilityInformation_PDU(tvb, pinfo, sub_tree, NULL);
}
static int
dissect_nr_rrc_measconfig_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, "MeasConfig");
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_MeasConfig_PDU(tvb, pinfo, sub_tree, NULL);
}
static int
dissect_nr_rrc_measgapconfig_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, "MeasGapConfig");
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_MeasGapConfig_PDU(tvb, pinfo, sub_tree, NULL);
}
static int
dissect_nr_rrc_handoverpreparationinformation_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, "MeasGapConfig");
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_HandoverPreparationInformation_PDU(tvb, pinfo, sub_tree, NULL);
}
static int
dissect_nr_rrc_rrcreconfiguration_msg(tvbuff_t* tvb _U_, packet_info* pinfo _U_, proto_tree* tree _U_, void* data _U_)
{
@ -626,6 +744,22 @@ dissect_nr_rrc_ue_capabilityrat_containerlist_msg(tvbuff_t* tvb _U_, packet_info
sub_tree = proto_item_add_subtree(ti, ett_nr_rrc);
return dissect_nr_rrc_UE_CapabilityRAT_ContainerList_PDU(tvb, pinfo, sub_tree, NULL);
}
static int
dissect_nr_rrc_handovercommand_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, "HandoverCommand");
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_HandoverCommand_PDU(tvb, pinfo, sub_tree, NULL);
}
#include "packet-nr-rrc-fn.c"
int
@ -872,6 +1006,15 @@ proto_register_nr_rrc(void) {
register_dissector("nr-rrc.ue_mrdc_cap_msg", dissect_nr_rrc_ue_mrdc_capability_msg, proto_nr_rrc);
register_dissector("nr-rrc.ue_nr_cap_msg", dissect_nr_rrc_ue_nr_capability_msg, proto_nr_rrc);
register_dissector("nr-rrc.ul.dcch_msg_msg", dissect_nr_rrc_ul_dcch_message_msg, proto_nr_rrc);
register_dissector("nr-rrc.dl.dcch_msg_msg", dissect_nr_rrc_dl_dcch_message_msg, proto_nr_rrc);
register_dissector("nr-rrc.ul.ccch_msg_msg", dissect_nr_rrc_ul_ccch_message_msg, proto_nr_rrc);
register_dissector("nr-rrc.dl.ccch_msg_msg", dissect_nr_rrc_dl_ccch_message_msg, proto_nr_rrc);
register_dissector("nr-rrc.cellgroupconfig_msg", dissect_nr_rrc_cellgroupconfig_msg, proto_nr_rrc);
register_dissector("nr-rrc.ue_radio_access_cap_info_msg", dissect_ueradioaccesscapabilityinformation_msg, proto_nr_rrc);
register_dissector("nr-rrc.measconfig_msg", dissect_nr_rrc_measconfig_msg, proto_nr_rrc);
register_dissector("nr-rrc.measgapconfig_msg", dissect_nr_rrc_measgapconfig_msg, proto_nr_rrc);
register_dissector("nr-rrc.handoverpreparationinformation_msg", dissect_nr_rrc_handoverpreparationinformation_msg, proto_nr_rrc);
register_dissector("nr-rrc.handovercommand_msg", dissect_nr_rrc_handovercommand_msg, proto_nr_rrc);
#include "packet-nr-rrc-dis-reg.c"

View File

@ -9068,6 +9068,9 @@ static expert_field ei_nr_rrc_number_pages_le15 = EI_INIT;
/* Forward declarations */
static int dissect_UECapabilityInformationSidelink_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_DL_DCCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_DL_CCCH_Message_PDU(tvbuff_t* tvb _U_, packet_info* pinfo _U_, proto_tree* tree _U_, void* data _U_);
static int dissect_UL_CCCH_Message_PDU(tvbuff_t* tvb _U_, packet_info* pinfo _U_, proto_tree* tree _U_, void* data _U_);
static int dissect_UERadioAccessCapabilityInformation_PDU(tvbuff_t* tvb _U_, packet_info* pinfo _U_, proto_tree* tree _U_, void* data _U_);
static const unit_name_string units_periodicities = { " periodicity", " periodicities" };
static const unit_name_string units_prbs = { " PRB", " PRBs" };
@ -9506,6 +9509,121 @@ dissect_nr_rrc_ul_dcch_message_msg(tvbuff_t* tvb _U_, packet_info* pinfo _U_, pr
return dissect_nr_rrc_UL_DCCH_Message_PDU(tvb, pinfo, sub_tree, NULL);
}
static int
dissect_nr_rrc_dl_dcch_message_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, "DL-DCCH-Message");
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_DL_DCCH_Message_PDU(tvb, pinfo, sub_tree, NULL);
}
static int
dissect_nr_rrc_dl_ccch_message_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, "DL-CCCH-Message");
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_DL_CCCH_Message_PDU(tvb, pinfo, sub_tree, NULL);
}
static int
dissect_nr_rrc_ul_ccch_message_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, "UL-CCCH-Message");
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_UL_CCCH_Message_PDU(tvb, pinfo, sub_tree, NULL);
}
static int
dissect_nr_rrc_cellgroupconfig_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, "CellGroupConfig");
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_CellGroupConfig_PDU(tvb, pinfo, sub_tree, NULL);
}
static int
dissect_ueradioaccesscapabilityinformation_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, "UERadioAccessCapabilityInformation");
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_UERadioAccessCapabilityInformation_PDU(tvb, pinfo, sub_tree, NULL);
}
static int
dissect_nr_rrc_measconfig_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, "MeasConfig");
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_MeasConfig_PDU(tvb, pinfo, sub_tree, NULL);
}
static int
dissect_nr_rrc_measgapconfig_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, "MeasGapConfig");
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_MeasGapConfig_PDU(tvb, pinfo, sub_tree, NULL);
}
static int
dissect_nr_rrc_handoverpreparationinformation_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, "MeasGapConfig");
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_HandoverPreparationInformation_PDU(tvb, pinfo, sub_tree, NULL);
}
static int
dissect_nr_rrc_rrcreconfiguration_msg(tvbuff_t* tvb _U_, packet_info* pinfo _U_, proto_tree* tree _U_, void* data _U_)
{
@ -9535,6 +9653,22 @@ dissect_nr_rrc_ue_capabilityrat_containerlist_msg(tvbuff_t* tvb _U_, packet_info
return dissect_nr_rrc_UE_CapabilityRAT_ContainerList_PDU(tvb, pinfo, sub_tree, NULL);
}
static int
dissect_nr_rrc_handovercommand_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, "HandoverCommand");
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_HandoverCommand_PDU(tvb, pinfo, sub_tree, NULL);
}
/*--- Included file: packet-nr-rrc-fn.c ---*/
#line 1 "./asn1/nr-rrc/packet-nr-rrc-fn.c"
/*--- PDUs declarations ---*/
@ -91625,7 +91759,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 630 "./asn1/nr-rrc/packet-nr-rrc-template.c"
#line 764 "./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_) {
@ -116258,7 +116392,7 @@ proto_register_nr_rrc(void) {
"T_sl_Rx_256QAM_r16_01", HFILL }},
/*--- End of included file: packet-nr-rrc-hfarr.c ---*/
#line 662 "./asn1/nr-rrc/packet-nr-rrc-template.c"
#line 796 "./asn1/nr-rrc/packet-nr-rrc-template.c"
{ &hf_nr_rrc_serialNumber_gs,
{ "Geographical Scope", "nr-rrc.serialNumber.gs",
@ -118844,7 +118978,7 @@ proto_register_nr_rrc(void) {
&ett_nr_rrc_T_csi_ReportSidelink_r16,
/*--- End of included file: packet-nr-rrc-ettarr.c ---*/
#line 800 "./asn1/nr-rrc/packet-nr-rrc-template.c"
#line 934 "./asn1/nr-rrc/packet-nr-rrc-template.c"
&ett_nr_rrc_DedicatedNAS_Message,
&ett_nr_rrc_targetRAT_MessageContainer,
&ett_nr_rrc_nas_Container,
@ -118920,6 +119054,15 @@ proto_register_nr_rrc(void) {
register_dissector("nr-rrc.ue_mrdc_cap_msg", dissect_nr_rrc_ue_mrdc_capability_msg, proto_nr_rrc);
register_dissector("nr-rrc.ue_nr_cap_msg", dissect_nr_rrc_ue_nr_capability_msg, proto_nr_rrc);
register_dissector("nr-rrc.ul.dcch_msg_msg", dissect_nr_rrc_ul_dcch_message_msg, proto_nr_rrc);
register_dissector("nr-rrc.dl.dcch_msg_msg", dissect_nr_rrc_dl_dcch_message_msg, proto_nr_rrc);
register_dissector("nr-rrc.ul.ccch_msg_msg", dissect_nr_rrc_ul_ccch_message_msg, proto_nr_rrc);
register_dissector("nr-rrc.dl.ccch_msg_msg", dissect_nr_rrc_dl_ccch_message_msg, proto_nr_rrc);
register_dissector("nr-rrc.cellgroupconfig_msg", dissect_nr_rrc_cellgroupconfig_msg, proto_nr_rrc);
register_dissector("nr-rrc.ue_radio_access_cap_info_msg", dissect_ueradioaccesscapabilityinformation_msg, proto_nr_rrc);
register_dissector("nr-rrc.measconfig_msg", dissect_nr_rrc_measconfig_msg, proto_nr_rrc);
register_dissector("nr-rrc.measgapconfig_msg", dissect_nr_rrc_measgapconfig_msg, proto_nr_rrc);
register_dissector("nr-rrc.handoverpreparationinformation_msg", dissect_nr_rrc_handoverpreparationinformation_msg, proto_nr_rrc);
register_dissector("nr-rrc.handovercommand_msg", dissect_nr_rrc_handovercommand_msg, proto_nr_rrc);
/*--- Included file: packet-nr-rrc-dis-reg.c ---*/
@ -118942,7 +119085,7 @@ proto_register_nr_rrc(void) {
/*--- End of included file: packet-nr-rrc-dis-reg.c ---*/
#line 877 "./asn1/nr-rrc/packet-nr-rrc-template.c"
#line 1020 "./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);