offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &dch_id, FALSE);
- if(g_num_dch_in_flow>0)
+ if(g_num_dch_in_flow>0){
g_dchs_in_flow_list[g_num_dch_in_flow-1]=dch_id;
+ nbap_dch_chnl_info[dch_id].next_dch = 0;
+ if(prev_dch_id != 0){
+ nbap_dch_chnl_info[prev_dch_id].next_dch = dch_id;
+ }
+ }
#.FN_BODY DCH-ModifySpecificItem-FDD/dCH-ID
#.FN_BODY RACH-ParametersItem-CTCH-SetupRqstFDD
address dst_addr, null_addr;
conversation_t *conversation;
+umts_fp_conversation_info_t *umts_fp_conversation_info;
+int j, num_tf;
transportLayerAddress_ipv4 = 0;
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_CPCH;
+ 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;
+
+ /* DCH's in this flow */
+ 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[commonphysicalchannelid].num_ul_chans;
+ 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[commonphysicalchannelid].ul_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_chanel_info[0].ul_chan_num_tbs[j] = nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_num_tbs[j];
+ }
+
+ /* Traffic flows per DCH(DL) */
+ umts_fp_conversation_info->fp_dch_chanel_info[0].num_dl_chans = num_tf = nbap_dch_chnl_info[commonphysicalchannelid].num_dl_chans;
+ 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[commonphysicalchannelid].dl_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_chanel_info[0].dl_chan_num_tbs[j] = nbap_dch_chnl_info[commonphysicalchannelid].dl_chan_num_tbs[j];
+ }
+
+ umts_fp_conversation_info->dchs_in_flow_list[0] = commonphysicalchannelid;
+ umts_fp_conversation_info->num_dch_in_flow=1;
+ set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
+ }
}
#.FN_HDR DCH-Specific-FDD-InformationList
g_num_dch_in_flow = 0;
+ prev_dch_id = 0;
#.FN_HDR DCH-Specific-FDD-Item
g_num_dch_in_flow++;
+#.FN_FTR DCH-Specific-FDD-Item
+ prev_dch_id = dch_id;
+
#.FN_HDR DCH-Specific-FDD-Item/ul-TransportFormatSet
transportFormatSet_type = DCH_UL;
nbap_dch_chnl_info[dch_id].num_ul_chans = 0;
nbap_dch_chnl_info[dch_id].num_dl_chans++;
nbap_dch_chnl_info[dch_id].dl_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
break;
+ case CPCH:
+ nbap_dch_chnl_info[commonphysicalchannelid].num_ul_chans++;
+ nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
+ nbap_dch_chnl_info[commonphysicalchannelid].num_dl_chans++;
+ nbap_dch_chnl_info[commonphysicalchannelid].dl_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
+ break;
default:
break;
}
case DCH_DL:
nbap_dch_chnl_info[dch_id].dl_chan_tf_size[num_items-1] = TransportBlockSize;
break;
+ case CPCH:
+ nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_tf_size[num_items-1] = TransportBlockSize;
+ nbap_dch_chnl_info[commonphysicalchannelid].dl_chan_tf_size[num_items-1] = TransportBlockSize;
+ break;
default:
break;
}
umts_fp_conversation_info->crnc_port = BindingID_port;
/* DCH's in this flow */
- umts_fp_conversation_info->num_dch_in_flow = g_num_dch_in_flow;
umts_fp_conversation_info->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present;
- /* Temp kludge to owercome a problem with multiple single flows in one MSG */
- if(g_num_dch_in_flow == 1){
- g_dchs_in_flow_list[0] = dch_id;
+ /* 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[dch_id].num_ul_chans;
+ 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[dch_id].ul_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_chanel_info[0].ul_chan_num_tbs[j] = nbap_dch_chnl_info[dch_id].ul_chan_num_tbs[j];
+ }
+
+ /* Traffic flows per DCH(DL) */
+ umts_fp_conversation_info->fp_dch_chanel_info[0].num_dl_chans = num_tf = nbap_dch_chnl_info[dch_id].num_dl_chans;
+ 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[dch_id].dl_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_chanel_info[0].dl_chan_num_tbs[j] = nbap_dch_chnl_info[dch_id].dl_chan_num_tbs[j];
}
- for (i = 0; i < g_num_dch_in_flow; i++) {
- umts_fp_conversation_info->dchs_in_flow_list[i] = g_dchs_in_flow_list[i];
+ /* Set data for associated DCH's if we have any */
+ i = dch_id;
+ umts_fp_conversation_info->dchs_in_flow_list[0] = dch_id;
+ while(nbap_dch_chnl_info[i].next_dch != 0){
+ i = nbap_dch_chnl_info[i].next_dch;
+ 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;
/* Traffic flows per DCH(UL) */
- umts_fp_conversation_info->fp_dch_chanel_info[i].num_ul_chans = num_tf = nbap_dch_chnl_info[g_dchs_in_flow_list[i]].num_ul_chans;
+ umts_fp_conversation_info->fp_dch_chanel_info[umts_fp_conversation_info->num_dch_in_flow].num_ul_chans = num_tf = nbap_dch_chnl_info[i].num_ul_chans;
for (j = 0; j < num_tf; j++) {
- umts_fp_conversation_info->fp_dch_chanel_info[i].ul_chan_tf_size[j] = nbap_dch_chnl_info[g_dchs_in_flow_list[i]].ul_chan_tf_size[j];
- umts_fp_conversation_info->fp_dch_chanel_info[i].ul_chan_num_tbs[j] = nbap_dch_chnl_info[g_dchs_in_flow_list[i]].ul_chan_num_tbs[j];
+ umts_fp_conversation_info->fp_dch_chanel_info[umts_fp_conversation_info->num_dch_in_flow].ul_chan_tf_size[j] = nbap_dch_chnl_info[i].ul_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_chanel_info[umts_fp_conversation_info->num_dch_in_flow].ul_chan_num_tbs[j] = nbap_dch_chnl_info[i].ul_chan_num_tbs[j];
}
/* Traffic flows per DCH(DL) */
- umts_fp_conversation_info->fp_dch_chanel_info[i].num_dl_chans = num_tf = nbap_dch_chnl_info[g_dchs_in_flow_list[i]].num_dl_chans;
+ umts_fp_conversation_info->fp_dch_chanel_info[umts_fp_conversation_info->num_dch_in_flow].num_dl_chans = num_tf = nbap_dch_chnl_info[i].num_dl_chans;
for (j = 0; j < num_tf; j++) {
- umts_fp_conversation_info->fp_dch_chanel_info[i].dl_chan_tf_size[j] = nbap_dch_chnl_info[g_dchs_in_flow_list[i]].dl_chan_tf_size[j];
- umts_fp_conversation_info->fp_dch_chanel_info[i].dl_chan_num_tbs[j] = nbap_dch_chnl_info[g_dchs_in_flow_list[i]].dl_chan_num_tbs[j];
+ umts_fp_conversation_info->fp_dch_chanel_info[umts_fp_conversation_info->num_dch_in_flow].dl_chan_tf_size[j] = nbap_dch_chnl_info[i].dl_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_chanel_info[umts_fp_conversation_info->num_dch_in_flow].dl_chan_num_tbs[j] = nbap_dch_chnl_info[i].dl_chan_num_tbs[j];
}
}
+ 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);
}
}
typedef struct
{
+ gint num_dch_in_flow;
+ gint next_dch;
gint num_ul_chans;
gint ul_chan_tf_size[MAX_FP_CHANS];
gint ul_chan_num_tbs[MAX_FP_CHANS];
static guint32 ProtocolIE_ID;
static guint32 ddMode;
static const gchar *ProcedureID;
-static guint32 t_dch_id, dch_id, commonphysicalchannelid, e_dch_macdflow_id, hsdsch_macdflow_id;
+static guint32 t_dch_id, dch_id, prev_dch_id, commonphysicalchannelid, e_dch_macdflow_id, hsdsch_macdflow_id;
static guint num_items;
+static gboolean show_conv_data_collection = TRUE;
enum TransportFormatSet_type_enum
{
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 522 "../../asn1/nbap/nbap.cnf"
+#line 527 "../../asn1/nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxNrOfEDCHMACdFlows_1, &e_dch_macdflow_id, FALSE);
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 528 "../../asn1/nbap/nbap.cnf"
+#line 533 "../../asn1/nbap/nbap.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
static int
dissect_nbap_CommonPhysicalChannelID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 519 "../../asn1/nbap/nbap.cnf"
+#line 524 "../../asn1/nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &commonphysicalchannelid, FALSE);
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &dch_id, FALSE);
- if(g_num_dch_in_flow>0)
+ if(g_num_dch_in_flow>0){
g_dchs_in_flow_list[g_num_dch_in_flow-1]=dch_id;
+ nbap_dch_chnl_info[dch_id].next_dch = 0;
+ if(prev_dch_id != 0){
+ nbap_dch_chnl_info[prev_dch_id].next_dch = dch_id;
+ }
+ }
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 607 "../../asn1/nbap/nbap.cnf"
+#line 649 "../../asn1/nbap/nbap.cnf"
guint32 NrOfTransportBlocks;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
nbap_dch_chnl_info[dch_id].num_dl_chans++;
nbap_dch_chnl_info[dch_id].dl_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
break;
+ case CPCH:
+ nbap_dch_chnl_info[commonphysicalchannelid].num_ul_chans++;
+ nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
+ nbap_dch_chnl_info[commonphysicalchannelid].num_dl_chans++;
+ nbap_dch_chnl_info[commonphysicalchannelid].dl_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
+ break;
default:
break;
}
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 627 "../../asn1/nbap/nbap.cnf"
+#line 675 "../../asn1/nbap/nbap.cnf"
guint32 TransportBlockSize;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
case DCH_DL:
nbap_dch_chnl_info[dch_id].dl_chan_tf_size[num_items-1] = TransportBlockSize;
break;
+ case CPCH:
+ nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_tf_size[num_items-1] = TransportBlockSize;
+ nbap_dch_chnl_info[commonphysicalchannelid].dl_chan_tf_size[num_items-1] = TransportBlockSize;
+ break;
default:
break;
}
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 603 "../../asn1/nbap/nbap.cnf"
+#line 645 "../../asn1/nbap/nbap.cnf"
num_items++;
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 600 "../../asn1/nbap/nbap.cnf"
+#line 642 "../../asn1/nbap/nbap.cnf"
num_items = 0;
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 584 "../../asn1/nbap/nbap.cnf"
+#line 626 "../../asn1/nbap/nbap.cnf"
transportFormatSet_type = DCH_UL;
nbap_dch_chnl_info[dch_id].num_ul_chans = 0;
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 588 "../../asn1/nbap/nbap.cnf"
+#line 630 "../../asn1/nbap/nbap.cnf"
transportFormatSet_type = DCH_DL;
nbap_dch_chnl_info[dch_id].num_dl_chans = 0;
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 581 "../../asn1/nbap/nbap.cnf"
+#line 620 "../../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 623 "../../asn1/nbap/nbap.cnf"
+ prev_dch_id = dch_id;
+
+
return offset;
}
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 578 "../../asn1/nbap/nbap.cnf"
+#line 616 "../../asn1/nbap/nbap.cnf"
g_num_dch_in_flow = 0;
+ prev_dch_id = 0;
offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
static int
dissect_nbap_T_dCH_ID_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 514 "../../asn1/nbap/nbap.cnf"
+#line 519 "../../asn1/nbap/nbap.cnf"
offset = dissect_nbap_DCH_ID(tvb, offset, actx, tree, hf_index);
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 592 "../../asn1/nbap/nbap.cnf"
+#line 634 "../../asn1/nbap/nbap.cnf"
transportFormatSet_type = DCH_UL;
nbap_dch_chnl_info[dch_id].num_ul_chans = 0;
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 596 "../../asn1/nbap/nbap.cnf"
+#line 638 "../../asn1/nbap/nbap.cnf"
transportFormatSet_type = DCH_DL;
nbap_dch_chnl_info[dch_id].num_dl_chans = 0;
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 525 "../../asn1/nbap/nbap.cnf"
+#line 530 "../../asn1/nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxNrOfMACdFlows_1, &hsdsch_macdflow_id, FALSE);
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 758 "../../asn1/nbap/nbap.cnf"
+#line 825 "../../asn1/nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation;
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 645 "../../asn1/nbap/nbap.cnf"
+#line 697 "../../asn1/nbap/nbap.cnf"
offset = dissect_nbap_DCH_ID(tvb, offset, actx, tree, hf_index);
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 650 "../../asn1/nbap/nbap.cnf"
+#line 702 "../../asn1/nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation = NULL;
umts_fp_conversation_info_t *umts_fp_conversation_info;
umts_fp_conversation_info->crnc_port = BindingID_port;
/* DCH's in this flow */
- umts_fp_conversation_info->num_dch_in_flow = g_num_dch_in_flow;
umts_fp_conversation_info->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present;
- /* Temp kludge to owercome a problem with multiple single flows in one MSG */
- if(g_num_dch_in_flow == 1){
- g_dchs_in_flow_list[0] = dch_id;
+ /* 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[dch_id].num_ul_chans;
+ 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[dch_id].ul_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_chanel_info[0].ul_chan_num_tbs[j] = nbap_dch_chnl_info[dch_id].ul_chan_num_tbs[j];
+ }
+
+ /* Traffic flows per DCH(DL) */
+ umts_fp_conversation_info->fp_dch_chanel_info[0].num_dl_chans = num_tf = nbap_dch_chnl_info[dch_id].num_dl_chans;
+ 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[dch_id].dl_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_chanel_info[0].dl_chan_num_tbs[j] = nbap_dch_chnl_info[dch_id].dl_chan_num_tbs[j];
}
- for (i = 0; i < g_num_dch_in_flow; i++) {
- umts_fp_conversation_info->dchs_in_flow_list[i] = g_dchs_in_flow_list[i];
+ /* Set data for associated DCH's if we have any */
+ i = dch_id;
+ umts_fp_conversation_info->dchs_in_flow_list[0] = dch_id;
+ while(nbap_dch_chnl_info[i].next_dch != 0){
+ i = nbap_dch_chnl_info[i].next_dch;
+ 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;
/* Traffic flows per DCH(UL) */
- umts_fp_conversation_info->fp_dch_chanel_info[i].num_ul_chans = num_tf = nbap_dch_chnl_info[g_dchs_in_flow_list[i]].num_ul_chans;
+ umts_fp_conversation_info->fp_dch_chanel_info[umts_fp_conversation_info->num_dch_in_flow].num_ul_chans = num_tf = nbap_dch_chnl_info[i].num_ul_chans;
for (j = 0; j < num_tf; j++) {
- umts_fp_conversation_info->fp_dch_chanel_info[i].ul_chan_tf_size[j] = nbap_dch_chnl_info[g_dchs_in_flow_list[i]].ul_chan_tf_size[j];
- umts_fp_conversation_info->fp_dch_chanel_info[i].ul_chan_num_tbs[j] = nbap_dch_chnl_info[g_dchs_in_flow_list[i]].ul_chan_num_tbs[j];
+ umts_fp_conversation_info->fp_dch_chanel_info[umts_fp_conversation_info->num_dch_in_flow].ul_chan_tf_size[j] = nbap_dch_chnl_info[i].ul_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_chanel_info[umts_fp_conversation_info->num_dch_in_flow].ul_chan_num_tbs[j] = nbap_dch_chnl_info[i].ul_chan_num_tbs[j];
}
/* Traffic flows per DCH(DL) */
- umts_fp_conversation_info->fp_dch_chanel_info[i].num_dl_chans = num_tf = nbap_dch_chnl_info[g_dchs_in_flow_list[i]].num_dl_chans;
+ umts_fp_conversation_info->fp_dch_chanel_info[umts_fp_conversation_info->num_dch_in_flow].num_dl_chans = num_tf = nbap_dch_chnl_info[i].num_dl_chans;
for (j = 0; j < num_tf; j++) {
- umts_fp_conversation_info->fp_dch_chanel_info[i].dl_chan_tf_size[j] = nbap_dch_chnl_info[g_dchs_in_flow_list[i]].dl_chan_tf_size[j];
- umts_fp_conversation_info->fp_dch_chanel_info[i].dl_chan_num_tbs[j] = nbap_dch_chnl_info[g_dchs_in_flow_list[i]].dl_chan_num_tbs[j];
+ umts_fp_conversation_info->fp_dch_chanel_info[umts_fp_conversation_info->num_dch_in_flow].dl_chan_tf_size[j] = nbap_dch_chnl_info[i].dl_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_chanel_info[umts_fp_conversation_info->num_dch_in_flow].dl_chan_num_tbs[j] = nbap_dch_chnl_info[i].dl_chan_num_tbs[j];
}
}
+ 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);
}
}
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 724 "../../asn1/nbap/nbap.cnf"
+#line 791 "../../asn1/nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation;
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 543 "../../asn1/nbap/nbap.cnf"
+#line 548 "../../asn1/nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation;
+umts_fp_conversation_info_t *umts_fp_conversation_info;
+int j, num_tf;
transportLayerAddress_ipv4 = 0;
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_CPCH;
+ 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;
+
+ /* DCH's in this flow */
+ 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[commonphysicalchannelid].num_ul_chans;
+ 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[commonphysicalchannelid].ul_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_chanel_info[0].ul_chan_num_tbs[j] = nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_num_tbs[j];
+ }
+
+ /* Traffic flows per DCH(DL) */
+ umts_fp_conversation_info->fp_dch_chanel_info[0].num_dl_chans = num_tf = nbap_dch_chnl_info[commonphysicalchannelid].num_dl_chans;
+ 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[commonphysicalchannelid].dl_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_chanel_info[0].dl_chan_num_tbs[j] = nbap_dch_chnl_info[commonphysicalchannelid].dl_chan_num_tbs[j];
+ }
+
+ umts_fp_conversation_info->dchs_in_flow_list[0] = commonphysicalchannelid;
+ umts_fp_conversation_info->num_dch_in_flow=1;
+ set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
+ }
}
/*--- End of included file: packet-nbap-fn.c ---*/
-#line 148 "../../asn1/nbap/packet-nbap-template.c"
+#line 151 "../../asn1/nbap/packet-nbap-template.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
NULL, HFILL }},
/*--- End of included file: packet-nbap-hfarr.c ---*/
-#line 212 "../../asn1/nbap/packet-nbap-template.c"
+#line 215 "../../asn1/nbap/packet-nbap-template.c"
};
/* List of subtrees */
&ett_nbap_Outcome,
/*--- End of included file: packet-nbap-ettarr.c ---*/
-#line 220 "../../asn1/nbap/packet-nbap-template.c"
+#line 223 "../../asn1/nbap/packet-nbap-template.c"
};
/*--- End of included file: packet-nbap-dis-tab.c ---*/
-#line 254 "../../asn1/nbap/packet-nbap-template.c"
+#line 257 "../../asn1/nbap/packet-nbap-template.c"
}