diff options
author | Anders Broman <anders.broman@ericsson.com> | 2012-05-09 14:24:46 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2012-05-09 14:24:46 +0000 |
commit | 582c102f16fb0aa1bfc38b00eeee3d22896923ba (patch) | |
tree | d335430f93bb686380fd8ee2c55ee7143d7122e6 /asn1/nbap | |
parent | 9141a4fbcb959d7bc6f4c4d7acced92cf7822252 (diff) |
Setup more flows, flow info is incomplete.
svn path=/trunk/; revision=42521
Diffstat (limited to 'asn1/nbap')
-rw-r--r-- | asn1/nbap/nbap.cnf | 109 | ||||
-rw-r--r-- | asn1/nbap/packet-nbap-template.c | 2 |
2 files changed, 110 insertions, 1 deletions
diff --git a/asn1/nbap/nbap.cnf b/asn1/nbap/nbap.cnf index f673392a90..bfbb9ce023 100644 --- a/asn1/nbap/nbap.cnf +++ b/asn1/nbap/nbap.cnf @@ -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 = ¶meter_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 diff --git a/asn1/nbap/packet-nbap-template.c b/asn1/nbap/packet-nbap-template.c index d4fb923dfe..1e5855ee17 100644 --- a/asn1/nbap/packet-nbap-template.c +++ b/asn1/nbap/packet-nbap-template.c @@ -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; |