aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorsswsdev <sswsdev@gmail.com>2017-05-19 12:28:36 +0300
committerAnders Broman <a.broman58@gmail.com>2017-05-20 16:32:00 +0000
commit6abff3174bb1b62744a91e18d28c95d877a44aa0 (patch)
treeeb506908e71fedf57c5dda4c85061993308bff39 /epan
parentd061a7d50e2750011ff1ccc0fd297f5bae606ef1 (diff)
UMTS FP: Refactored FP Conversation Info struct
Moved some fields which are only relevant to HS-DSCH / E-DCH channel into appropriate 'channel specific' structs. Also renamed "dchs_in_flow_list" to "dch_ids_in_flow_list" Change-Id: I7bdeb74c7b1eda0872c0243f0e5f229df2691866 Reviewed-on: https://code.wireshark.org/review/21707 Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/asn1/nbap/nbap.cnf105
-rw-r--r--epan/dissectors/asn1/nbap/packet-nbap-template.c11
-rw-r--r--epan/dissectors/packet-nbap.c394
-rw-r--r--epan/dissectors/packet-nbap.h2
-rw-r--r--epan/dissectors/packet-umts_fp.c67
-rw-r--r--epan/dissectors/packet-umts_fp.h187
6 files changed, 431 insertions, 335 deletions
diff --git a/epan/dissectors/asn1/nbap/nbap.cnf b/epan/dissectors/asn1/nbap/nbap.cnf
index 7918ba292e..a6092f5ee0 100644
--- a/epan/dissectors/asn1/nbap/nbap.cnf
+++ b/epan/dissectors/asn1/nbap/nbap.cnf
@@ -678,7 +678,7 @@ guint32 payload_crc_value;
#.FN_BODY DCH-ID VAL_PTR = &t_dch_id
#%(DEFAULT_BODY)s
# if(g_num_dch_in_flow>0)
-# g_dchs_in_flow_list[g_num_dch_in_flow-1]=dch_id;
+# g_dch_ids_in_flow_list[g_num_dch_in_flow-1]=dch_id;
#
# Only get the DCH-ID in this particularcase
#
@@ -688,7 +688,7 @@ guint32 payload_crc_value;
0U, 255U, &dch_id, FALSE);
if(g_num_dch_in_flow>0){
- g_dchs_in_flow_list[g_num_dch_in_flow-1]=dch_id;
+ g_dch_ids_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;
@@ -815,7 +815,7 @@ transportFormatSet_type = NBAP_CPCH;
umts_fp_conversation_info->fp_dch_channel_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->dch_ids_in_flow_list[0] = commonphysicalchannelid;
umts_fp_conversation_info->num_dch_in_flow=1;
set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
}
@@ -922,11 +922,11 @@ num_items = 1;
nbap_debug(" commontransportchannelid %%u next ch %%u",commontransportchannelid, nbap_dch_chnl_info[i].next_dch);
- umts_fp_conversation_info->dchs_in_flow_list[0] = commontransportchannelid;
+ umts_fp_conversation_info->dch_ids_in_flow_list[0] = commontransportchannelid;
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;
+ umts_fp_conversation_info->dch_ids_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i;
/* Traffic flows per DCH(UL) */
umts_fp_conversation_info->fp_dch_channel_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++) {
@@ -945,7 +945,7 @@ num_items = 1;
nbap_debug(" 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;
+ umts_fp_conversation_info->dch_ids_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i;
set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
nbap_debug("Frame %%u PCH-ParametersItem-CTCH-SetupRqstFDD End",
@@ -1028,11 +1028,11 @@ transportFormatSet_type = NBAP_CPCH;
/* Set data for associated DCH's if we have any */
i = commonphysicalchannelid;
- umts_fp_conversation_info->dchs_in_flow_list[0] = commonphysicalchannelid;
+ umts_fp_conversation_info->dch_ids_in_flow_list[0] = commonphysicalchannelid;
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;
+ umts_fp_conversation_info->dch_ids_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i;
/* Traffic flows per DCH(UL) */
umts_fp_conversation_info->fp_dch_channel_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++) {
@@ -1048,7 +1048,7 @@ transportFormatSet_type = NBAP_CPCH;
}
}
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;
+ umts_fp_conversation_info->dch_ids_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i;
set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
}
@@ -1238,13 +1238,13 @@ dch_id = 0xFFFFFFFF;
/* Set data for associated DCH's if we have any */
i = dch_id;
- umts_fp_conversation_info->dchs_in_flow_list[0] = dch_id;
+ umts_fp_conversation_info->dch_ids_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; /*Set transport channel id*/
+ umts_fp_conversation_info->dch_ids_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i; /*Set transport channel id*/
/*Setting Logical Channel's for this DCH*/
/* Traffic flows per DCH(UL) */
@@ -1263,7 +1263,7 @@ dch_id = 0xFFFFFFFF;
}
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;
+ umts_fp_conversation_info->dch_ids_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i;
set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
}
@@ -1392,6 +1392,7 @@ BindingID_port = 0;
#.FN_BODY E-DCH-MACdFlow-Specific-InfoItem
umts_fp_conversation_info_t *p_conv_data = NULL;
+fp_edch_channel_info_t* fp_edch_channel_info = NULL;
address null_addr;
conversation_t *p_conv;
guint32 no_ddi_entries, i;
@@ -1414,13 +1415,18 @@ guint32 no_ddi_entries, i;
if(!p_conv_data)
return offset;
- no_ddi_entries = p_conv_data->no_ddi_entries = nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries;
+
+ fp_edch_channel_info = (fp_edch_channel_info_t*)p_conv_data->channel_specific_info;
+ if(p_conv_data->channel != CHANNEL_EDCH || !fp_edch_channel_info)
+ return offset;
+
+ no_ddi_entries = fp_edch_channel_info->no_ddi_entries = nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries;
/*g_print("E-DCH-MACdFlow-Specific-InfoItem: e_dch_macdflow_id %%u, no_ddi_entries %%u\n",e_dch_macdflow_id,no_ddi_entries);*/
for (i = 0; i < no_ddi_entries; i++) {
- p_conv_data->edch_ddi[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i];
- p_conv_data->edch_macd_pdu_size[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[i];
+ fp_edch_channel_info->edch_ddi[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i];
+ fp_edch_channel_info->edch_macd_pdu_size[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[i];
- p_conv_data->edch_lchId[i] = nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]; /*lchId_type_table[nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]];*/
+ fp_edch_channel_info->edch_lchId[i] = nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]; /*lchId_type_table[nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]];*/
/*g_print("E-DCH-MACdFlow-Specific-InfoItem: e_dch_macdflow_id %%u edch_ddi %%u edch_macd_pdu_size %%u\n",
e_dch_macdflow_id,
nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i],
@@ -1433,14 +1439,14 @@ guint32 no_ddi_entries, i;
/* Figure out which type of E-DCH frame, based on DDI value (DDI = 0 => type 2)*/
if( 0 == e_dch_ddi_value ){
- p_conv_data->edch_type = 1; /* 1 means T2 */
+ fp_edch_channel_info->edch_type = 1; /* 1 means T2 */
}else{
/*Value 1-5 means T1*/
- p_conv_data->edch_type = 0; /* 0 means T1 */
+ fp_edch_channel_info->edch_type = 0; /* 0 means T1 */
}
/* 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;
+ p_conv_data->dch_ids_in_flow_list[0] = e_dch_macdflow_id;
#Handle Modified E-DCH Flows
#.FN_BODY E-DCH-FDD-Information-to-Modify
@@ -1541,6 +1547,7 @@ guint32 no_ddi_entries, i;
address null_addr;
nbap_edch_port_info_t *old_info;
umts_fp_conversation_info_t *p_conv_data = NULL;
+fp_edch_channel_info_t* fp_edch_channel_info;
conversation_t *p_conv;
num_items = 1;
@@ -1597,13 +1604,18 @@ num_items = 1;
if(!p_conv_data)
return offset;
- no_ddi_entries = p_conv_data->no_ddi_entries = nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries;
+
+ fp_edch_channel_info = (fp_edch_channel_info_t*)p_conv_data->channel_specific_info;
+ if(p_conv_data->channel != CHANNEL_EDCH || !fp_edch_channel_info)
+ return offset;
+
+ no_ddi_entries = fp_edch_channel_info->no_ddi_entries = nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries;
/*g_print("E-DCH-MACdFlow-MODIFIED-Specific-InfoItem: e_dch_macdflow_id %%u, no_ddi_entries %%u\n",e_dch_macdflow_id,no_ddi_entries);*/
for (i = 0; i < no_ddi_entries; i++) {
- p_conv_data->edch_ddi[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i];
- p_conv_data->edch_macd_pdu_size[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[i];
+ fp_edch_channel_info->edch_ddi[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i];
+ fp_edch_channel_info->edch_macd_pdu_size[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[i];
- p_conv_data->edch_lchId[i] = nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]; /*lchId_type_table[nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]];*/
+ fp_edch_channel_info->edch_lchId[i] = nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]; /*lchId_type_table[nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]];*/
/* g_print("E-DCH-MACdFlow-Specific-InfoItem: e_dch_macdflow_id %%u edch_ddi %%u edch_macd_pdu_size %%u\n",
e_dch_macdflow_id,
nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i],
@@ -1616,14 +1628,14 @@ num_items = 1;
/* Figure out which type of E-DCH frame, based on DDI value (DDI = 0 => type 2)*/
if( 0 == e_dch_ddi_value ){
- p_conv_data->edch_type = 1; /* 1 means T2 */
+ fp_edch_channel_info->edch_type = 1; /* 1 means T2 */
}else{
/*Value 1-5 means T1*/
- p_conv_data->edch_type = 0; /* 0 means T1 */
+ fp_edch_channel_info->edch_type = 0; /* 0 means T1 */
}
/* 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;
+ p_conv_data->dch_ids_in_flow_list[0] = e_dch_macdflow_id;
@@ -1803,6 +1815,7 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items;
address null_addr;
conversation_t *conversation = NULL;
umts_fp_conversation_info_t *umts_fp_conversation_info;
+ fp_hsdsch_channel_info_t* fp_hsdsch_channel_info = NULL;
guint32 i;
if (!actx->pinfo->fd->flags.visited){
@@ -1857,26 +1870,28 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items;
copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &nbap_hsdsch_channel_info[i].crnc_address);
umts_fp_conversation_info->crnc_port = nbap_hsdsch_channel_info[i].crnc_port;
+ fp_hsdsch_channel_info = wmem_new0(wmem_file_scope(), fp_hsdsch_channel_info_t);
+ umts_fp_conversation_info->channel_specific_info = (void*)fp_hsdsch_channel_info;
/*Added june 3, normally just the iterator variable*/
- umts_fp_conversation_info->hsdsch_macdflow_id = i ; /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/
+ fp_hsdsch_channel_info->hsdsch_macdflow_id = i ; /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/
/*Added july 2012*/
umts_fp_conversation_info->com_context_id = com_context_id;
/* Cheat and use the DCH entries */
umts_fp_conversation_info->num_dch_in_flow++;
- umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i;
+ umts_fp_conversation_info->dch_ids_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i;
/*XXX: Is this craziness, what is physical_layer? */
if(nbap_hsdsch_channel_info[i].entity == entity_not_specified ){
if(nbap_hsdsch_channel_info[i].hsdsch_physical_layer_category > 12){
- umts_fp_conversation_info->hsdsch_entity = ehs;
+ fp_hsdsch_channel_info->hsdsch_entity = ehs;
}else{
- umts_fp_conversation_info->hsdsch_entity = hs;
+ fp_hsdsch_channel_info->hsdsch_entity = hs;
}
}else{
- umts_fp_conversation_info->hsdsch_entity = (enum fp_hsdsch_entity)nbap_hsdsch_channel_info[i].entity;
+ fp_hsdsch_channel_info->hsdsch_entity = (enum fp_hsdsch_entity)nbap_hsdsch_channel_info[i].entity;
}
umts_fp_conversation_info->rlc_mode = nbap_hsdsch_channel_info[i].rlc_mode;
set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
@@ -1916,6 +1931,7 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items;
address null_addr;
conversation_t *conversation = NULL;
umts_fp_conversation_info_t *umts_fp_conversation_info;
+ fp_hsdsch_channel_info_t* fp_hsdsch_channel_info = NULL;
guint32 i;
if (!actx->pinfo->fd->flags.visited){
@@ -1974,26 +1990,28 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items;
copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &nbap_hsdsch_channel_info[i].crnc_address);
umts_fp_conversation_info->crnc_port = nbap_hsdsch_channel_info[i].crnc_port;
+ fp_hsdsch_channel_info = wmem_new0(wmem_file_scope(), fp_hsdsch_channel_info_t);
+ umts_fp_conversation_info->channel_specific_info = (void*)fp_hsdsch_channel_info;
/*Added june 3, normally just the iterator variable*/
- umts_fp_conversation_info->hsdsch_macdflow_id = i ; /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/
+ fp_hsdsch_channel_info->hsdsch_macdflow_id = i ; /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/
/*Added july 2012*/
umts_fp_conversation_info->com_context_id = com_context_id;
/* Cheat and use the DCH entries */
umts_fp_conversation_info->num_dch_in_flow++;
- umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i;
+ umts_fp_conversation_info->dch_ids_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i;
/*XXX: Is this craziness, what is physical_layer? */
if(nbap_hsdsch_channel_info[i].entity == entity_not_specified ){
if(nbap_hsdsch_channel_info[i].hsdsch_physical_layer_category > 12){
- umts_fp_conversation_info->hsdsch_entity = ehs;
+ fp_hsdsch_channel_info->hsdsch_entity = ehs;
}else{
- umts_fp_conversation_info->hsdsch_entity = hs;
+ fp_hsdsch_channel_info->hsdsch_entity = hs;
}
}else{
- umts_fp_conversation_info->hsdsch_entity = (enum fp_hsdsch_entity)nbap_hsdsch_channel_info[i].entity;
+ fp_hsdsch_channel_info->hsdsch_entity = (enum fp_hsdsch_entity)nbap_hsdsch_channel_info[i].entity;
}
umts_fp_conversation_info->rlc_mode = nbap_hsdsch_channel_info[i].rlc_mode;
@@ -2049,6 +2067,7 @@ nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items;
* other case.
*/
umts_fp_conversation_info_t *umts_fp_conversation_info = NULL;
+fp_hsdsch_channel_info_t* fp_hsdsch_channel_info = NULL;
address null_addr;
conversation_t *conversation = NULL;
@@ -2097,13 +2116,14 @@ int i;
copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &nbap_common_channel_info[i].crnc_address);
umts_fp_conversation_info->crnc_port = nbap_common_channel_info[i].crnc_port;
- /*umts_fp_conversation_info->hsdsch_macdflow_id = i ;*/ /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/
- umts_fp_conversation_info->common_macdflow_id = common_macdflow_id;
+ fp_hsdsch_channel_info = wmem_new0(wmem_file_scope(), fp_hsdsch_channel_info_t);
+ umts_fp_conversation_info->channel_specific_info = (void*)fp_hsdsch_channel_info;
+ fp_hsdsch_channel_info->common_macdflow_id = common_macdflow_id;
+ fp_hsdsch_channel_info->hsdsch_entity = ehs;
- umts_fp_conversation_info->hsdsch_entity = ehs;
umts_fp_conversation_info->num_dch_in_flow++;
- umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i;
+ umts_fp_conversation_info->dch_ids_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i;
set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
}
@@ -2153,6 +2173,7 @@ if(crcn_context_present){
#.FN_BODY HSDSCH-RNTI VAL_PTR = &hrnti
umts_fp_conversation_info_t *umts_fp_conversation_info = NULL;
+fp_hsdsch_channel_info_t* fp_hsdsch_channel_info = NULL;
address null_addr;
conversation_t *conversation = NULL;
int i;
@@ -2173,7 +2194,9 @@ int i;
if(conversation != NULL){
umts_fp_conversation_info = (umts_fp_conversation_info_t *)conversation_get_proto_data(conversation, proto_fp);
DISSECTOR_ASSERT(umts_fp_conversation_info != NULL);
- umts_fp_conversation_info->hrnti = hrnti;
+ fp_hsdsch_channel_info = (fp_hsdsch_channel_info_t*)umts_fp_conversation_info->channel_specific_info;
+ DISSECTOR_ASSERT(fp_hsdsch_channel_info != NULL);
+ fp_hsdsch_channel_info->hrnti = hrnti;
}
}
}
diff --git a/epan/dissectors/asn1/nbap/packet-nbap-template.c b/epan/dissectors/asn1/nbap/packet-nbap-template.c
index 8695084fbe..97bd0999f1 100644
--- a/epan/dissectors/asn1/nbap/packet-nbap-template.c
+++ b/epan/dissectors/asn1/nbap/packet-nbap-template.c
@@ -179,7 +179,7 @@ nbap_common_channel_info_t nbap_common_channel_info[maxNrOfMACdFlows]; /*TODO: F
gint g_num_dch_in_flow;
/* maxNrOfTFs INTEGER ::= 32 */
-gint g_dchs_in_flow_list[maxNrOfTFs];
+gint g_dch_ids_in_flow_list[maxNrOfTFs];
gint hsdsch_macdflow_ids[maxNrOfMACdFlows];
@@ -367,6 +367,7 @@ static void add_hsdsch_bind(packet_info *pinfo){
address null_addr;
conversation_t *conversation = NULL;
umts_fp_conversation_info_t *umts_fp_conversation_info;
+ fp_hsdsch_channel_info_t* fp_hsdsch_channel_info = NULL;
guint32 i;
if (pinfo->fd->flags.visited){
@@ -403,19 +404,21 @@ static void add_hsdsch_bind(packet_info *pinfo){
copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &nbap_hsdsch_channel_info[i].crnc_address);
umts_fp_conversation_info->crnc_port = nbap_hsdsch_channel_info[i].crnc_port;
+ fp_hsdsch_channel_info = wmem_new0(wmem_file_scope(), fp_hsdsch_channel_info_t);
+ umts_fp_conversation_info->channel_specific_info = (void*)fp_hsdsch_channel_info;
/*Added june 3, normally just the iterator variable*/
- umts_fp_conversation_info->hsdsch_macdflow_id = i ; /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/
+ fp_hsdsch_channel_info->hsdsch_macdflow_id = i ; /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/
/* Cheat and use the DCH entries */
umts_fp_conversation_info->num_dch_in_flow++;
- umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i;
+ umts_fp_conversation_info->dch_ids_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i;
/*XXX: Is this craziness, what is physical_layer? */
if(nbap_hsdsch_channel_info[i].entity == entity_not_specified ){
/*Error*/
expert_add_info(pinfo, NULL, &ei_nbap_hsdsch_entity_not_specified);
}else{
- umts_fp_conversation_info->hsdsch_entity = (enum fp_hsdsch_entity)nbap_hsdsch_channel_info[i].entity;
+ fp_hsdsch_channel_info->hsdsch_entity = (enum fp_hsdsch_entity)nbap_hsdsch_channel_info[i].entity;
}
umts_fp_conversation_info->rlc_mode = nbap_hsdsch_channel_info[i].rlc_mode;
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 4e9e25fe5e..4bb9cd1567 100644
--- a/epan/dissectors/packet-nbap.c
+++ b/epan/dissectors/packet-nbap.c
@@ -5,7 +5,7 @@
/* Input file: packet-nbap-template.c */
-#line 1 "./asn1/nbap/packet-nbap-template.c"
+#line 1 "./asn1/Nbap/packet-nbap-template.c"
/* packet-nbap-template.c
* Routines for UMTS Node B Application Part(NBAP) packet dissection
* Copyright 2005, 2009 Anders Broman <anders.broman@ericsson.com>
@@ -84,7 +84,7 @@ wmem_tree_t *nbap_crncc_urnti_map = NULL;
/*--- Included file: packet-nbap-val.h ---*/
-#line 1 "./asn1/nbap/packet-nbap-val.h"
+#line 1 "./asn1/Nbap/packet-nbap-val.h"
#define maxPrivateIEs 65535
#define maxProtocolExtensions 65535
#define maxProtocolIEs 65535
@@ -1540,7 +1540,7 @@ typedef enum _ProtocolIE_ID_enum {
} ProtocolIE_ID_enum;
/*--- End of included file: packet-nbap-val.h ---*/
-#line 78 "./asn1/nbap/packet-nbap-template.c"
+#line 78 "./asn1/Nbap/packet-nbap-template.c"
/* Initialize the protocol and registered fields */
static int proto_nbap = -1;
@@ -1550,7 +1550,7 @@ static int hf_nbap_transportLayerAddress_nsap = -1;
/*--- Included file: packet-nbap-hf.c ---*/
-#line 1 "./asn1/nbap/packet-nbap-hf.c"
+#line 1 "./asn1/Nbap/packet-nbap-hf.c"
static int hf_nbap_ActivationInformation_PDU = -1; /* ActivationInformation */
static int hf_nbap_Additional_EDCH_Setup_Info_PDU = -1; /* Additional_EDCH_Setup_Info */
static int hf_nbap_Additional_EDCH_Cell_Information_Response_List_PDU = -1; /* Additional_EDCH_Cell_Information_Response_List */
@@ -4844,7 +4844,7 @@ static int hf_nbap_RACH_SubChannelNumbers_subCh1 = -1;
static int hf_nbap_RACH_SubChannelNumbers_subCh0 = -1;
/*--- End of included file: packet-nbap-hf.c ---*/
-#line 86 "./asn1/nbap/packet-nbap-template.c"
+#line 86 "./asn1/Nbap/packet-nbap-template.c"
/* Initialize the subtree pointers */
static int ett_nbap = -1;
@@ -4854,7 +4854,7 @@ static int ett_nbap_ib_sg_data = -1;
/*--- Included file: packet-nbap-ett.c ---*/
-#line 1 "./asn1/nbap/packet-nbap-ett.c"
+#line 1 "./asn1/Nbap/packet-nbap-ett.c"
static gint ett_nbap_PrivateIE_ID = -1;
static gint ett_nbap_ProcedureID = -1;
static gint ett_nbap_TransactionID = -1;
@@ -6483,7 +6483,7 @@ static gint ett_nbap_UnsuccessfulOutcome = -1;
static gint ett_nbap_Outcome = -1;
/*--- End of included file: packet-nbap-ett.c ---*/
-#line 94 "./asn1/nbap/packet-nbap-template.c"
+#line 94 "./asn1/Nbap/packet-nbap-template.c"
static expert_field ei_nbap_no_find_comm_context_id = EI_INIT;
static expert_field ei_nbap_no_find_port_info = EI_INIT;
@@ -6572,7 +6572,7 @@ nbap_common_channel_info_t nbap_common_channel_info[maxNrOfMACdFlows]; /*TODO: F
gint g_num_dch_in_flow;
/* maxNrOfTFs INTEGER ::= 32 */
-gint g_dchs_in_flow_list[maxNrOfTFs];
+gint g_dch_ids_in_flow_list[maxNrOfTFs];
gint hsdsch_macdflow_ids[maxNrOfMACdFlows];
@@ -6729,7 +6729,7 @@ static void add_hsdsch_bind(packet_info * pinfo);
/*--- Included file: packet-nbap-fn.c ---*/
-#line 1 "./asn1/nbap/packet-nbap-fn.c"
+#line 1 "./asn1/Nbap/packet-nbap-fn.c"
static const value_string nbap_Criticality_vals[] = {
{ 0, "reject" },
@@ -6871,7 +6871,7 @@ dissect_nbap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &ProcedureCode, FALSE);
-#line 93 "./asn1/nbap/nbap.cnf"
+#line 93 "./asn1/Nbap/nbap.cnf"
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
val_to_str(ProcedureCode, nbap_ProcedureCode_vals,
"unknown message"));
@@ -6905,7 +6905,7 @@ static const per_sequence_t ProcedureID_sequence[] = {
static int
dissect_nbap_ProcedureID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 100 "./asn1/nbap/nbap.cnf"
+#line 100 "./asn1/Nbap/nbap.cnf"
ProcedureCode = 0xFFFF;
ddMode = 0xFFFF;
ProcedureID = NULL;
@@ -6913,7 +6913,7 @@ dissect_nbap_ProcedureID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_ProcedureID, ProcedureID_sequence);
-#line 106 "./asn1/nbap/nbap.cnf"
+#line 106 "./asn1/Nbap/nbap.cnf"
ProcedureID = wmem_strdup_printf(wmem_packet_scope(), "%s/%s",
val_to_str(ProcedureCode, VALS(nbap_ProcedureCode_vals), "unknown(%u)"),
val_to_str(ddMode, VALS(nbap_DdMode_vals), "unknown(%u)"));
@@ -8158,7 +8158,7 @@ dissect_nbap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxProtocolIEs, &ProtocolIE_ID, FALSE);
-#line 82 "./asn1/nbap/nbap.cnf"
+#line 82 "./asn1/Nbap/nbap.cnf"
if (tree) {
proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(ProtocolIE_ID, &nbap_ProtocolIE_ID_vals_ext, "unknown (%d)"));
}
@@ -8447,7 +8447,7 @@ dissect_nbap_Multicell_EDCH_Transport_Bearer_Mode(tvbuff_t *tvb _U_, int offset
static int
dissect_nbap_UL_ScramblingCodeNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 743 "./asn1/nbap/nbap.cnf"
+#line 743 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 16777215U, &ul_scrambling_code, FALSE);
@@ -8713,7 +8713,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 714 "./asn1/nbap/nbap.cnf"
+#line 714 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxNrOfEDCHMACdFlows_1, &e_dch_macdflow_id, FALSE);
@@ -8729,7 +8729,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 727 "./asn1/nbap/nbap.cnf"
+#line 727 "./asn1/Nbap/nbap.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -8753,7 +8753,7 @@ dissect_nbap_BindingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_nbap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 620 "./asn1/nbap/nbap.cnf"
+#line 620 "./asn1/Nbap/nbap.cnf"
tvbuff_t *parameter_tvb=NULL;
proto_item *item;
proto_tree *subtree, *nsap_tree;
@@ -10074,7 +10074,7 @@ dissect_nbap_AddorDeleteIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_nbap_CFN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2190 "./asn1/nbap/nbap.cnf"
+#line 2213 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &cfn, FALSE);
@@ -10327,8 +10327,9 @@ dissect_nbap_AvailabilityStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_nbap_HSDSCH_RNTI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2155 "./asn1/nbap/nbap.cnf"
+#line 2175 "./asn1/Nbap/nbap.cnf"
umts_fp_conversation_info_t *umts_fp_conversation_info = NULL;
+fp_hsdsch_channel_info_t* fp_hsdsch_channel_info = NULL;
address null_addr;
conversation_t *conversation = NULL;
int i;
@@ -10351,7 +10352,9 @@ int i;
if(conversation != NULL){
umts_fp_conversation_info = (umts_fp_conversation_info_t *)conversation_get_proto_data(conversation, proto_fp);
DISSECTOR_ASSERT(umts_fp_conversation_info != NULL);
- umts_fp_conversation_info->hrnti = hrnti;
+ fp_hsdsch_channel_info = (fp_hsdsch_channel_info_t*)umts_fp_conversation_info->channel_specific_info;
+ DISSECTOR_ASSERT(fp_hsdsch_channel_info != NULL);
+ fp_hsdsch_channel_info->hrnti = hrnti;
}
}
}
@@ -10568,7 +10571,7 @@ 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 709 "./asn1/nbap/nbap.cnf"
+#line 709 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &commontransportchannelid, FALSE);
@@ -11379,7 +11382,7 @@ dissect_nbap_Common_E_DCH_HSDPCCH_InfoItem(tvbuff_t *tvb _U_, int offset _U_, as
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 704 "./asn1/nbap/nbap.cnf"
+#line 704 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &commonphysicalchannelid, FALSE);
@@ -11549,7 +11552,7 @@ dissect_nbap_Common_E_DCH_Resource_Combination_InfoList(tvbuff_t *tvb _U_, int o
static int
dissect_nbap_Common_MACFlow_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2014 "./asn1/nbap/nbap.cnf"
+#line 2032 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxNrOfCommonMACFlows_1, &common_macdflow_id, FALSE);
@@ -11631,7 +11634,7 @@ static const value_string nbap_PayloadCRC_PresenceIndicator_vals[] = {
static int
dissect_nbap_PayloadCRC_PresenceIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 668 "./asn1/nbap/nbap.cnf"
+#line 668 "./asn1/Nbap/nbap.cnf"
guint32 payload_crc_value;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
@@ -11683,7 +11686,7 @@ dissect_nbap_E_DCH_MACdFlow_Multiplexing_List(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_nbap_LogicalChannelID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1668 "./asn1/nbap/nbap.cnf"
+#line 1680 "./asn1/Nbap/nbap.cnf"
/* Set logical channel id for this entry*/
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 15U, &logical_channel_id, FALSE);
@@ -11701,7 +11704,7 @@ dissect_nbap_LogicalChannelID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_nbap_MAC_PDU_SizeExtended(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1770 "./asn1/nbap/nbap.cnf"
+#line 1782 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 1504U, NULL, TRUE);
@@ -12124,7 +12127,7 @@ static const per_sequence_t CommonMACFlow_Specific_InfoItem_sequence[] = {
static int
dissect_nbap_CommonMACFlow_Specific_InfoItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2021 "./asn1/nbap/nbap.cnf"
+#line 2039 "./asn1/Nbap/nbap.cnf"
address dst_addr;
transportLayerAddress_ipv4 = 0;
BindingID_port = 0;
@@ -12169,7 +12172,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 1658 "./asn1/nbap/nbap.cnf"
+#line 1670 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 5000U, &MACdPDU_Size, TRUE);
@@ -13390,7 +13393,7 @@ dissect_nbap_CriticalityDiagnostics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_nbap_CRNC_CommunicationContextID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2129 "./asn1/nbap/nbap.cnf"
+#line 2149 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 1048575U, &com_context_id, FALSE);
@@ -14821,13 +14824,13 @@ dissect_nbap_ToAWE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, prot
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 686 "./asn1/nbap/nbap.cnf"
+#line 686 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &dch_id, FALSE);
if(g_num_dch_in_flow>0){
- g_dchs_in_flow_list[g_num_dch_in_flow-1]=dch_id;
+ g_dch_ids_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;
@@ -14843,7 +14846,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 1097 "./asn1/nbap/nbap.cnf"
+#line 1097 "./asn1/Nbap/nbap.cnf"
guint32 NrOfTransportBlocks;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
@@ -14886,7 +14889,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 1129 "./asn1/nbap/nbap.cnf"
+#line 1129 "./asn1/Nbap/nbap.cnf"
guint32 TransportBlockSize;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
@@ -15014,7 +15017,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 1093 "./asn1/nbap/nbap.cnf"
+#line 1093 "./asn1/Nbap/nbap.cnf"
num_items++;
@@ -15032,7 +15035,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 1090 "./asn1/nbap/nbap.cnf"
+#line 1090 "./asn1/Nbap/nbap.cnf"
num_items = 0;
@@ -15203,7 +15206,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 1068 "./asn1/nbap/nbap.cnf"
+#line 1068 "./asn1/Nbap/nbap.cnf"
transportFormatSet_type = NBAP_DCH_UL;
nbap_dch_chnl_info[dch_id].num_ul_chans = 0;
@@ -15217,7 +15220,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 1072 "./asn1/nbap/nbap.cnf"
+#line 1072 "./asn1/Nbap/nbap.cnf"
transportFormatSet_type = NBAP_DCH_DL;
nbap_dch_chnl_info[dch_id].num_dl_chans = 0;
@@ -15267,14 +15270,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 1062 "./asn1/nbap/nbap.cnf"
+#line 1062 "./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 1065 "./asn1/nbap/nbap.cnf"
+#line 1065 "./asn1/Nbap/nbap.cnf"
prev_dch_id = dch_id;
@@ -15288,7 +15291,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 1058 "./asn1/nbap/nbap.cnf"
+#line 1058 "./asn1/Nbap/nbap.cnf"
g_num_dch_in_flow = 0;
prev_dch_id = 0;
@@ -15567,7 +15570,7 @@ dissect_nbap_DCH_TDD_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
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 699 "./asn1/nbap/nbap.cnf"
+#line 699 "./asn1/Nbap/nbap.cnf"
offset = dissect_nbap_DCH_ID(tvb, offset, actx, tree, hf_index);
@@ -15582,7 +15585,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 1076 "./asn1/nbap/nbap.cnf"
+#line 1076 "./asn1/Nbap/nbap.cnf"
transportFormatSet_type = NBAP_DCH_UL;
nbap_dch_chnl_info[dch_id].num_ul_chans = 0;
@@ -15596,7 +15599,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 1080 "./asn1/nbap/nbap.cnf"
+#line 1080 "./asn1/Nbap/nbap.cnf"
transportFormatSet_type = NBAP_DCH_DL;
nbap_dch_chnl_info[dch_id].num_dl_chans = 0;
@@ -15652,7 +15655,7 @@ static const per_sequence_t FDD_DCHs_to_ModifyItem_sequence[] = {
static int
dissect_nbap_FDD_DCHs_to_ModifyItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1156 "./asn1/nbap/nbap.cnf"
+#line 1156 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_FDD_DCHs_to_ModifyItem, FDD_DCHs_to_ModifyItem_sequence);
@@ -18074,7 +18077,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 1647 "./asn1/nbap/nbap.cnf"
+#line 1659 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 62U, &e_dch_ddi_value, FALSE);
@@ -18209,7 +18212,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 1644 "./asn1/nbap/nbap.cnf"
+#line 1656 "./asn1/Nbap/nbap.cnf"
num_items++;
@@ -18226,7 +18229,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 1637 "./asn1/nbap/nbap.cnf"
+#line 1649 "./asn1/Nbap/nbap.cnf"
num_items = 0;
offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
@@ -18259,8 +18262,9 @@ 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 1394 "./asn1/nbap/nbap.cnf"
+#line 1394 "./asn1/Nbap/nbap.cnf"
umts_fp_conversation_info_t *p_conv_data = NULL;
+fp_edch_channel_info_t* fp_edch_channel_info = NULL;
address null_addr;
conversation_t *p_conv;
guint32 no_ddi_entries, i;
@@ -18285,13 +18289,18 @@ guint32 no_ddi_entries, i;
if(!p_conv_data)
return offset;
- no_ddi_entries = p_conv_data->no_ddi_entries = nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries;
+
+ fp_edch_channel_info = (fp_edch_channel_info_t*)p_conv_data->channel_specific_info;
+ if(p_conv_data->channel != CHANNEL_EDCH || !fp_edch_channel_info)
+ return offset;
+
+ no_ddi_entries = fp_edch_channel_info->no_ddi_entries = nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries;
/*g_print("E-DCH-MACdFlow-Specific-InfoItem: e_dch_macdflow_id %u, no_ddi_entries %u\n",e_dch_macdflow_id,no_ddi_entries);*/
for (i = 0; i < no_ddi_entries; i++) {
- p_conv_data->edch_ddi[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i];
- p_conv_data->edch_macd_pdu_size[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[i];
+ fp_edch_channel_info->edch_ddi[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i];
+ fp_edch_channel_info->edch_macd_pdu_size[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[i];
- p_conv_data->edch_lchId[i] = nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]; /*lchId_type_table[nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]];*/
+ fp_edch_channel_info->edch_lchId[i] = nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]; /*lchId_type_table[nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]];*/
/*g_print("E-DCH-MACdFlow-Specific-InfoItem: e_dch_macdflow_id %u edch_ddi %u edch_macd_pdu_size %u\n",
e_dch_macdflow_id,
nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i],
@@ -18304,14 +18313,14 @@ guint32 no_ddi_entries, i;
/* Figure out which type of E-DCH frame, based on DDI value (DDI = 0 => type 2)*/
if( 0 == e_dch_ddi_value ){
- p_conv_data->edch_type = 1; /* 1 means T2 */
+ fp_edch_channel_info->edch_type = 1; /* 1 means T2 */
}else{
/*Value 1-5 means T1*/
- p_conv_data->edch_type = 0; /* 0 means T1 */
+ fp_edch_channel_info->edch_type = 0; /* 0 means T1 */
}
/* 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;
+ p_conv_data->dch_ids_in_flow_list[0] = e_dch_macdflow_id;
@@ -18442,7 +18451,7 @@ static const per_sequence_t E_DCH_LogicalChannelToModifyItem_sequence[] = {
static int
dissect_nbap_E_DCH_LogicalChannelToModifyItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1632 "./asn1/nbap/nbap.cnf"
+#line 1644 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_E_DCH_LogicalChannelToModifyItem, E_DCH_LogicalChannelToModifyItem_sequence);
@@ -18517,11 +18526,12 @@ static const per_sequence_t E_DCH_MACdFlow_Specific_InfoItem_to_Modify_sequence[
static int
dissect_nbap_E_DCH_MACdFlow_Specific_InfoItem_to_Modify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1540 "./asn1/nbap/nbap.cnf"
+#line 1546 "./asn1/Nbap/nbap.cnf"
guint32 no_ddi_entries, i;
address null_addr;
nbap_edch_port_info_t *old_info;
umts_fp_conversation_info_t *p_conv_data = NULL;
+fp_edch_channel_info_t* fp_edch_channel_info;
conversation_t *p_conv;
num_items = 1;
@@ -18580,13 +18590,18 @@ num_items = 1;
if(!p_conv_data)
return offset;
- no_ddi_entries = p_conv_data->no_ddi_entries = nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries;
+
+ fp_edch_channel_info = (fp_edch_channel_info_t*)p_conv_data->channel_specific_info;
+ if(p_conv_data->channel != CHANNEL_EDCH || !fp_edch_channel_info)
+ return offset;
+
+ no_ddi_entries = fp_edch_channel_info->no_ddi_entries = nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries;
/*g_print("E-DCH-MACdFlow-MODIFIED-Specific-InfoItem: e_dch_macdflow_id %u, no_ddi_entries %u\n",e_dch_macdflow_id,no_ddi_entries);*/
for (i = 0; i < no_ddi_entries; i++) {
- p_conv_data->edch_ddi[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i];
- p_conv_data->edch_macd_pdu_size[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[i];
+ fp_edch_channel_info->edch_ddi[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i];
+ fp_edch_channel_info->edch_macd_pdu_size[i] = nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[i];
- p_conv_data->edch_lchId[i] = nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]; /*lchId_type_table[nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]];*/
+ fp_edch_channel_info->edch_lchId[i] = nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]; /*lchId_type_table[nbap_edch_channel_info[e_dch_macdflow_id].lchId[i]];*/
/* g_print("E-DCH-MACdFlow-Specific-InfoItem: e_dch_macdflow_id %u edch_ddi %u edch_macd_pdu_size %u\n",
e_dch_macdflow_id,
nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[i],
@@ -18599,14 +18614,14 @@ num_items = 1;
/* Figure out which type of E-DCH frame, based on DDI value (DDI = 0 => type 2)*/
if( 0 == e_dch_ddi_value ){
- p_conv_data->edch_type = 1; /* 1 means T2 */
+ fp_edch_channel_info->edch_type = 1; /* 1 means T2 */
}else{
/*Value 1-5 means T1*/
- p_conv_data->edch_type = 0; /* 0 means T1 */
+ fp_edch_channel_info->edch_type = 0; /* 0 means T1 */
}
/* 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;
+ p_conv_data->dch_ids_in_flow_list[0] = e_dch_macdflow_id;
@@ -18659,7 +18674,7 @@ static const per_sequence_t E_DCH_FDD_Information_to_Modify_sequence[] = {
static int
dissect_nbap_E_DCH_FDD_Information_to_Modify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1447 "./asn1/nbap/nbap.cnf"
+#line 1453 "./asn1/Nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation,*old_conversation = NULL;
@@ -23241,7 +23256,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 824 "./asn1/nbap/nbap.cnf"
+#line 824 "./asn1/Nbap/nbap.cnf"
guint32 PICH_Mode = 0;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
4, &PICH_Mode, TRUE, 0, NULL);
@@ -23356,7 +23371,7 @@ static const per_sequence_t HSDSCH_Common_System_InformationFDD_sequence[] = {
static int
dissect_nbap_HSDSCH_Common_System_InformationFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2041 "./asn1/nbap/nbap.cnf"
+#line 2059 "./asn1/Nbap/nbap.cnf"
/*
* 5.1.6 High Speed Downlink Shared Channels
* The Data Transfer procedure is used to transfer a HS-DSCH DATA FRAME (TYPE 1, TYPE 2 [FDD and 1.28Mcps
@@ -23368,6 +23383,7 @@ dissect_nbap_HSDSCH_Common_System_InformationFDD(tvbuff_t *tvb _U_, int offset _
* other case.
*/
umts_fp_conversation_info_t *umts_fp_conversation_info = NULL;
+fp_hsdsch_channel_info_t* fp_hsdsch_channel_info = NULL;
address null_addr;
conversation_t *conversation = NULL;
@@ -23418,13 +23434,14 @@ int i;
copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &nbap_common_channel_info[i].crnc_address);
umts_fp_conversation_info->crnc_port = nbap_common_channel_info[i].crnc_port;
- /*umts_fp_conversation_info->hsdsch_macdflow_id = i ;*/ /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/
- umts_fp_conversation_info->common_macdflow_id = common_macdflow_id;
+ fp_hsdsch_channel_info = wmem_new0(wmem_file_scope(), fp_hsdsch_channel_info_t);
+ umts_fp_conversation_info->channel_specific_info = (void*)fp_hsdsch_channel_info;
+ fp_hsdsch_channel_info->common_macdflow_id = common_macdflow_id;
+ fp_hsdsch_channel_info->hsdsch_entity = ehs;
- umts_fp_conversation_info->hsdsch_entity = ehs;
umts_fp_conversation_info->num_dch_in_flow++;
- umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i;
+ umts_fp_conversation_info->dch_ids_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i;
set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
}
@@ -23490,7 +23507,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 719 "./asn1/nbap/nbap.cnf"
+#line 719 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxNrOfMACdFlows_1, &hsdsch_macdflow_id, FALSE);
@@ -23517,7 +23534,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 1748 "./asn1/nbap/nbap.cnf"
+#line 1760 "./asn1/Nbap/nbap.cnf"
address dst_addr;
@@ -23620,7 +23637,7 @@ static const value_string nbap_RLC_Mode_vals[] = {
static int
dissect_nbap_RLC_Mode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1675 "./asn1/nbap/nbap.cnf"
+#line 1687 "./asn1/Nbap/nbap.cnf"
guint32 rlc_mode;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
@@ -23661,7 +23678,7 @@ static const per_sequence_t PriorityQueue_InfoItem_sequence[] = {
static int
dissect_nbap_PriorityQueue_InfoItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1739 "./asn1/nbap/nbap.cnf"
+#line 1751 "./asn1/Nbap/nbap.cnf"
num_items++;
@@ -23695,7 +23712,7 @@ static const per_sequence_t HSDSCH_MACdFlows_Information_sequence[] = {
static int
dissect_nbap_HSDSCH_MACdFlows_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1699 "./asn1/nbap/nbap.cnf"
+#line 1711 "./asn1/Nbap/nbap.cnf"
int protocol_ie_id;
guint32 i;
@@ -23739,7 +23756,7 @@ dissect_nbap_HSDSCH_MACdFlows_Information(tvbuff_t *tvb _U_, int offset _U_, asn
static int
dissect_nbap_T_hSDSCH_Physical_Layer_Category(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1692 "./asn1/nbap/nbap.cnf"
+#line 1704 "./asn1/Nbap/nbap.cnf"
guint32 hsdsch_physical_layer_category;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
@@ -23807,13 +23824,14 @@ static const per_sequence_t HSDSCH_FDD_Information_sequence[] = {
static int
dissect_nbap_HSDSCH_FDD_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1800 "./asn1/nbap/nbap.cnf"
+#line 1812 "./asn1/Nbap/nbap.cnf"
/*
* Collect the information about the HSDSCH MACdFlows set up conversation(s) and set the conversation data.
*/
address null_addr;
conversation_t *conversation = NULL;
umts_fp_conversation_info_t *umts_fp_conversation_info;
+ fp_hsdsch_channel_info_t* fp_hsdsch_channel_info = NULL;
guint32 i;
if (!actx->pinfo->fd->flags.visited){
@@ -23870,26 +23888,28 @@ dissect_nbap_HSDSCH_FDD_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &nbap_hsdsch_channel_info[i].crnc_address);
umts_fp_conversation_info->crnc_port = nbap_hsdsch_channel_info[i].crnc_port;
+ fp_hsdsch_channel_info = wmem_new0(wmem_file_scope(), fp_hsdsch_channel_info_t);
+ umts_fp_conversation_info->channel_specific_info = (void*)fp_hsdsch_channel_info;
/*Added june 3, normally just the iterator variable*/
- umts_fp_conversation_info->hsdsch_macdflow_id = i ; /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/
+ fp_hsdsch_channel_info->hsdsch_macdflow_id = i ; /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/
/*Added july 2012*/
umts_fp_conversation_info->com_context_id = com_context_id;
/* Cheat and use the DCH entries */
umts_fp_conversation_info->num_dch_in_flow++;
- umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i;
+ umts_fp_conversation_info->dch_ids_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i;
/*XXX: Is this craziness, what is physical_layer? */
if(nbap_hsdsch_channel_info[i].entity == entity_not_specified ){
if(nbap_hsdsch_channel_info[i].hsdsch_physical_layer_category > 12){
- umts_fp_conversation_info->hsdsch_entity = ehs;
+ fp_hsdsch_channel_info->hsdsch_entity = ehs;
}else{
- umts_fp_conversation_info->hsdsch_entity = hs;
+ fp_hsdsch_channel_info->hsdsch_entity = hs;
}
}else{
- umts_fp_conversation_info->hsdsch_entity = (enum fp_hsdsch_entity)nbap_hsdsch_channel_info[i].entity;
+ fp_hsdsch_channel_info->hsdsch_entity = (enum fp_hsdsch_entity)nbap_hsdsch_channel_info[i].entity;
}
umts_fp_conversation_info->rlc_mode = nbap_hsdsch_channel_info[i].rlc_mode;
set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
@@ -23944,7 +23964,7 @@ static const per_sequence_t HSDSCH_MACdFlow_Specific_InfoItem_to_Modify_sequence
static int
dissect_nbap_HSDSCH_MACdFlow_Specific_InfoItem_to_Modify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1889 "./asn1/nbap/nbap.cnf"
+#line 1904 "./asn1/Nbap/nbap.cnf"
address dst_addr;
transportLayerAddress_ipv4 = 0;
BindingID_port = 0;
@@ -24002,7 +24022,7 @@ static const per_sequence_t PriorityQueue_InfoItem_to_Add_sequence[] = {
static int
dissect_nbap_PriorityQueue_InfoItem_to_Add(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1742 "./asn1/nbap/nbap.cnf"
+#line 1754 "./asn1/Nbap/nbap.cnf"
num_items = 1;
@@ -24137,7 +24157,7 @@ static const per_sequence_t HSDSCH_Information_to_Modify_sequence[] = {
static int
dissect_nbap_HSDSCH_Information_to_Modify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1909 "./asn1/nbap/nbap.cnf"
+#line 1924 "./asn1/Nbap/nbap.cnf"
/*
* This is pretty much the same like if we setup a previous flow
*/
@@ -24148,6 +24168,7 @@ dissect_nbap_HSDSCH_Information_to_Modify(tvbuff_t *tvb _U_, int offset _U_, asn
address null_addr;
conversation_t *conversation = NULL;
umts_fp_conversation_info_t *umts_fp_conversation_info;
+ fp_hsdsch_channel_info_t* fp_hsdsch_channel_info = NULL;
guint32 i;
if (!actx->pinfo->fd->flags.visited){
@@ -24208,26 +24229,28 @@ dissect_nbap_HSDSCH_Information_to_Modify(tvbuff_t *tvb _U_, int offset _U_, asn
copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &nbap_hsdsch_channel_info[i].crnc_address);
umts_fp_conversation_info->crnc_port = nbap_hsdsch_channel_info[i].crnc_port;
+ fp_hsdsch_channel_info = wmem_new0(wmem_file_scope(), fp_hsdsch_channel_info_t);
+ umts_fp_conversation_info->channel_specific_info = (void*)fp_hsdsch_channel_info;
/*Added june 3, normally just the iterator variable*/
- umts_fp_conversation_info->hsdsch_macdflow_id = i ; /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/
+ fp_hsdsch_channel_info->hsdsch_macdflow_id = i ; /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/
/*Added july 2012*/
umts_fp_conversation_info->com_context_id = com_context_id;
/* Cheat and use the DCH entries */
umts_fp_conversation_info->num_dch_in_flow++;
- umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i;
+ umts_fp_conversation_info->dch_ids_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i;
/*XXX: Is this craziness, what is physical_layer? */
if(nbap_hsdsch_channel_info[i].entity == entity_not_specified ){
if(nbap_hsdsch_channel_info[i].hsdsch_physical_layer_category > 12){
- umts_fp_conversation_info->hsdsch_entity = ehs;
+ fp_hsdsch_channel_info->hsdsch_entity = ehs;
}else{
- umts_fp_conversation_info->hsdsch_entity = hs;
+ fp_hsdsch_channel_info->hsdsch_entity = hs;
}
}else{
- umts_fp_conversation_info->hsdsch_entity = (enum fp_hsdsch_entity)nbap_hsdsch_channel_info[i].entity;
+ fp_hsdsch_channel_info->hsdsch_entity = (enum fp_hsdsch_entity)nbap_hsdsch_channel_info[i].entity;
}
umts_fp_conversation_info->rlc_mode = nbap_hsdsch_channel_info[i].rlc_mode;
@@ -24259,7 +24282,7 @@ static const value_string nbap_HSDSCH_MACdPDUSizeFormat_vals[] = {
static int
dissect_nbap_HSDSCH_MACdPDUSizeFormat(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1777 "./asn1/nbap/nbap.cnf"
+#line 1789 "./asn1/Nbap/nbap.cnf"
/*
* Removed 10 Aug. 2012, I'm not sure if this was right, it wrongfully
* set some packets as type 2 for HSDHCH modified items.
@@ -24370,7 +24393,7 @@ static const per_sequence_t HSDSCH_MACdFlow_Specific_InformationResp_Item_sequen
static int
dissect_nbap_HSDSCH_MACdFlow_Specific_InformationResp_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1745 "./asn1/nbap/nbap.cnf"
+#line 1757 "./asn1/Nbap/nbap.cnf"
num_items++;
@@ -24786,7 +24809,7 @@ static const per_sequence_t HSDSCH_Paging_System_InformationFDD_sequence[] = {
static int
dissect_nbap_HSDSCH_Paging_System_InformationFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2119 "./asn1/nbap/nbap.cnf"
+#line 2139 "./asn1/Nbap/nbap.cnf"
/*
g_warning("HS-DSCH Type 3 NOT Implemented!");
*/
@@ -24980,7 +25003,7 @@ static const per_sequence_t HSDSCH_MACdFlows_to_Delete_Item_sequence[] = {
static int
dissect_nbap_HSDSCH_MACdFlows_to_Delete_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1736 "./asn1/nbap/nbap.cnf"
+#line 1748 "./asn1/Nbap/nbap.cnf"
num_items++;
@@ -24997,7 +25020,7 @@ static const per_sequence_t HSDSCH_MACdFlows_to_Delete_sequence_of[1] = {
static int
dissect_nbap_HSDSCH_MACdFlows_to_Delete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1731 "./asn1/nbap/nbap.cnf"
+#line 1743 "./asn1/Nbap/nbap.cnf"
num_items = 0;
@@ -26374,7 +26397,7 @@ dissect_nbap_IB_OC_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
static int
dissect_nbap_IB_SG_DATA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 577 "./asn1/nbap/nbap.cnf"
+#line 577 "./asn1/Nbap/nbap.cnf"
tvbuff_t *parameter_tvb=NULL;
proto_tree *subtree;
@@ -26508,7 +26531,7 @@ static const value_string nbap_IB_Type_vals[] = {
static int
dissect_nbap_IB_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 564 "./asn1/nbap/nbap.cnf"
+#line 564 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
26, &ib_type, TRUE, 15, NULL);
@@ -28099,7 +28122,7 @@ dissect_nbap_NI_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_nbap_NodeB_CommunicationContextID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2133 "./asn1/nbap/nbap.cnf"
+#line 2153 "./asn1/Nbap/nbap.cnf"
/*Set up and map that maps Node-B ids to CRNC ids, since often you only have one of them present in nbap*/
nbap_com_context_id_t *cur_val;
@@ -28664,7 +28687,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 1162 "./asn1/nbap/nbap.cnf"
+#line 1162 "./asn1/Nbap/nbap.cnf"
offset = dissect_nbap_DCH_ID(tvb, offset, actx, tree, hf_index);
@@ -28686,7 +28709,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 1167 "./asn1/nbap/nbap.cnf"
+#line 1167 "./asn1/Nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation = NULL;
umts_fp_conversation_info_t *umts_fp_conversation_info;
@@ -28763,13 +28786,13 @@ dch_id = 0xFFFFFFFF;
/* Set data for associated DCH's if we have any */
i = dch_id;
- umts_fp_conversation_info->dchs_in_flow_list[0] = dch_id;
+ umts_fp_conversation_info->dch_ids_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; /*Set transport channel id*/
+ umts_fp_conversation_info->dch_ids_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i; /*Set transport channel id*/
/*Setting Logical Channel's for this DCH*/
/* Traffic flows per DCH(UL) */
@@ -28788,7 +28811,7 @@ dch_id = 0xFFFFFFFF;
}
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;
+ umts_fp_conversation_info->dch_ids_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i;
set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
}
@@ -28831,7 +28854,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 1282 "./asn1/nbap/nbap.cnf"
+#line 1282 "./asn1/Nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation;
umts_fp_conversation_info_t *umts_fp_conversation_info = NULL;
@@ -29875,7 +29898,7 @@ static const value_string nbap_Segment_Type_vals[] = {
static int
dissect_nbap_Segment_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 567 "./asn1/nbap/nbap.cnf"
+#line 567 "./asn1/Nbap/nbap.cnf"
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7, &segment_type, TRUE, 0, NULL);
@@ -32208,7 +32231,7 @@ static const per_sequence_t CommonTransportChannelSetupRequestFDD_sequence[] = {
static int
dissect_nbap_CommonTransportChannelSetupRequestFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 149 "./asn1/nbap/nbap.cnf"
+#line 149 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonTransportChannelSetupRequest(FDD) ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -32398,7 +32421,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 960 "./asn1/nbap/nbap.cnf"
+#line 960 "./asn1/Nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation;
@@ -32472,11 +32495,11 @@ transportFormatSet_type = NBAP_CPCH;
/* Set data for associated DCH's if we have any */
i = commonphysicalchannelid;
- umts_fp_conversation_info->dchs_in_flow_list[0] = commonphysicalchannelid;
+ umts_fp_conversation_info->dch_ids_in_flow_list[0] = commonphysicalchannelid;
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;
+ umts_fp_conversation_info->dch_ids_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i;
/* Traffic flows per DCH(UL) */
umts_fp_conversation_info->fp_dch_channel_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++) {
@@ -32492,7 +32515,7 @@ transportFormatSet_type = NBAP_CPCH;
}
}
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;
+ umts_fp_conversation_info->dch_ids_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i;
set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
}
@@ -32521,7 +32544,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 1084 "./asn1/nbap/nbap.cnf"
+#line 1084 "./asn1/Nbap/nbap.cnf"
transportFormatSet_type = NBAP_PCH;
nbap_dch_chnl_info[commontransportchannelid].num_dl_chans = 0;
nbap_dch_chnl_info[commontransportchannelid].num_ul_chans = 0;
@@ -32566,7 +32589,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 845 "./asn1/nbap/nbap.cnf"
+#line 845 "./asn1/Nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation;
@@ -32649,11 +32672,11 @@ num_items = 1;
nbap_debug(" commontransportchannelid %u next ch %u",commontransportchannelid, nbap_dch_chnl_info[i].next_dch);
- umts_fp_conversation_info->dchs_in_flow_list[0] = commontransportchannelid;
+ umts_fp_conversation_info->dch_ids_in_flow_list[0] = commontransportchannelid;
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;
+ umts_fp_conversation_info->dch_ids_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i;
/* Traffic flows per DCH(UL) */
umts_fp_conversation_info->fp_dch_channel_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++) {
@@ -32672,7 +32695,7 @@ num_items = 1;
nbap_debug(" 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;
+ umts_fp_conversation_info->dch_ids_in_flow_list[umts_fp_conversation_info->num_dch_in_flow] = i;
set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
nbap_debug("Frame %u PCH-ParametersItem-CTCH-SetupRqstFDD End",
@@ -32717,7 +32740,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 749 "./asn1/nbap/nbap.cnf"
+#line 749 "./asn1/Nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation;
fp_rach_channel_info_t* fp_rach_channel_info;
@@ -32789,7 +32812,7 @@ transportFormatSet_type = NBAP_CPCH;
umts_fp_conversation_info->fp_dch_channel_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->dch_ids_in_flow_list[0] = commonphysicalchannelid;
umts_fp_conversation_info->num_dch_in_flow=1;
set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
}
@@ -33503,7 +33526,7 @@ static const per_sequence_t CommonTransportChannelSetupResponse_sequence[] = {
static int
dissect_nbap_CommonTransportChannelSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 155 "./asn1/nbap/nbap.cnf"
+#line 155 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonTransportChannelSetupResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -33538,7 +33561,7 @@ static const per_sequence_t CommonTransportChannelSetupFailure_sequence[] = {
static int
dissect_nbap_CommonTransportChannelSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 161 "./asn1/nbap/nbap.cnf"
+#line 161 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonTransportChannelSetupFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -34258,7 +34281,7 @@ static const per_sequence_t UnblockResourceIndication_sequence[] = {
static int
dissect_nbap_UnblockResourceIndication(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 522 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"UnblockResourceIndication ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -34279,7 +34302,7 @@ static const per_sequence_t AuditRequiredIndication_sequence[] = {
static int
dissect_nbap_AuditRequiredIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 426 "./asn1/nbap/nbap.cnf"
+#line 426 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"AuditRequiredIndication ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -34300,7 +34323,7 @@ static const per_sequence_t AuditRequest_sequence[] = {
static int
dissect_nbap_AuditRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 179 "./asn1/nbap/nbap.cnf"
+#line 179 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"AuditRequest ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -34321,7 +34344,7 @@ static const per_sequence_t AuditResponse_sequence[] = {
static int
dissect_nbap_AuditResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 185 "./asn1/nbap/nbap.cnf"
+#line 185 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"AuditResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -34915,7 +34938,7 @@ static const per_sequence_t AuditFailure_sequence[] = {
static int
dissect_nbap_AuditFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 191 "./asn1/nbap/nbap.cnf"
+#line 191 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"AuditFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -34937,7 +34960,7 @@ static const per_sequence_t CommonMeasurementInitiationRequest_sequence[] = {
static int
dissect_nbap_CommonMeasurementInitiationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 259 "./asn1/nbap/nbap.cnf"
+#line 259 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementInitiationRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -35055,7 +35078,7 @@ static const per_sequence_t CommonMeasurementInitiationResponse_sequence[] = {
static int
dissect_nbap_CommonMeasurementInitiationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 265 "./asn1/nbap/nbap.cnf"
+#line 265 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementInitiationResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -35171,7 +35194,7 @@ static const per_sequence_t CommonMeasurementInitiationFailure_sequence[] = {
static int
dissect_nbap_CommonMeasurementInitiationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 271 "./asn1/nbap/nbap.cnf"
+#line 271 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementInitiationFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -35192,7 +35215,7 @@ static const per_sequence_t CommonMeasurementReport_sequence[] = {
static int
dissect_nbap_CommonMeasurementReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 432 "./asn1/nbap/nbap.cnf"
+#line 432 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementReport ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -35308,7 +35331,7 @@ static const per_sequence_t CommonMeasurementTerminationRequest_sequence[] = {
static int
dissect_nbap_CommonMeasurementTerminationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 438 "./asn1/nbap/nbap.cnf"
+#line 438 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementTerminationRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -35329,7 +35352,7 @@ static const per_sequence_t CommonMeasurementFailureIndication_sequence[] = {
static int
dissect_nbap_CommonMeasurementFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 444 "./asn1/nbap/nbap.cnf"
+#line 444 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementFailureIndication ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -35350,7 +35373,7 @@ static const per_sequence_t CellSetupRequestFDD_sequence[] = {
static int
dissect_nbap_CellSetupRequestFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 121 "./asn1/nbap/nbap.cnf"
+#line 121 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CellSetupRequest(FDD) ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -35882,7 +35905,7 @@ static const per_sequence_t CellSetupResponse_sequence[] = {
static int
dissect_nbap_CellSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 127 "./asn1/nbap/nbap.cnf"
+#line 127 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CellSetupResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -35903,7 +35926,7 @@ static const per_sequence_t CellSetupFailure_sequence[] = {
static int
dissect_nbap_CellSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 133 "./asn1/nbap/nbap.cnf"
+#line 133 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CellSetupFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -36446,7 +36469,7 @@ static const per_sequence_t ResourceStatusIndication_sequence[] = {
static int
dissect_nbap_ResourceStatusIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 420 "./asn1/nbap/nbap.cnf"
+#line 420 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"ResourceStatusIndication ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -37204,7 +37227,7 @@ static const per_sequence_t SystemInformationUpdateRequest_sequence[] = {
static int
dissect_nbap_SystemInformationUpdateRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 238 "./asn1/nbap/nbap.cnf"
+#line 238 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"SystemInformationUpdateRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -37275,7 +37298,7 @@ static const per_sequence_t MIB_SB_SIB_InformationItem_SystemInfoUpdateRqst_sequ
static int
dissect_nbap_MIB_SB_SIB_InformationItem_SystemInfoUpdateRqst(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 570 "./asn1/nbap/nbap.cnf"
+#line 570 "./asn1/Nbap/nbap.cnf"
ib_type = 10; /* not-Used-sIB8 */
segment_type = 0;
@@ -37343,7 +37366,7 @@ static const per_sequence_t SystemInformationUpdateResponse_sequence[] = {
static int
dissect_nbap_SystemInformationUpdateResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 244 "./asn1/nbap/nbap.cnf"
+#line 244 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"SystemInformationUpdateResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -37364,7 +37387,7 @@ static const per_sequence_t SystemInformationUpdateFailure_sequence[] = {
static int
dissect_nbap_SystemInformationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 250 "./asn1/nbap/nbap.cnf"
+#line 250 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"SystemInformationUpdateFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -37386,7 +37409,7 @@ static const per_sequence_t RadioLinkSetupRequestFDD_sequence[] = {
static int
dissect_nbap_RadioLinkSetupRequestFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 201 "./asn1/nbap/nbap.cnf"
+#line 201 "./asn1/Nbap/nbap.cnf"
g_nbap_msg_info_for_fp.ProcedureCode = ProcedureCode;
g_nbap_msg_info_for_fp.ddMode = ddMode;
@@ -37869,7 +37892,7 @@ static const per_sequence_t RadioLinkSetupResponseFDD_sequence[] = {
static int
dissect_nbap_RadioLinkSetupResponseFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 214 "./asn1/nbap/nbap.cnf"
+#line 214 "./asn1/Nbap/nbap.cnf"
g_nbap_msg_info_for_fp.ProcedureCode = ProcedureCode;
g_nbap_msg_info_for_fp.ddMode = ddMode;
@@ -38095,7 +38118,7 @@ static const per_sequence_t RadioLinkSetupFailureFDD_sequence[] = {
static int
dissect_nbap_RadioLinkSetupFailureFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 227 "./asn1/nbap/nbap.cnf"
+#line 227 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkSetupFailure(FDD) ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -38380,7 +38403,7 @@ static const per_sequence_t RadioLinkAdditionRequestFDD_sequence[] = {
static int
dissect_nbap_RadioLinkAdditionRequestFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 277 "./asn1/nbap/nbap.cnf"
+#line 277 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkAdditionRequest(FDD) ");
@@ -38752,7 +38775,7 @@ static const per_sequence_t RadioLinkAdditionResponseFDD_sequence[] = {
static int
dissect_nbap_RadioLinkAdditionResponseFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 282 "./asn1/nbap/nbap.cnf"
+#line 282 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkAdditionResponse(FDD) ");
@@ -39028,7 +39051,7 @@ static const per_sequence_t RadioLinkAdditionFailureFDD_sequence[] = {
static int
dissect_nbap_RadioLinkAdditionFailureFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 288 "./asn1/nbap/nbap.cnf"
+#line 288 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkAdditionRequest(FDD) ");
@@ -39313,7 +39336,7 @@ static const per_sequence_t RadioLinkReconfigurationPrepareFDD_sequence[] = {
static int
dissect_nbap_RadioLinkReconfigurationPrepareFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 315 "./asn1/nbap/nbap.cnf"
+#line 315 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationPrepare(FDD) ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -40936,7 +40959,7 @@ static const per_sequence_t RadioLinkReconfigurationReady_sequence[] = {
static int
dissect_nbap_RadioLinkReconfigurationReady(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 326 "./asn1/nbap/nbap.cnf"
+#line 326 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationReady ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -41018,7 +41041,7 @@ static const per_sequence_t RadioLinkReconfigurationFailure_sequence[] = {
static int
dissect_nbap_RadioLinkReconfigurationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 333 "./asn1/nbap/nbap.cnf"
+#line 333 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -41127,13 +41150,13 @@ static const per_sequence_t RadioLinkReconfigurationCommit_sequence[] = {
static int
dissect_nbap_RadioLinkReconfigurationCommit(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 450 "./asn1/nbap/nbap.cnf"
+#line 450 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationCommit ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
-#line 2182 "./asn1/nbap/nbap.cnf"
+#line 2205 "./asn1/Nbap/nbap.cnf"
/*
* Here we need to signal the CFN value, down to FP so
* that lowert layers know when a reconfiguration becomes active
@@ -41157,7 +41180,7 @@ static const per_sequence_t RadioLinkReconfigurationCancel_sequence[] = {
static int
dissect_nbap_RadioLinkReconfigurationCancel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 456 "./asn1/nbap/nbap.cnf"
+#line 456 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationCancel ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -41178,7 +41201,7 @@ static const per_sequence_t RadioLinkReconfigurationRequestFDD_sequence[] = {
static int
dissect_nbap_RadioLinkReconfigurationRequestFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 344 "./asn1/nbap/nbap.cnf"
+#line 344 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationRequestFDD(FDD) ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -41635,7 +41658,7 @@ static const per_sequence_t RadioLinkReconfigurationResponse_sequence[] = {
static int
dissect_nbap_RadioLinkReconfigurationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 350 "./asn1/nbap/nbap.cnf"
+#line 350 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationResponse ");
@@ -41696,7 +41719,7 @@ static const per_sequence_t RadioLinkDeletionRequest_sequence[] = {
static int
dissect_nbap_RadioLinkDeletionRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 301 "./asn1/nbap/nbap.cnf"
+#line 301 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkDeletionRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -41747,7 +41770,7 @@ static const per_sequence_t RadioLinkDeletionResponse_sequence[] = {
static int
dissect_nbap_RadioLinkDeletionResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 308 "./asn1/nbap/nbap.cnf"
+#line 308 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkDeletionResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -41769,7 +41792,7 @@ static const per_sequence_t DL_PowerControlRequest_sequence[] = {
static int
dissect_nbap_DL_PowerControlRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 504 "./asn1/nbap/nbap.cnf"
+#line 504 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DL-PowerControlRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -41820,7 +41843,7 @@ static const per_sequence_t DL_PowerTimeslotControlRequest_sequence[] = {
static int
dissect_nbap_DL_PowerTimeslotControlRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 510 "./asn1/nbap/nbap.cnf"
+#line 510 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DL-PowerTimeslotControlRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -41841,7 +41864,7 @@ static const per_sequence_t DedicatedMeasurementInitiationRequest_sequence[] = {
static int
dissect_nbap_DedicatedMeasurementInitiationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 366 "./asn1/nbap/nbap.cnf"
+#line 366 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementInitiationRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -42037,7 +42060,7 @@ static const per_sequence_t DedicatedMeasurementInitiationResponse_sequence[] =
static int
dissect_nbap_DedicatedMeasurementInitiationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 372 "./asn1/nbap/nbap.cnf"
+#line 372 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementInitiationResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -42342,7 +42365,7 @@ static const per_sequence_t DedicatedMeasurementInitiationFailure_sequence[] = {
static int
dissect_nbap_DedicatedMeasurementInitiationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 379 "./asn1/nbap/nbap.cnf"
+#line 379 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementInitiationFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -42364,7 +42387,7 @@ static const per_sequence_t DedicatedMeasurementReport_sequence[] = {
static int
dissect_nbap_DedicatedMeasurementReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 484 "./asn1/nbap/nbap.cnf"
+#line 484 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementReport ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -42547,7 +42570,7 @@ static const per_sequence_t DedicatedMeasurementTerminationRequest_sequence[] =
static int
dissect_nbap_DedicatedMeasurementTerminationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 491 "./asn1/nbap/nbap.cnf"
+#line 491 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementTerminationRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -42568,7 +42591,7 @@ static const per_sequence_t DedicatedMeasurementFailureIndication_sequence[] = {
static int
dissect_nbap_DedicatedMeasurementFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 497 "./asn1/nbap/nbap.cnf"
+#line 497 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementFailureIndication ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -42590,7 +42613,7 @@ static const per_sequence_t RadioLinkFailureIndication_sequence[] = {
static int
dissect_nbap_RadioLinkFailureIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 462 "./asn1/nbap/nbap.cnf"
+#line 462 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkFailureIndication ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -42772,7 +42795,7 @@ static const per_sequence_t RadioLinkPreemptionRequiredIndication_sequence[] = {
static int
dissect_nbap_RadioLinkPreemptionRequiredIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 469 "./asn1/nbap/nbap.cnf"
+#line 469 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkPreemptionRequiredIndication ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -42823,7 +42846,7 @@ static const per_sequence_t RadioLinkRestoreIndication_sequence[] = {
static int
dissect_nbap_RadioLinkRestoreIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 476 "./asn1/nbap/nbap.cnf"
+#line 476 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkRestoreIndication ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -43003,7 +43026,7 @@ static const per_sequence_t CompressedModeCommand_sequence[] = {
static int
dissect_nbap_CompressedModeCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 516 "./asn1/nbap/nbap.cnf"
+#line 516 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CompressedModeCommand ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -43024,7 +43047,7 @@ static const per_sequence_t ErrorIndication_sequence[] = {
static int
dissect_nbap_ErrorIndication(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 528 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"ErrorIndication ");
@@ -43044,7 +43067,7 @@ static const per_sequence_t PrivateMessage_sequence[] = {
static int
dissect_nbap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 537 "./asn1/nbap/nbap.cnf"
+#line 537 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"PrivateMessage ");
@@ -43063,7 +43086,7 @@ static const per_sequence_t PhysicalSharedChannelReconfigurationRequestFDD_seque
static int
dissect_nbap_PhysicalSharedChannelReconfigurationRequestFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 386 "./asn1/nbap/nbap.cnf"
+#line 386 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"PhysicalSharedChannelReconfigurationRequest(FDD) ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -45531,7 +45554,7 @@ static const per_sequence_t PhysicalSharedChannelReconfigurationResponse_sequenc
static int
dissect_nbap_PhysicalSharedChannelReconfigurationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 392 "./asn1/nbap/nbap.cnf"
+#line 392 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"PhysicalSharedChannelReconfigurationResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -45582,7 +45605,7 @@ static const per_sequence_t PhysicalSharedChannelReconfigurationFailure_sequence
static int
dissect_nbap_PhysicalSharedChannelReconfigurationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 398 "./asn1/nbap/nbap.cnf"
+#line 398 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"PhysicalSharedChannelReconfigurationFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -47035,7 +47058,7 @@ static const per_sequence_t BearerRearrangementIndication_sequence[] = {
static int
dissect_nbap_BearerRearrangementIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 544 "./asn1/nbap/nbap.cnf"
+#line 544 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"BearerRearrangementIndication ");
@@ -47337,7 +47360,7 @@ static const per_sequence_t RadioLinkParameterUpdateIndicationFDD_sequence[] = {
static int
dissect_nbap_RadioLinkParameterUpdateIndicationFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 552 "./asn1/nbap/nbap.cnf"
+#line 552 "./asn1/Nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkParameterUpdateIndication(FDD) ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -55232,7 +55255,7 @@ static int dissect_NULL_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tre
/*--- End of included file: packet-nbap-fn.c ---*/
-#line 338 "./asn1/nbap/packet-nbap-template.c"
+#line 338 "./asn1/Nbap/packet-nbap-template.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
@@ -55265,6 +55288,7 @@ static void add_hsdsch_bind(packet_info *pinfo){
address null_addr;
conversation_t *conversation = NULL;
umts_fp_conversation_info_t *umts_fp_conversation_info;
+ fp_hsdsch_channel_info_t* fp_hsdsch_channel_info = NULL;
guint32 i;
if (pinfo->fd->flags.visited){
@@ -55301,19 +55325,21 @@ static void add_hsdsch_bind(packet_info *pinfo){
copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &nbap_hsdsch_channel_info[i].crnc_address);
umts_fp_conversation_info->crnc_port = nbap_hsdsch_channel_info[i].crnc_port;
+ fp_hsdsch_channel_info = wmem_new0(wmem_file_scope(), fp_hsdsch_channel_info_t);
+ umts_fp_conversation_info->channel_specific_info = (void*)fp_hsdsch_channel_info;
/*Added june 3, normally just the iterator variable*/
- umts_fp_conversation_info->hsdsch_macdflow_id = i ; /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/
+ fp_hsdsch_channel_info->hsdsch_macdflow_id = i ; /*hsdsch_macdflow_ids[i];*/ /* hsdsch_macdflow_id;*/
/* Cheat and use the DCH entries */
umts_fp_conversation_info->num_dch_in_flow++;
- umts_fp_conversation_info->dchs_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i;
+ umts_fp_conversation_info->dch_ids_in_flow_list[umts_fp_conversation_info->num_dch_in_flow -1] = i;
/*XXX: Is this craziness, what is physical_layer? */
if(nbap_hsdsch_channel_info[i].entity == entity_not_specified ){
/*Error*/
expert_add_info(pinfo, NULL, &ei_nbap_hsdsch_entity_not_specified);
}else{
- umts_fp_conversation_info->hsdsch_entity = (enum fp_hsdsch_entity)nbap_hsdsch_channel_info[i].entity;
+ fp_hsdsch_channel_info->hsdsch_entity = (enum fp_hsdsch_entity)nbap_hsdsch_channel_info[i].entity;
}
umts_fp_conversation_info->rlc_mode = nbap_hsdsch_channel_info[i].rlc_mode;
set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
@@ -55385,7 +55411,7 @@ void proto_register_nbap(void)
NULL, HFILL }},
/*--- Included file: packet-nbap-hfarr.c ---*/
-#line 1 "./asn1/nbap/packet-nbap-hfarr.c"
+#line 1 "./asn1/Nbap/packet-nbap-hfarr.c"
{ &hf_nbap_ActivationInformation_PDU,
{ "ActivationInformation", "nbap.ActivationInformation",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -68548,7 +68574,7 @@ void proto_register_nbap(void)
NULL, HFILL }},
/*--- End of included file: packet-nbap-hfarr.c ---*/
-#line 489 "./asn1/nbap/packet-nbap-template.c"
+#line 492 "./asn1/Nbap/packet-nbap-template.c"
};
/* List of subtrees */
@@ -68559,7 +68585,7 @@ void proto_register_nbap(void)
&ett_nbap_ib_sg_data,
/*--- Included file: packet-nbap-ettarr.c ---*/
-#line 1 "./asn1/nbap/packet-nbap-ettarr.c"
+#line 1 "./asn1/Nbap/packet-nbap-ettarr.c"
&ett_nbap_PrivateIE_ID,
&ett_nbap_ProcedureID,
&ett_nbap_TransactionID,
@@ -70188,7 +70214,7 @@ void proto_register_nbap(void)
&ett_nbap_Outcome,
/*--- End of included file: packet-nbap-ettarr.c ---*/
-#line 498 "./asn1/nbap/packet-nbap-template.c"
+#line 501 "./asn1/Nbap/packet-nbap-template.c"
};
static ei_register_info ei[] = {
@@ -70244,7 +70270,7 @@ proto_reg_handoff_nbap(void)
/*--- Included file: packet-nbap-dis-tab.c ---*/
-#line 1 "./asn1/nbap/packet-nbap-dis-tab.c"
+#line 1 "./asn1/Nbap/packet-nbap-dis-tab.c"
dissector_add_uint("nbap.ies", id_TUTRANGPSMeasurementValueInformation, create_dissector_handle(dissect_TUTRANGPSMeasurementValueInformation_PDU, proto_nbap));
dissector_add_uint("nbap.ies", id_SFNSFNMeasurementValueInformation, create_dissector_handle(dissect_SFNSFNMeasurementValueInformation_PDU, proto_nbap));
dissector_add_uint("nbap.ies", id_TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmission, create_dissector_handle(dissect_TransmittedCarrierPowerOfAllCodesNotUsedForHSTransmissionValue_PDU, proto_nbap));
@@ -71339,7 +71365,7 @@ proto_reg_handoff_nbap(void)
/*--- End of included file: packet-nbap-dis-tab.c ---*/
-#line 552 "./asn1/nbap/packet-nbap-template.c"
+#line 555 "./asn1/Nbap/packet-nbap-template.c"
}
diff --git a/epan/dissectors/packet-nbap.h b/epan/dissectors/packet-nbap.h
index 2ed7fe34c7..ea26971ed7 100644
--- a/epan/dissectors/packet-nbap.h
+++ b/epan/dissectors/packet-nbap.h
@@ -5,7 +5,7 @@
/* Input file: packet-nbap-template.h */
-#line 1 "./asn1/nbap/packet-nbap-template.h"
+#line 1 "./asn1/Nbap/packet-nbap-template.h"
/* packet-nbap-template.h
*
* Wireshark - Network traffic analyzer
diff --git a/epan/dissectors/packet-umts_fp.c b/epan/dissectors/packet-umts_fp.c
index 1b17a4a19c..73feb97dc6 100644
--- a/epan/dissectors/packet-umts_fp.c
+++ b/epan/dissectors/packet-umts_fp.c
@@ -4134,7 +4134,7 @@ heur_dissect_fp_dcch_over_dch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
}
umts_fp_conversation_info->channel = CHANNEL_DCH;
umts_fp_conversation_info->num_dch_in_flow = 1;
- umts_fp_conversation_info->dchs_in_flow_list[0] = 31;
+ umts_fp_conversation_info->dch_ids_in_flow_list[0] = 31;
umts_fp_conversation_info->fp_dch_channel_info[0].num_dl_chans = 1;
umts_fp_conversation_info->fp_dch_channel_info[0].dl_chan_num_tbs[1] = 1;
umts_fp_conversation_info->fp_dch_channel_info[0].dl_chan_tf_size[1] = 148;
@@ -4533,6 +4533,7 @@ heur_dissect_fp_hsdsch_type_1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
{
conversation_t *p_conv;
umts_fp_conversation_info_t* umts_fp_conversation_info;
+ fp_hsdsch_channel_info_t* fp_hsdsch_channel_info;
struct fp_info *p_fp_info;
guint32 length;
guint8 frame_type;
@@ -4552,7 +4553,8 @@ heur_dissect_fp_hsdsch_type_1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
/* Checking if the conversation was already framed */
umts_fp_conversation_info = (umts_fp_conversation_info_t *)conversation_get_proto_data(p_conv, proto_fp);
if (umts_fp_conversation_info) {
- if (umts_fp_conversation_info->channel == CHANNEL_HSDSCH && umts_fp_conversation_info->hsdsch_entity == hs) {
+ fp_hsdsch_channel_info = (fp_hsdsch_channel_info_t*)umts_fp_conversation_info->channel_specific_info;
+ if (umts_fp_conversation_info->channel == CHANNEL_HSDSCH && fp_hsdsch_channel_info->hsdsch_entity == hs) {
conversation_set_dissector(p_conv, fp_handle);
dissect_fp(tvb, pinfo, tree, data);
return TRUE;
@@ -4646,8 +4648,10 @@ heur_dissect_fp_hsdsch_type_1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &pinfo->src);
umts_fp_conversation_info->crnc_port = pinfo->srcport;
umts_fp_conversation_info->channel = CHANNEL_HSDSCH;
- umts_fp_conversation_info->hsdsch_entity = hs;
- umts_fp_conversation_info->hsdsch_macdflow_id = 0;
+ fp_hsdsch_channel_info = wmem_new0(wmem_file_scope(), fp_hsdsch_channel_info_t);
+ fp_hsdsch_channel_info->hsdsch_entity = hs;
+ fp_hsdsch_channel_info->hsdsch_macdflow_id = 0;
+ umts_fp_conversation_info->channel_specific_info = (void*)fp_hsdsch_channel_info;
set_both_sides_umts_fp_conv_data(pinfo, umts_fp_conversation_info);
conversation_set_dissector(find_or_create_conversation(pinfo), fp_handle);
dissect_fp(tvb, pinfo, tree, data);
@@ -4658,6 +4662,7 @@ heur_dissect_fp_hsdsch_type_2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
{
conversation_t *p_conv;
umts_fp_conversation_info_t* umts_fp_conversation_info;
+ fp_hsdsch_channel_info_t* fp_hsdsch_channel_info;
struct fp_info *p_fp_info;
guint32 length;
guint8 frame_type;
@@ -4680,7 +4685,8 @@ heur_dissect_fp_hsdsch_type_2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
/* Checking if the conversation was already framed */
umts_fp_conversation_info = (umts_fp_conversation_info_t *)conversation_get_proto_data(p_conv, proto_fp);
if (umts_fp_conversation_info) {
- if (umts_fp_conversation_info->channel == CHANNEL_HSDSCH && umts_fp_conversation_info->hsdsch_entity == ehs) {
+ fp_hsdsch_channel_info = (fp_hsdsch_channel_info_t*)umts_fp_conversation_info->channel_specific_info;
+ if (umts_fp_conversation_info->channel == CHANNEL_HSDSCH && fp_hsdsch_channel_info->hsdsch_entity == ehs) {
conversation_set_dissector(p_conv, fp_handle);
dissect_fp(tvb, pinfo, tree, data);
return TRUE;
@@ -4814,8 +4820,10 @@ heur_dissect_fp_hsdsch_type_2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &pinfo->src);
umts_fp_conversation_info->crnc_port = pinfo->srcport;
umts_fp_conversation_info->channel = CHANNEL_HSDSCH;
- umts_fp_conversation_info->hsdsch_entity = ehs;
- umts_fp_conversation_info->hsdsch_macdflow_id = 1;
+ fp_hsdsch_channel_info = wmem_new0(wmem_file_scope(), fp_hsdsch_channel_info_t);
+ fp_hsdsch_channel_info->hsdsch_entity = ehs;
+ fp_hsdsch_channel_info->hsdsch_macdflow_id = 1;
+ umts_fp_conversation_info->channel_specific_info = (void*)fp_hsdsch_channel_info;
set_both_sides_umts_fp_conv_data(pinfo, umts_fp_conversation_info);
conversation_set_dissector(find_or_create_conversation(pinfo), fp_handle);
dissect_fp(tvb, pinfo, tree, data);
@@ -4918,7 +4926,9 @@ fp_set_per_packet_inf_from_conv(conversation_t *p_conv,
guint8 fake_lchid=0;
gint *cur_val=NULL;
guint32 user_identity;
- fp_pch_channel_info_t *fp_pch_channel_info;
+ fp_hsdsch_channel_info_t* fp_hsdsch_channel_info = NULL;
+ fp_edch_channel_info_t* fp_edch_channel_info = NULL;
+ fp_pch_channel_info_t *fp_pch_channel_info = NULL;
fpi = wmem_new0(wmem_file_scope(), fp_info);
p_add_proto_data(wmem_file_scope(), pinfo, proto_fp, 0, fpi);
@@ -4957,23 +4967,23 @@ fp_set_per_packet_inf_from_conv(conversation_t *p_conv,
switch (fpi->channel) {
case CHANNEL_HSDSCH: /* HS-DSCH - High Speed Downlink Shared Channel */
- fpi->hsdsch_entity = p_conv_data->hsdsch_entity;
+ fp_hsdsch_channel_info = (fp_hsdsch_channel_info_t*)p_conv_data->channel_specific_info;
+ fpi->hsdsch_entity = fp_hsdsch_channel_info->hsdsch_entity;
macinf = wmem_new0(wmem_file_scope(), umts_mac_info);
- fpi->hsdsch_macflowd_id = p_conv_data->hsdsch_macdflow_id;
- macinf->content[0] = hsdsch_macdflow_id_mac_content_map[p_conv_data->hsdsch_macdflow_id]; /*MAC_CONTENT_PS_DTCH;*/
- macinf->lchid[0] = p_conv_data->hsdsch_macdflow_id;
- /*macinf->content[0] = lchId_type_table[p_conv_data->edch_lchId[0]];*/
+ fpi->hsdsch_macflowd_id = fp_hsdsch_channel_info->hsdsch_macdflow_id;
+ macinf->content[0] = hsdsch_macdflow_id_mac_content_map[fp_hsdsch_channel_info->hsdsch_macdflow_id]; /*MAC_CONTENT_PS_DTCH;*/
+ macinf->lchid[0] = fp_hsdsch_channel_info->hsdsch_macdflow_id;
p_add_proto_data(wmem_file_scope(), pinfo, proto_umts_mac, 0, macinf);
rlcinf = wmem_new0(wmem_file_scope(), rlc_info);
/*Figure out RLC_MODE based on MACd-flow-ID, basically MACd-flow-ID = 0 then it's SRB0 == UM else AM*/
- rlcinf->mode[0] = hsdsch_macdflow_id_rlc_map[p_conv_data->hsdsch_macdflow_id];
+ rlcinf->mode[0] = hsdsch_macdflow_id_rlc_map[fp_hsdsch_channel_info->hsdsch_macdflow_id];
if (fpi->hsdsch_entity == hs /*&& !rlc_is_ciphered(pinfo)*/) {
for (i=0; i<MAX_NUM_HSDHSCH_MACDFLOW; i++) {
/*Figure out if this channel is multiplexed (signaled from RRC)*/
- if ((cur_val=(gint *)g_tree_lookup(hsdsch_muxed_flows, GINT_TO_POINTER((gint)p_conv_data->hrnti))) != NULL) {
+ if ((cur_val=(gint *)g_tree_lookup(hsdsch_muxed_flows, GINT_TO_POINTER((gint)fp_hsdsch_channel_info->hrnti))) != NULL) {
j = 1 << i;
fpi->hsdhsch_macfdlow_is_mux[i] = j & *cur_val;
} else {
@@ -5012,19 +5022,20 @@ fp_set_per_packet_inf_from_conv(conversation_t *p_conv,
return fpi;
case CHANNEL_EDCH:
+ fp_edch_channel_info = (fp_edch_channel_info_t*)p_conv_data->channel_specific_info;
/*Most configuration is now done in the actual dissecting function*/
macinf = wmem_new0(wmem_file_scope(), umts_mac_info);
rlcinf = wmem_new0(wmem_file_scope(), rlc_info);
- fpi->no_ddi_entries = p_conv_data->no_ddi_entries;
+ fpi->no_ddi_entries = fp_edch_channel_info->no_ddi_entries;
for (i=0; i<fpi->no_ddi_entries; i++) {
- fpi->edch_ddi[i] = p_conv_data->edch_ddi[i]; /*Set the DDI value*/
- fpi->edch_macd_pdu_size[i] = p_conv_data->edch_macd_pdu_size[i]; /*Set the size*/
- fpi->edch_lchId[i] = p_conv_data->edch_lchId[i]; /*Set the channel id for this entry*/
- /*macinf->content[i] = lchId_type_table[p_conv_data->edch_lchId[i]]; */ /*Set the proper Content type for the mac layer.*/
- /* rlcinf->mode[i] = lchId_rlc_map[p_conv_data->edch_lchId[i]];*/ /* Set RLC mode by lchid to RLC_MODE map in nbap.h */
+ fpi->edch_ddi[i] = fp_edch_channel_info->edch_ddi[i]; /*Set the DDI value*/
+ fpi->edch_macd_pdu_size[i] = fp_edch_channel_info->edch_macd_pdu_size[i]; /*Set the size*/
+ fpi->edch_lchId[i] = fp_edch_channel_info->edch_lchId[i]; /*Set the channel id for this entry*/
+ /*macinf->content[i] = lchId_type_table[fp_edch_channel_info->edch_lchId[i]]; */ /*Set the proper Content type for the mac layer.*/
+ /* rlcinf->mode[i] = lchId_rlc_map[fp_edch_channel_info->edch_lchId[i]];*/ /* Set RLC mode by lchid to RLC_MODE map in nbap.h */
}
- fpi->edch_type = p_conv_data->edch_type;
+ fpi->edch_type = fp_edch_channel_info->edch_type;
/* macinf = wmem_new0(wmem_file_scope(), umts_mac_info);
macinf->content[0] = MAC_CONTENT_PS_DTCH;*/
@@ -5082,12 +5093,12 @@ fp_set_per_packet_inf_from_conv(conversation_t *p_conv,
/* Set configuration for individual blocks */
for (j=0; j < num_tbs && j+chan < MAX_MAC_FRAMES; j++) {
/* Set transport channel id (useful for debugging) */
- macinf->trchid[j+chan] = p_conv_data->dchs_in_flow_list[chan];
+ macinf->trchid[j+chan] = p_conv_data->dch_ids_in_flow_list[chan];
/* Checking for the common Transport Format of DCCH over DCH ( See 3GPP TR 25.944 / 4.1.1.3.1.1 ) */
is_known_dcch_tf = (tfi == 1 && num_tbs == 1 && tb_size == 148);
/* Checking for DCH ID 24 and tb size of 340 bits */
- is_special_case_dch_24 = (p_conv_data->dchs_in_flow_list[chan] == 24 && tb_size == 340);
+ is_special_case_dch_24 = (p_conv_data->dch_ids_in_flow_list[chan] == 24 && tb_size == 340);
if (is_known_dcch_tf || is_special_case_dch_24) {
/* Channel is multiplexed (ie. C/T flag present) */
@@ -5107,7 +5118,7 @@ fp_set_per_packet_inf_from_conv(conversation_t *p_conv,
/* TODO: This stuff has to be reworked! */
/* Generates a fake logical channel id for non multiplexed channel */
- fake_lchid = make_fake_lchid(pinfo, p_conv_data->dchs_in_flow_list[chan]);
+ fake_lchid = make_fake_lchid(pinfo, p_conv_data->dch_ids_in_flow_list[chan]);
macinf->content[j+chan] = lchId_type_table[fake_lchid];
rlcinf->mode[j+chan] = lchId_rlc_map[fake_lchid];
@@ -5380,9 +5391,9 @@ dissect_fp_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
"Unknown channel type"));
if (p_conv_data) {
int i;
- col_append_fstr(pinfo->cinfo, COL_INFO, "(%u", p_conv_data->dchs_in_flow_list[0]);
+ col_append_fstr(pinfo->cinfo, COL_INFO, "(%u", p_conv_data->dch_ids_in_flow_list[0]);
for (i=1; i < p_conv_data->num_dch_in_flow; i++) {
- col_append_fstr(pinfo->cinfo, COL_INFO, ",%u", p_conv_data->dchs_in_flow_list[i]);
+ col_append_fstr(pinfo->cinfo, COL_INFO, ",%u", p_conv_data->dch_ids_in_flow_list[i]);
}
col_append_fstr(pinfo->cinfo, COL_INFO, ") ");
}
@@ -5647,7 +5658,7 @@ umts_fp_init_protocol(void)
umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_num_tbs[j] = 1;
}
- umts_fp_conversation_info->dchs_in_flow_list[0] = 1;
+ umts_fp_conversation_info->dch_ids_in_flow_list[0] = 1;
umts_fp_conversation_info->num_dch_in_flow=1;
set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
default:
diff --git a/epan/dissectors/packet-umts_fp.h b/epan/dissectors/packet-umts_fp.h
index 551234da10..bd7b6f4e76 100644
--- a/epan/dissectors/packet-umts_fp.h
+++ b/epan/dissectors/packet-umts_fp.h
@@ -46,6 +46,13 @@
#define CHANNEL_HSDSCH_COMMON_T3 20
#define CHANNEL_EDCH_COMMON 21
+
+/* Constants */
+#define MAX_FP_CHANS 64
+#define MAX_EDCH_DDIS 16
+#define MAX_NUM_HSDHSCH_MACDFLOW 8
+#define FP_maxNrOfTFs 32 /* From NBAC-Constants.asn */
+
enum fp_interface_type
{
IuB_Interface,
@@ -82,63 +89,6 @@ enum fp_rlc_mode {
};
-/* Information about the Paging Indication Bitmap seen in a specific PCH frame*/
-typedef struct paging_indications_info_t
-{
- guint32 frame_number;
- guint8* paging_indications_bitmap;
-} paging_indications_info_t;
-
-/* Info attached to each FP packet */
-typedef struct fp_info
-{
- enum fp_interface_type iface_type;
- enum division_type division;
- guint8 release; /* e.g. 99, 4, 5, 6, 7 */
- guint16 release_year; /* e.g. 2001 */
- guint8 release_month; /* e.g. 12 for December */
- gboolean is_uplink;
- gint channel; /* see Channel types definitions above */
- guint8 dch_crc_present; /* 0=No, 1=Yes, 2=Unknown */
- gint num_chans;
-#define MAX_FP_CHANS 64
- gint chan_tf_size[MAX_FP_CHANS];
- gint chan_num_tbs[MAX_FP_CHANS];
-
-#define MAX_EDCH_DDIS 16
- gint no_ddi_entries;
- guint8 edch_ddi[MAX_EDCH_DDIS];
- guint edch_macd_pdu_size[MAX_EDCH_DDIS];
-
- guint edch_lchId[MAX_EDCH_DDIS]; /* Logical Channel Id for E-DCH*/
-
- guint8 edch_type; /* 1 means T2 */
-
- gint cur_tb; /* current transport block (required for dissecting of single TBs */
- gint cur_chan; /* current channel, required to retrieve the correct channel configuration for UMTS MAC */
- gint com_context_id; /* Identifies a single UE in the network */
- guint16 srcport, destport;
-
- /* PCH Related data*/
- gint paging_indications;
- paging_indications_info_t* relevant_paging_indications; /* Info from previous frame */
- /* Info from the current frame. Used to carry information from this frame to the converstaion info */
- paging_indications_info_t* current_paging_indications;
-
- /* HSDSCH Related data */
- enum fp_hsdsch_entity hsdsch_entity;
- gint hsdsch_macflowd_id;
-#define MAX_NUM_HSDHSCH_MACDFLOW 8
- gboolean hsdhsch_macfdlow_is_mux[MAX_NUM_HSDHSCH_MACDFLOW];
- enum fp_link_type link_type;
- guint urnti; /*Used for tracking a "sequence" over diffrent transport channels*/
-
- gboolean reset_frag; /*Used to indicate that a stream has been reconfigured, hence we need to reset the fragtable*/
-} fp_info;
-
-/* From NBAC-Constants.asn */
-#define FP_maxNrOfTFs 32
-
typedef struct
{
gint num_ul_chans;
@@ -150,6 +100,13 @@ typedef struct
} fp_dch_channel_info_t;
+
+/****************************************/
+/* Channel Specific Information Structs */
+
+/****************/
+/* FACH Structs */
+
typedef struct fp_crnti_allocation_info_t
{
guint32 alloc_frame_number; /* Frame where C-RNTI was allocated */
@@ -164,6 +121,10 @@ typedef struct fp_fach_channel_info_t
wmem_tree_t* crnti_to_urnti_map; /* Mapping between C-RNTIs and U-RNTIs using them in this FACH */
} fp_fach_channel_info_t;
+
+/****************/
+/* RACH Structs */
+
/* Used in the 'channel_specific_info' field for RACH channels */
typedef struct fp_rach_channel_info_t
{
@@ -172,6 +133,17 @@ typedef struct fp_rach_channel_info_t
wmem_tree_t* crnti_to_urnti_map; /* Mapping between C-RNTIs and U-RNTIs using them in this RACH */
} fp_rach_channel_info_t;
+
+/****************/
+/* PCH Structs */
+
+/* Information about the Paging Indication Bitmap seen in a specific PCH frame*/
+typedef struct paging_indications_info_t
+{
+ guint32 frame_number;
+ guint8* paging_indications_bitmap;
+} paging_indications_info_t;
+
/* Used in the 'channel_specific_info' field for PCH channels */
typedef struct fp_pch_channel_info_t
{
@@ -181,15 +153,49 @@ typedef struct fp_pch_channel_info_t
paging_indications_info_t* last_paging_indication_info;
} fp_pch_channel_info_t;
+
+/*****************/
+/* E-DCH Structs */
+
+/* Used in the 'channel_specific_info' field for E-DCH channels */
+typedef struct fp_edch_channel_info_t
+{
+ gint no_ddi_entries;
+ guint8 edch_ddi[MAX_EDCH_DDIS];
+ guint edch_macd_pdu_size[MAX_EDCH_DDIS];
+ guint8 edch_lchId[MAX_EDCH_DDIS];
+ guint8 edch_type; /* 1 means T2 */
+} fp_edch_channel_info_t;
+
+
+/*******************/
+/* HS-DSCH Structs */
+
+/* Used in the 'channel_specific_info' field for HS-DSCH channels */
+typedef struct fp_hsdsch_channel_info_t
+{
+ enum fp_hsdsch_entity hsdsch_entity;
+ guint8 common_macdflow_id;
+ guint8 hsdsch_macdflow_id;
+ guint hrnti; /*Used for tracking a HS-DSCH flow*/
+} fp_hsdsch_channel_info_t;
+
+
+/************************/
+/* FP Conversation Data */
+
typedef struct
{
enum fp_interface_type iface_type;
enum division_type division;
gint channel; /* see Channel types definitions above */
+ enum fp_rlc_mode rlc_mode;
guint32 dl_frame_number; /* the frame where this conversation is started from CRNC */
guint32 ul_frame_number; /* the frame where this conversation is started from Node B */
address crnc_address;
guint16 crnc_port;
+
+ guint urnti; /* Identifies a single UE in the UTRAN. Used for tracking it's RLC session across different transport channels */
gint com_context_id; /* Identifies a single UE in all NBAP messages */
guint32 scrambling_code; /* Identifies a single UE's radio transmissions in the UTRAN */
@@ -197,36 +203,63 @@ typedef struct
/* DCH's in this flow */
gint num_dch_in_flow;
- gint dchs_in_flow_list[FP_maxNrOfTFs];
-
- guint8 dch_crc_present; /* 0=No, 1=Yes, 2=Unknown */
- enum fp_rlc_mode rlc_mode;
-
+ gint dch_ids_in_flow_list[FP_maxNrOfTFs];
/* DCH type channel data */
fp_dch_channel_info_t fp_dch_channel_info[FP_maxNrOfTFs];
+ guint8 dch_crc_present; /* 0=No, 1=Yes, 2=Unknown */
+
+ gboolean reset_frag; /*Used to indicate that a stream has been reconfigured, hence we need to reset the fragtable*/
+ guint32 cfn;
+ guint32 cfn_index;
+
+} umts_fp_conversation_info_t;
+
+
+/********************************/
+/* FP Packet Data */
+/* (attached to each FP packet) */
+typedef struct fp_info
+{
+ enum fp_interface_type iface_type;
+ enum division_type division;
+ guint8 release; /* e.g. 99, 4, 5, 6, 7 */
+ guint16 release_year; /* e.g. 2001 */
+ guint8 release_month; /* e.g. 12 for December */
+ gboolean is_uplink;
+ gint channel; /* see Channel types definitions above */
+ guint8 dch_crc_present; /* 0=No, 1=Yes, 2=Unknown */
+ gint num_chans;
+ gint chan_tf_size[MAX_FP_CHANS];
+ gint chan_num_tbs[MAX_FP_CHANS];
- /* E-DCH related data */
gint no_ddi_entries;
guint8 edch_ddi[MAX_EDCH_DDIS];
guint edch_macd_pdu_size[MAX_EDCH_DDIS];
- guint8 edch_lchId[MAX_EDCH_DDIS];
- guint8 edch_type; /* 1 means T2 */
- /* HSDSCH Related data */
- enum fp_hsdsch_entity hsdsch_entity;
- guint8 hsdsch_macdflow_id;
+ guint edch_lchId[MAX_EDCH_DDIS]; /* Logical Channel Id for E-DCH*/
- guint8 hsdsch_num_chans_per_flow[MAX_NUM_HSDHSCH_MACDFLOW];
+ guint8 edch_type; /* 1 means T2 */
- /*HSDSCH Common related data*/
- guint8 common_macdflow_id;
+ gint cur_tb; /* current transport block (required for dissecting of single TBs */
+ gint cur_chan; /* current channel, required to retrieve the correct channel configuration for UMTS MAC */
+ gint com_context_id; /* Identifies a single UE in the network */
+ guint16 srcport, destport;
- guint urnti; /*Used for tracking a "sequence" over diffrent transport channels*/
- guint hrnti; /*Used for tracking a HS-DSCH flow*/
- gboolean reset_frag; /*Used to indicate that a stream has been reconfigured, hence we need to reset the fragtable*/
- guint32 cfn;
- guint32 cfn_index;
-} umts_fp_conversation_info_t;
+ /* PCH Related data*/
+ gint paging_indications;
+ paging_indications_info_t* relevant_paging_indications; /* Info from previous frame */
+ /* Info from the current frame. Used to carry information from this frame to the converstaion info */
+ paging_indications_info_t* current_paging_indications;
+
+ /* HSDSCH Related data */
+ enum fp_hsdsch_entity hsdsch_entity;
+ gint hsdsch_macflowd_id;
+ gboolean hsdhsch_macfdlow_is_mux[MAX_NUM_HSDHSCH_MACDFLOW];
+ enum fp_link_type link_type;
+ guint urnti; /*Used for tracking a "sequence" over diffrent transport channels*/
+
+ gboolean reset_frag; /*Used to indicate that a stream has been reconfigured, hence we need to reset the fragtable*/
+} fp_info;
void set_umts_fp_conv_data(conversation_t *conversation, umts_fp_conversation_info_t *umts_fp_conversation_info);