Setup more flows, flow info is incomplete.

svn path=/trunk/; revision=42521
This commit is contained in:
Anders Broman 2012-05-09 14:24:46 +00:00
parent 9141a4fbcb
commit 582c102f16
3 changed files with 229 additions and 7 deletions

View File

@ -497,6 +497,12 @@ guint32 payload_crc_value;
#.FN_BODY CommonPhysicalChannelID VAL_PTR = &commonphysicalchannelid
%(DEFAULT_BODY)s
#.FN_BODY E-DCH-MACdFlow-ID VAL_PTR = &e_dch_macdflow_id
%(DEFAULT_BODY)s
#.FN_BODY HSDSCH-MACdFlow-ID VAL_PTR = &hsdsch_macdflow_id
%(DEFAULT_BODY)s
#.FN_BODY BindingID VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb=NULL;
@ -632,6 +638,109 @@ dch_id = 0xFFFFFFFF;
set_umts_fp_ul_conv_data(conversation, actx->pinfo->fd->num, &dst_addr, BindingID_port, dch_id, nbap_fp_info_ul, nbap_fp_info_dl);
}
#.FN_BODY RL-Specific-E-DCH-Information-Item
address dst_addr, null_addr;
conversation_t *conversation;
fp_info *nbap_fp_info_ul = NULL, *nbap_fp_info_dl = NULL;
transportLayerAddress_ipv4 = 0;
BindingID_port = 0;
%(DEFAULT_BODY)s
if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0)
{
return offset;
}
SET_ADDRESS(&null_addr, AT_NONE, 0, NULL);
dst_addr.type=AT_IPv4;
dst_addr.len=4;
dst_addr.data=(guint8 *)&transportLayerAddress_ipv4;
conversation = find_conversation(actx->pinfo->fd->num,&dst_addr,
&null_addr, PT_UDP, BindingID_port,
0, NO_ADDR_B|NO_PORT_B);
if (conversation == NULL) {
/* It's not part of any conversation - create a new one. */
conversation = conversation_new(actx->pinfo->fd->num, &dst_addr,
&null_addr, PT_UDP,BindingID_port ,
0, NO_ADDR2|NO_PORT2);
/* Set dissector */
conversation_set_dissector(conversation, fp_handle);
}
nbap_fp_info_ul = se_new0(fp_info);
nbap_fp_info_ul->iface_type = IuB_Interface;
nbap_fp_info_ul->division = Division_FDD;
nbap_fp_info_ul->release = 7; /* Set values greater then the checks performed */
nbap_fp_info_ul->release_year = 2006;
nbap_fp_info_ul->release_month = 12;
nbap_fp_info_ul->is_uplink = g_nbap_msg_info_for_fp.is_uplink;
nbap_fp_info_ul->channel = CHANNEL_EDCH;
nbap_fp_info_ul->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present;
nbap_fp_info_ul->edch_type = 0;
if(actx->pinfo->link_dir==P2P_DIR_DL){
/* For now have on fp_info_ul and on fp_info_dl, may not be needed */
set_umts_fp_ul_conv_data(conversation, actx->pinfo->fd->num, &dst_addr, BindingID_port, e_dch_macdflow_id, nbap_fp_info_ul, nbap_fp_info_dl);
}
#.FN_BODY HSDSCH-MACdFlow-Specific-InfoItem
address dst_addr, null_addr;
conversation_t *conversation;
fp_info *nbap_fp_info_ul = NULL, *nbap_fp_info_dl = NULL;
transportLayerAddress_ipv4 = 0;
BindingID_port = 0;
%(DEFAULT_BODY)s
if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0)
{
return offset;
}
SET_ADDRESS(&null_addr, AT_NONE, 0, NULL);
dst_addr.type=AT_IPv4;
dst_addr.len=4;
dst_addr.data=(guint8 *)&transportLayerAddress_ipv4;
conversation = find_conversation(actx->pinfo->fd->num,&dst_addr,
&null_addr, PT_UDP, BindingID_port,
0, NO_ADDR_B|NO_PORT_B);
if (conversation == NULL) {
/* It's not part of any conversation - create a new one. */
conversation = conversation_new(actx->pinfo->fd->num, &dst_addr,
&null_addr, PT_UDP,BindingID_port ,
0, NO_ADDR2|NO_PORT2);
/* Set dissector */
conversation_set_dissector(conversation, fp_handle);
}
nbap_fp_info_ul = se_new0(fp_info);
nbap_fp_info_ul->iface_type = IuB_Interface;
nbap_fp_info_ul->division = Division_FDD;
nbap_fp_info_ul->release = 7; /* Set values greater then the checks performed */
nbap_fp_info_ul->release_year = 2006;
nbap_fp_info_ul->release_month = 12;
nbap_fp_info_ul->is_uplink = g_nbap_msg_info_for_fp.is_uplink;
nbap_fp_info_ul->channel = CHANNEL_HSDSCH;
nbap_fp_info_ul->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present;
nbap_fp_info_ul->hsdsch_entity = hs;
if(actx->pinfo->link_dir==P2P_DIR_DL){
/* For now have on fp_info_ul and on fp_info_dl, may not be needed */
set_umts_fp_ul_conv_data(conversation, actx->pinfo->fd->num, &dst_addr, BindingID_port, hsdsch_macdflow_id, nbap_fp_info_ul, nbap_fp_info_dl);
}
#.REGISTER_NEW
#NBAP-PROTOCOL-IES

