diff options
author | Anders Broman <anders.broman@ericsson.com> | 2012-05-22 11:53:52 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2012-05-22 11:53:52 +0000 |
commit | 2b09e18d75db5d347631c8790d6be6e2c660b1a1 (patch) | |
tree | ae203ddc424ac821b2a3fb292dc51241bcbc4463 | |
parent | ec5ec34f1f828c1a5e2b4042b9b9d79854d0b762 (diff) | |
download | wireshark-2b09e18d75db5d347631c8790d6be6e2c660b1a1.tar.gz wireshark-2b09e18d75db5d347631c8790d6be6e2c660b1a1.tar.bz2 wireshark-2b09e18d75db5d347631c8790d6be6e2c660b1a1.zip |
Collect and use E-DCH data. + one file.
svn path=/trunk/; revision=42780
-rw-r--r-- | asn1/nbap/nbap.cnf | 95 |
1 files changed, 94 insertions, 1 deletions
diff --git a/asn1/nbap/nbap.cnf b/asn1/nbap/nbap.cnf index f52a89a969..fd9258c1c0 100644 --- a/asn1/nbap/nbap.cnf +++ b/asn1/nbap/nbap.cnf @@ -981,6 +981,7 @@ dch_id = 0xFFFFFFFF; #.FN_BODY RL-Specific-E-DCH-Information-Item address dst_addr, null_addr; conversation_t *conversation; +umts_fp_conversation_info_t *umts_fp_conversation_info; transportLayerAddress_ipv4 = 0; BindingID_port = 0; @@ -1009,8 +1010,100 @@ BindingID_port = 0; /* Set dissector */ conversation_set_dissector(conversation, fp_handle); + if(actx->pinfo->link_dir==P2P_DIR_DL){ + umts_fp_conversation_info = se_new0(umts_fp_conversation_info_t); + /* Fill in the data */ + umts_fp_conversation_info->iface_type = IuB_Interface; + umts_fp_conversation_info->division = Division_FDD; + umts_fp_conversation_info->channel = CHANNEL_EDCH; + umts_fp_conversation_info->dl_frame_number = 0; + umts_fp_conversation_info->ul_frame_number = actx->pinfo->fd->num; + SE_COPY_ADDRESS(&(umts_fp_conversation_info->crnc_address), &dst_addr); + umts_fp_conversation_info->crnc_port = BindingID_port; + + /* Set address for collection of DDI entries */ + COPY_ADDRESS(&(nbap_edch_chanel_info[e_dch_macdflow_id].crnc_address),&dst_addr); + nbap_edch_chanel_info[e_dch_macdflow_id].crnc_port = BindingID_port; + + set_umts_fp_conv_data(conversation, umts_fp_conversation_info); + } + } +#.FN_BODY E-DCH-MACdFlow-Specific-InfoItem +umts_fp_conversation_info_t *p_conv_data = NULL; +address null_addr; +conversation_t *p_conv; +guint32 no_ddi_entries, i; + +%(DEFAULT_BODY)s + + if (actx->pinfo->fd->flags.visited) + { + return offset; + } + /* Check if we have converstaion info */ + SET_ADDRESS(&null_addr, AT_NONE, 0, NULL); + p_conv = find_conversation(actx->pinfo->fd->num, &nbap_edch_chanel_info[e_dch_macdflow_id].crnc_address, &null_addr, + PT_UDP, + nbap_edch_chanel_info[e_dch_macdflow_id].crnc_port, 0, NO_ADDR_B); + if(!p_conv) + return offset; + + p_conv_data = conversation_get_proto_data(p_conv, proto_fp); + + if(!p_conv_data) + return offset; + no_ddi_entries = p_conv_data->no_ddi_entries = nbap_edch_chanel_info[e_dch_macdflow_id].no_ddi_entries; + nbap_debug2("E-DCH-MACdFlow-Specific-InfoItem: e_dch_macdflow_id %%u, no_ddi_entries %%u",e_dch_macdflow_id,no_ddi_entries); + for (i = 0; i < no_ddi_entries; i++) { + p_conv_data->edch_ddi[i] = nbap_edch_chanel_info[e_dch_macdflow_id].edch_ddi[i]; + p_conv_data->edch_macd_pdu_size[i] = nbap_edch_chanel_info[e_dch_macdflow_id].edch_macd_pdu_size[i]; + nbap_debug3("E-DCH-MACdFlow-Specific-InfoItem: e_dch_macdflow_id %%u edch_ddi %%u edch_macd_pdu_size %%u", + e_dch_macdflow_id, + nbap_edch_chanel_info[e_dch_macdflow_id].edch_ddi[i], + nbap_edch_chanel_info[e_dch_macdflow_id].edch_macd_pdu_size[i] + ); + } + + p_conv_data->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present; + + p_conv_data->edch_type = 0; /* 1 means T2 */ + /* use to display e_dch_macdflow_id */ + p_conv_data->num_dch_in_flow = 1; + p_conv_data->dchs_in_flow_list[0] = e_dch_macdflow_id; + + +#.FN_BODY E-DCH-LogicalChannelInformation + num_items = 0; + +%(DEFAULT_BODY)s + + nbap_edch_chanel_info[e_dch_macdflow_id].no_ddi_entries = num_items; + +#.FN_HDR E-DCH-LogicalChannelInformationItem + num_items++; + +#.FN_BODY E-DCH-DDI-Value VAL_PTR = &e_dch_ddi_value + +%(DEFAULT_BODY)s + + if (actx->pinfo->fd->flags.visited) + { + return offset; + } + nbap_edch_chanel_info[e_dch_macdflow_id].edch_ddi[num_items-1] = e_dch_ddi_value; + +#.FN_BODY MACdPDU-Size VAL_PTR = &MACdPDU_Size +%(DEFAULT_BODY)s + + if (actx->pinfo->fd->flags.visited) + { + return offset; + } + nbap_edch_chanel_info[e_dch_macdflow_id].edch_macd_pdu_size[num_items-1] = MACdPDU_Size; + + #.FN_BODY HSDSCH-MACdFlow-Specific-InfoItem @@ -1060,7 +1153,7 @@ BindingID_port = 0; umts_fp_conversation_info->num_dch_in_flow = 1; umts_fp_conversation_info->dchs_in_flow_list[0] = hsdsch_macdflow_id; - umts_fp_conversation_info->hsdsch_entity = hs; + umts_fp_conversation_info->hsdsch_entity = ehs; set_umts_fp_conv_data(conversation, umts_fp_conversation_info); } } |