aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/nbap
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2012-05-09 14:24:46 +0000
committerAnders Broman <anders.broman@ericsson.com>2012-05-09 14:24:46 +0000
commit582c102f16fb0aa1bfc38b00eeee3d22896923ba (patch)
treed335430f93bb686380fd8ee2c55ee7143d7122e6 /asn1/nbap
parent9141a4fbcb959d7bc6f4c4d7acced92cf7822252 (diff)
Setup more flows, flow info is incomplete.
svn path=/trunk/; revision=42521
Diffstat (limited to 'asn1/nbap')
-rw-r--r--asn1/nbap/nbap.cnf109
-rw-r--r--asn1/nbap/packet-nbap-template.c2
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 = &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
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;