diff options
-rw-r--r-- | asn1/nbap/nbap.cnf | 7 | ||||
-rw-r--r-- | epan/dissectors/packet-nbap.c | 65 | ||||
-rw-r--r-- | epan/dissectors/packet-umts_fp.c | 80 |
3 files changed, 79 insertions, 73 deletions
diff --git a/asn1/nbap/nbap.cnf b/asn1/nbap/nbap.cnf index c306b3e09b..dedeb9ff09 100644 --- a/asn1/nbap/nbap.cnf +++ b/asn1/nbap/nbap.cnf @@ -522,9 +522,11 @@ guint32 payload_crc_value; #.FN_BODY CommonPhysicalChannelID VAL_PTR = &commonphysicalchannelid %(DEFAULT_BODY)s +nbap_dch_chnl_info[commonphysicalchannelid].next_dch = 0; #.FN_BODY CommonTransportChannelID VAL_PTR = &commontransportchannelid %(DEFAULT_BODY)s +nbap_dch_chnl_info[commontransportchannelid].next_dch = 0; #.FN_BODY E-DCH-MACdFlow-ID VAL_PTR = &e_dch_macdflow_id %(DEFAULT_BODY)s @@ -688,9 +690,11 @@ num_items = 1; umts_fp_conversation_info->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present; /* Set data for First or single channel */ umts_fp_conversation_info->fp_dch_chanel_info[0].num_ul_chans = num_tf = nbap_dch_chnl_info[commontransportchannelid].num_ul_chans; + nbap_debug1("PCH-ParametersItem-CTCH-SetupRqstFDD: num_tf %%u",num_tf); for (j = 0; j < num_tf; j++) { umts_fp_conversation_info->fp_dch_chanel_info[0].ul_chan_tf_size[j] = nbap_dch_chnl_info[commontransportchannelid].ul_chan_tf_size[j]; umts_fp_conversation_info->fp_dch_chanel_info[0].ul_chan_num_tbs[j] = nbap_dch_chnl_info[commontransportchannelid].ul_chan_num_tbs[j]; + nbap_debug2("PCH-ParametersItem-CTCH-SetupRqstFDD:UL tf %%u ul_chan_tf_size %%u",j, nbap_dch_chnl_info[commontransportchannelid].ul_chan_tf_size[j]); } /* Traffic flows per DCH(DL) */ @@ -698,10 +702,12 @@ num_items = 1; for (j = 0; j < num_tf; j++) { umts_fp_conversation_info->fp_dch_chanel_info[0].dl_chan_tf_size[j] = nbap_dch_chnl_info[commontransportchannelid].dl_chan_tf_size[j]; umts_fp_conversation_info->fp_dch_chanel_info[0].dl_chan_num_tbs[j] = nbap_dch_chnl_info[commontransportchannelid].dl_chan_num_tbs[j]; + nbap_debug2("PCH-ParametersItem-CTCH-SetupRqstFDD:DL tf %%u ul_chan_tf_size %%u",j, nbap_dch_chnl_info[commontransportchannelid].dl_chan_tf_size[j]); } /* Set data for associated DCH's if we have any */ i = commontransportchannelid; + nbap_debug2("PCH-ParametersItem-CTCH-SetupRqstFDD: commontransportchannelid %%u next ch %%u",commontransportchannelid, nbap_dch_chnl_info[i].next_dch); umts_fp_conversation_info->dchs_in_flow_list[0] = commontransportchannelid; while(nbap_dch_chnl_info[i].next_dch != 0){ i = nbap_dch_chnl_info[i].next_dch; @@ -722,6 +728,7 @@ num_items = 1; } } umts_fp_conversation_info->num_dch_in_flow++; + nbap_debug1("PCH-ParametersItem-CTCH-SetupRqstFDD: num_dch_in_flow %%u", umts_fp_conversation_info->num_dch_in_flow); umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i; set_umts_fp_conv_data(conversation, umts_fp_conversation_info); } diff --git a/epan/dissectors/packet-nbap.c b/epan/dissectors/packet-nbap.c index 9a5bb501ec..ebe73ee765 100644 --- a/epan/dissectors/packet-nbap.c +++ b/epan/dissectors/packet-nbap.c @@ -8542,7 +8542,7 @@ dissect_nbap_Additional_EDCH_RL_Specific_Information_To_Setup_List(tvbuff_t *tvb static int dissect_nbap_E_DCH_MACdFlow_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 530 "../../asn1/nbap/nbap.cnf" +#line 532 "../../asn1/nbap/nbap.cnf" offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, maxNrOfEDCHMACdFlows_1, &e_dch_macdflow_id, FALSE); @@ -8556,7 +8556,7 @@ dissect_nbap_E_DCH_MACdFlow_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static int dissect_nbap_BindingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 536 "../../asn1/nbap/nbap.cnf" +#line 538 "../../asn1/nbap/nbap.cnf" tvbuff_t *parameter_tvb=NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -10348,10 +10348,11 @@ dissect_nbap_BundlingModeIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int dissect_nbap_CommonTransportChannelID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 527 "../../asn1/nbap/nbap.cnf" +#line 528 "../../asn1/nbap/nbap.cnf" offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 255U, &commontransportchannelid, FALSE); +nbap_dch_chnl_info[commontransportchannelid].next_dch = 0; @@ -11161,6 +11162,7 @@ dissect_nbap_CommonPhysicalChannelID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 255U, &commonphysicalchannelid, FALSE); +nbap_dch_chnl_info[commonphysicalchannelid].next_dch = 0; @@ -11900,7 +11902,7 @@ dissect_nbap_CommonMACFlow_Specific_InfoList(tvbuff_t *tvb _U_, int offset _U_, static int dissect_nbap_MACdPDU_Size(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1131 "../../asn1/nbap/nbap.cnf" +#line 1138 "../../asn1/nbap/nbap.cnf" offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 1U, 5000U, &MACdPDU_Size, TRUE); @@ -14569,7 +14571,7 @@ dissect_nbap_T_dCH_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p static int dissect_nbap_TransportFormatSet_NrOfTransportBlocks(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 863 "../../asn1/nbap/nbap.cnf" +#line 870 "../../asn1/nbap/nbap.cnf" guint32 NrOfTransportBlocks; offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, @@ -14612,7 +14614,7 @@ guint32 NrOfTransportBlocks; static int dissect_nbap_TransportFormatSet_TransportBlockSize(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 895 "../../asn1/nbap/nbap.cnf" +#line 902 "../../asn1/nbap/nbap.cnf" guint32 TransportBlockSize; offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, @@ -14740,7 +14742,7 @@ static const per_sequence_t TransportFormatSet_DynamicPartList_item_sequence[] = static int dissect_nbap_TransportFormatSet_DynamicPartList_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 859 "../../asn1/nbap/nbap.cnf" +#line 866 "../../asn1/nbap/nbap.cnf" num_items++; @@ -14758,7 +14760,7 @@ static const per_sequence_t TransportFormatSet_DynamicPartList_sequence_of[1] = static int dissect_nbap_TransportFormatSet_DynamicPartList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 856 "../../asn1/nbap/nbap.cnf" +#line 863 "../../asn1/nbap/nbap.cnf" num_items = 0; @@ -14929,7 +14931,7 @@ dissect_nbap_TransportFormatSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a static int dissect_nbap_T_ul_TransportFormatSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 834 "../../asn1/nbap/nbap.cnf" +#line 841 "../../asn1/nbap/nbap.cnf" transportFormatSet_type = DCH_UL; nbap_dch_chnl_info[dch_id].num_ul_chans = 0; @@ -14943,7 +14945,7 @@ dissect_nbap_T_ul_TransportFormatSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx static int dissect_nbap_T_dl_TransportFormatSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 838 "../../asn1/nbap/nbap.cnf" +#line 845 "../../asn1/nbap/nbap.cnf" transportFormatSet_type = DCH_DL; nbap_dch_chnl_info[dch_id].num_dl_chans = 0; @@ -14993,14 +14995,14 @@ static const per_sequence_t DCH_Specific_FDD_Item_sequence[] = { static int dissect_nbap_DCH_Specific_FDD_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 828 "../../asn1/nbap/nbap.cnf" +#line 835 "../../asn1/nbap/nbap.cnf" g_num_dch_in_flow++; offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_nbap_DCH_Specific_FDD_Item, DCH_Specific_FDD_Item_sequence); -#line 831 "../../asn1/nbap/nbap.cnf" +#line 838 "../../asn1/nbap/nbap.cnf" prev_dch_id = dch_id; @@ -15014,7 +15016,7 @@ static const per_sequence_t DCH_Specific_FDD_InformationList_sequence_of[1] = { static int dissect_nbap_DCH_Specific_FDD_InformationList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 824 "../../asn1/nbap/nbap.cnf" +#line 831 "../../asn1/nbap/nbap.cnf" g_num_dch_in_flow = 0; prev_dch_id = 0; @@ -15308,7 +15310,7 @@ dissect_nbap_T_dCH_ID_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ static int dissect_nbap_T_ul_TransportFormatSet_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 842 "../../asn1/nbap/nbap.cnf" +#line 849 "../../asn1/nbap/nbap.cnf" transportFormatSet_type = DCH_UL; nbap_dch_chnl_info[dch_id].num_ul_chans = 0; @@ -15322,7 +15324,7 @@ dissect_nbap_T_ul_TransportFormatSet_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ static int dissect_nbap_T_dl_TransportFormatSet_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 846 "../../asn1/nbap/nbap.cnf" +#line 853 "../../asn1/nbap/nbap.cnf" transportFormatSet_type = DCH_DL; nbap_dch_chnl_info[dch_id].num_dl_chans = 0; @@ -17793,7 +17795,7 @@ dissect_nbap_E_DCH_HARQ_Combining_Capability(tvbuff_t *tvb _U_, int offset _U_, static int dissect_nbap_E_DCH_DDI_Value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1121 "../../asn1/nbap/nbap.cnf" +#line 1128 "../../asn1/nbap/nbap.cnf" offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 62U, &e_dch_ddi_value, FALSE); @@ -17927,7 +17929,7 @@ static const per_sequence_t E_DCH_LogicalChannelInformationItem_sequence[] = { static int dissect_nbap_E_DCH_LogicalChannelInformationItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1118 "../../asn1/nbap/nbap.cnf" +#line 1125 "../../asn1/nbap/nbap.cnf" num_items++; @@ -17944,7 +17946,7 @@ static const per_sequence_t E_DCH_LogicalChannelInformation_sequence_of[1] = { static int dissect_nbap_E_DCH_LogicalChannelInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1111 "../../asn1/nbap/nbap.cnf" +#line 1118 "../../asn1/nbap/nbap.cnf" num_items = 0; offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, @@ -17977,7 +17979,7 @@ static const per_sequence_t E_DCH_MACdFlow_Specific_InfoItem_sequence[] = { static int dissect_nbap_E_DCH_MACdFlow_Specific_InfoItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1067 "../../asn1/nbap/nbap.cnf" +#line 1074 "../../asn1/nbap/nbap.cnf" umts_fp_conversation_info_t *p_conv_data = NULL; address null_addr; conversation_t *p_conv; @@ -22758,7 +22760,7 @@ static const value_string nbap_PICH_Mode_vals[] = { static int dissect_nbap_PICH_Mode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 617 "../../asn1/nbap/nbap.cnf" +#line 619 "../../asn1/nbap/nbap.cnf" guint32 PICH_Mode = 0; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 4, &PICH_Mode, TRUE, 0, NULL); @@ -22929,7 +22931,7 @@ dissect_nbap_HSDSCH_Common_System_Information_ResponseFDD(tvbuff_t *tvb _U_, int static int dissect_nbap_HSDSCH_MACdFlow_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 533 "../../asn1/nbap/nbap.cnf" +#line 535 "../../asn1/nbap/nbap.cnf" offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, maxNrOfMACdFlows_1, &hsdsch_macdflow_id, FALSE); @@ -22951,7 +22953,7 @@ static const per_sequence_t HSDSCH_MACdFlow_Specific_InfoItem_sequence[] = { static int dissect_nbap_HSDSCH_MACdFlow_Specific_InfoItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1142 "../../asn1/nbap/nbap.cnf" +#line 1149 "../../asn1/nbap/nbap.cnf" address dst_addr, null_addr; conversation_t *conversation; @@ -27721,7 +27723,7 @@ dissect_nbap_RACH_SubChannelNumbers(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ static int dissect_nbap_T_dCH_id(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 921 "../../asn1/nbap/nbap.cnf" +#line 928 "../../asn1/nbap/nbap.cnf" offset = dissect_nbap_DCH_ID(tvb, offset, actx, tree, hf_index); @@ -27743,7 +27745,7 @@ static const per_sequence_t RL_Specific_DCH_Info_Item_sequence[] = { static int dissect_nbap_RL_Specific_DCH_Info_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 926 "../../asn1/nbap/nbap.cnf" +#line 933 "../../asn1/nbap/nbap.cnf" address dst_addr, null_addr; conversation_t *conversation = NULL; umts_fp_conversation_info_t *umts_fp_conversation_info; @@ -27864,7 +27866,7 @@ static const per_sequence_t RL_Specific_E_DCH_Information_Item_sequence[] = { static int dissect_nbap_RL_Specific_E_DCH_Information_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1015 "../../asn1/nbap/nbap.cnf" +#line 1022 "../../asn1/nbap/nbap.cnf" address dst_addr, null_addr; conversation_t *conversation; umts_fp_conversation_info_t *umts_fp_conversation_info; @@ -31367,7 +31369,7 @@ static const per_sequence_t FACH_ParametersItem_CTCH_SetupRqstFDD_sequence[] = { static int dissect_nbap_FACH_ParametersItem_CTCH_SetupRqstFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 733 "../../asn1/nbap/nbap.cnf" +#line 740 "../../asn1/nbap/nbap.cnf" address dst_addr, null_addr; conversation_t *conversation; @@ -31483,7 +31485,7 @@ dissect_nbap_FACH_ParametersListIE_CTCH_SetupRqstFDD(tvbuff_t *tvb _U_, int offs static int dissect_nbap_T_transportFormatSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 850 "../../asn1/nbap/nbap.cnf" +#line 857 "../../asn1/nbap/nbap.cnf" transportFormatSet_type = PCH; nbap_dch_chnl_info[commontransportchannelid].num_dl_chans = 0; nbap_dch_chnl_info[commontransportchannelid].num_ul_chans = 0; @@ -31528,7 +31530,7 @@ static const per_sequence_t PCH_ParametersItem_CTCH_SetupRqstFDD_sequence[] = { static int dissect_nbap_PCH_ParametersItem_CTCH_SetupRqstFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 638 "../../asn1/nbap/nbap.cnf" +#line 640 "../../asn1/nbap/nbap.cnf" address dst_addr, null_addr; conversation_t *conversation; @@ -31584,9 +31586,11 @@ num_items = 1; umts_fp_conversation_info->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present; /* Set data for First or single channel */ umts_fp_conversation_info->fp_dch_chanel_info[0].num_ul_chans = num_tf = nbap_dch_chnl_info[commontransportchannelid].num_ul_chans; + nbap_debug1("PCH-ParametersItem-CTCH-SetupRqstFDD: num_tf %u",num_tf); for (j = 0; j < num_tf; j++) { umts_fp_conversation_info->fp_dch_chanel_info[0].ul_chan_tf_size[j] = nbap_dch_chnl_info[commontransportchannelid].ul_chan_tf_size[j]; umts_fp_conversation_info->fp_dch_chanel_info[0].ul_chan_num_tbs[j] = nbap_dch_chnl_info[commontransportchannelid].ul_chan_num_tbs[j]; + nbap_debug2("PCH-ParametersItem-CTCH-SetupRqstFDD:UL tf %u ul_chan_tf_size %u",j, nbap_dch_chnl_info[commontransportchannelid].ul_chan_tf_size[j]); } /* Traffic flows per DCH(DL) */ @@ -31594,10 +31598,12 @@ num_items = 1; for (j = 0; j < num_tf; j++) { umts_fp_conversation_info->fp_dch_chanel_info[0].dl_chan_tf_size[j] = nbap_dch_chnl_info[commontransportchannelid].dl_chan_tf_size[j]; umts_fp_conversation_info->fp_dch_chanel_info[0].dl_chan_num_tbs[j] = nbap_dch_chnl_info[commontransportchannelid].dl_chan_num_tbs[j]; + nbap_debug2("PCH-ParametersItem-CTCH-SetupRqstFDD:DL tf %u ul_chan_tf_size %u",j, nbap_dch_chnl_info[commontransportchannelid].dl_chan_tf_size[j]); } /* Set data for associated DCH's if we have any */ i = commontransportchannelid; + nbap_debug2("PCH-ParametersItem-CTCH-SetupRqstFDD: commontransportchannelid %u next ch %u",commontransportchannelid, nbap_dch_chnl_info[i].next_dch); umts_fp_conversation_info->dchs_in_flow_list[0] = commontransportchannelid; while(nbap_dch_chnl_info[i].next_dch != 0){ i = nbap_dch_chnl_info[i].next_dch; @@ -31618,6 +31624,7 @@ num_items = 1; } } umts_fp_conversation_info->num_dch_in_flow++; + nbap_debug1("PCH-ParametersItem-CTCH-SetupRqstFDD: num_dch_in_flow %u", umts_fp_conversation_info->num_dch_in_flow); umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i; set_umts_fp_conv_data(conversation, umts_fp_conversation_info); } @@ -31659,7 +31666,7 @@ static const per_sequence_t RACH_ParametersItem_CTCH_SetupRqstFDD_sequence[] = { static int dissect_nbap_RACH_ParametersItem_CTCH_SetupRqstFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 551 "../../asn1/nbap/nbap.cnf" +#line 553 "../../asn1/nbap/nbap.cnf" address dst_addr, null_addr; conversation_t *conversation; umts_fp_conversation_info_t *umts_fp_conversation_info; diff --git a/epan/dissectors/packet-umts_fp.c b/epan/dissectors/packet-umts_fp.c index 2c843f81e6..aa27b982ce 100644 --- a/epan/dissectors/packet-umts_fp.c +++ b/epan/dissectors/packet-umts_fp.c @@ -3162,8 +3162,16 @@ static fp_info *fp_set_per_packet_inf_from_conv(umts_fp_conversation_info_t *p_c return fpi; case CHANNEL_PCH: - /* fall trough */ fpi->paging_indications = p_conv_data->paging_indications; + fpi->num_chans = p_conv_data->num_dch_in_flow; + /* Set offset to point to first TFI + */ + if (is_control_frame) { + /* control frame, we're done */ + return fpi; + } + offset = 3; + break; case CHANNEL_DCH: /* fall trough */ /* For now cheat */ @@ -3181,64 +3189,48 @@ static fp_info *fp_set_per_packet_inf_from_conv(umts_fp_conversation_info_t *p_c /* control frame, we're done */ return fpi; } - -#if 0 - /* For now cheat */ - if (p_conv_data->dchs_in_flow_list[0] == 31) { - macinf = se_new0(umts_mac_info); - macinf->ctmux[0] = 1; - macinf->content[0] = MAC_CONTENT_DCCH; - p_add_proto_data(pinfo->fd, proto_umts_mac, macinf); - } - - guint32 urnti[MAX_RLC_CHANS]; - guint8 mode[MAX_RLC_CHANS]; - guint8 rbid[MAX_RLC_CHANS]; - enum rlc_li_size li_size[MAX_RLC_CHANS]; - gboolean ciphered[MAX_RLC_CHANS]; - gboolean deciphered[MAX_RLC_CHANS]; - -#endif /* Set offset to point to first TFI * the Number of TFI's = number of DCH's in the flow */ offset = 2; - /* Peek at the packet as the per packet info seems not to take the tfi into account */ - for (i=0; i<fpi->num_chans; i++) { - tfi = tvb_get_guint8(tvb,offset); - if (pinfo->link_dir==P2P_DIR_UL) { - fpi->chan_tf_size[i] = p_conv_data->fp_dch_chanel_info[i].ul_chan_tf_size[tfi]; - fpi->chan_num_tbs[i] = p_conv_data->fp_dch_chanel_info[i].ul_chan_num_tbs[tfi]; - } - else{ - fpi->chan_tf_size[i] = p_conv_data->fp_dch_chanel_info[i].dl_chan_tf_size[tfi]; - fpi->chan_num_tbs[i] = p_conv_data->fp_dch_chanel_info[i].dl_chan_num_tbs[tfi]; - } - offset++; - } break; default: return NULL; } -#if 0 - /* remaining data to be set */ - no_ddi_entries; - edch_ddi[MAX_EDCH_DDIS]; - edch_macd_pdu_size[MAX_EDCH_DDIS]; - edch_type; /* 1 means T2 */ - cur_tb; /* current transport block (required for dissecting of single TBs */ - cur_chan; /* current channel, required to retrieve the correct channel configuration for UMTS MAC */ +#if 0 + /* For now cheat */ + if (p_conv_data->dchs_in_flow_list[0] == 31) { + macinf = se_new0(umts_mac_info); + macinf->ctmux[0] = 1; + macinf->content[0] = MAC_CONTENT_DCCH; + p_add_proto_data(pinfo->fd, proto_umts_mac, macinf); + } - srcport - destport + guint32 urnti[MAX_RLC_CHANS]; + guint8 mode[MAX_RLC_CHANS]; + guint8 rbid[MAX_RLC_CHANS]; + enum rlc_li_size li_size[MAX_RLC_CHANS]; + gboolean ciphered[MAX_RLC_CHANS]; + gboolean deciphered[MAX_RLC_CHANS]; - enum fp_hsdsch_entity hsdsch_entity; - enum fp_link_type link_type; #endif + /* Peek at the packet as the per packet info seems not to take the tfi into account */ + for (i=0; i<fpi->num_chans; i++) { + tfi = tvb_get_guint8(tvb,offset); + if (pinfo->link_dir==P2P_DIR_UL) { + fpi->chan_tf_size[i] = p_conv_data->fp_dch_chanel_info[i].ul_chan_tf_size[tfi]; + fpi->chan_num_tbs[i] = p_conv_data->fp_dch_chanel_info[i].ul_chan_num_tbs[tfi]; + } + else{ + fpi->chan_tf_size[i] = p_conv_data->fp_dch_chanel_info[i].dl_chan_tf_size[tfi]; + fpi->chan_num_tbs[i] = p_conv_data->fp_dch_chanel_info[i].dl_chan_num_tbs[tfi]; + } + offset++; + } return fpi; |