View File

@ -91,7 +91,7 @@ static guint32 ProcedureCode;
static guint32 ProtocolIE_ID;
static guint32 ddMode;
static const gchar *ProcedureID;
static guint32 dch_id, commonphysicalchannelid;
static guint32 dch_id, commonphysicalchannelid, e_dch_macdflow_id, hsdsch_macdflow_id;
/* Dissector tables */
static dissector_table_t nbap_ies_dissector_table;

View File

@ -6476,7 +6476,7 @@ static guint32 ProcedureCode;
static guint32 ProtocolIE_ID;
static guint32 ddMode;
static const gchar *ProcedureID;
static guint32 dch_id, commonphysicalchannelid;
static guint32 dch_id, commonphysicalchannelid, e_dch_macdflow_id, hsdsch_macdflow_id;
/* Dissector tables */
static dissector_table_t nbap_ies_dissector_table;
@ -8469,8 +8469,12 @@ 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 501 "../../asn1/nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxNrOfEDCHMACdFlows_1, NULL, FALSE);
0U, maxNrOfEDCHMACdFlows_1, &e_dch_macdflow_id, FALSE);
return offset;
}
@ -8479,7 +8483,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 501 "../../asn1/nbap/nbap.cnf"
#line 507 "../../asn1/nbap/nbap.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@ -22576,8 +22580,12 @@ 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 504 "../../asn1/nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxNrOfMACdFlows_1, NULL, FALSE);
0U, maxNrOfMACdFlows_1, &hsdsch_macdflow_id, FALSE);
return offset;
}
@ -22594,9 +22602,61 @@ 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 694 "../../asn1/nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation;
fp_info *nbap_fp_info_ul = NULL, *nbap_fp_info_dl = NULL;
transportLayerAddress_ipv4 = 0;
BindingID_port = 0;
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_HSDSCH_MACdFlow_Specific_InfoItem, HSDSCH_MACdFlow_Specific_InfoItem_sequence);
if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0)
{
return offset;
}
SET_ADDRESS(&null_addr, AT_NONE, 0, NULL);
dst_addr.type=AT_IPv4;
dst_addr.len=4;
dst_addr.data=(guint8 *)&transportLayerAddress_ipv4;
conversation = find_conversation(actx->pinfo->fd->num,&dst_addr,
&null_addr, PT_UDP, BindingID_port,
0, NO_ADDR_B|NO_PORT_B);
if (conversation == NULL) {
/* It's not part of any conversation - create a new one. */
conversation = conversation_new(actx->pinfo->fd->num, &dst_addr,
&null_addr, PT_UDP,BindingID_port ,
0, NO_ADDR2|NO_PORT2);
/* Set dissector */
conversation_set_dissector(conversation, fp_handle);
}
nbap_fp_info_ul = se_new0(fp_info);
nbap_fp_info_ul->iface_type = IuB_Interface;
nbap_fp_info_ul->division = Division_FDD;
nbap_fp_info_ul->release = 7; /* Set values greater then the checks performed */
nbap_fp_info_ul->release_year = 2006;
nbap_fp_info_ul->release_month = 12;
nbap_fp_info_ul->is_uplink = g_nbap_msg_info_for_fp.is_uplink;
nbap_fp_info_ul->channel = CHANNEL_HSDSCH;
nbap_fp_info_ul->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present;
nbap_fp_info_ul->hsdsch_entity = hs;
if(actx->pinfo->link_dir==P2P_DIR_DL){
/* For now have on fp_info_ul and on fp_info_dl, may not be needed */
set_umts_fp_ul_conv_data(conversation, actx->pinfo->fd->num, &dst_addr, BindingID_port, hsdsch_macdflow_id, nbap_fp_info_ul, nbap_fp_info_dl);
}
return offset;
}
@ -27315,7 +27375,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 577 "../../asn1/nbap/nbap.cnf"
#line 583 "../../asn1/nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation;
fp_info *nbap_fp_info_ul = NULL, *nbap_fp_info_dl = NULL;
@ -27378,6 +27438,7 @@ dch_id = 0xFFFFFFFF;
return offset;
}
@ -27406,9 +27467,61 @@ 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 643 "../../asn1/nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation;
fp_info *nbap_fp_info_ul = NULL, *nbap_fp_info_dl = NULL;
transportLayerAddress_ipv4 = 0;
BindingID_port = 0;
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_RL_Specific_E_DCH_Information_Item, RL_Specific_E_DCH_Information_Item_sequence);
if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0)
{
return offset;
}
SET_ADDRESS(&null_addr, AT_NONE, 0, NULL);
dst_addr.type=AT_IPv4;
dst_addr.len=4;
dst_addr.data=(guint8 *)&transportLayerAddress_ipv4;
conversation = find_conversation(actx->pinfo->fd->num,&dst_addr,
&null_addr, PT_UDP, BindingID_port,
0, NO_ADDR_B|NO_PORT_B);
if (conversation == NULL) {
/* It's not part of any conversation - create a new one. */
conversation = conversation_new(actx->pinfo->fd->num, &dst_addr,
&null_addr, PT_UDP,BindingID_port ,
0, NO_ADDR2|NO_PORT2);
/* Set dissector */
conversation_set_dissector(conversation, fp_handle);
}
nbap_fp_info_ul = se_new0(fp_info);
nbap_fp_info_ul->iface_type = IuB_Interface;
nbap_fp_info_ul->division = Division_FDD;
nbap_fp_info_ul->release = 7; /* Set values greater then the checks performed */
nbap_fp_info_ul->release_year = 2006;
nbap_fp_info_ul->release_month = 12;
nbap_fp_info_ul->is_uplink = g_nbap_msg_info_for_fp.is_uplink;
nbap_fp_info_ul->channel = CHANNEL_EDCH;
nbap_fp_info_ul->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present;
nbap_fp_info_ul->edch_type = 0;
if(actx->pinfo->link_dir==P2P_DIR_DL){
/* For now have on fp_info_ul and on fp_info_dl, may not be needed */
set_umts_fp_ul_conv_data(conversation, actx->pinfo->fd->num, &dst_addr, BindingID_port, e_dch_macdflow_id, nbap_fp_info_ul, nbap_fp_info_dl);
}
return offset;
}
@ -30944,7 +31057,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 516 "../../asn1/nbap/nbap.cnf"
#line 522 "../../asn1/nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation;
fp_info *nbap_fp_info_ul = NULL, *nbap_fp_info_dl = NULL;