aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-nbap.c
diff options
context:
space:
mode:
authorDarien Spencer <cusneud@mail.com>2017-08-01 21:53:06 +0300
committerAnders Broman <a.broman58@gmail.com>2017-08-29 03:51:16 +0000
commit1f9990b7657332daad0680107d5230e18437f1da (patch)
treeaffe050aa3700640a4c752b251c69f54a898ec61 /epan/dissectors/packet-nbap.c
parentf8d0a7f003c2916f08092da01c737294f1944eb8 (diff)
NBAP: Refactor information storing per-packet
Migrating from static variables to a single struct for information 'carried' between different field in a NBAP packet. Bug: 13879 Bug: 13712 Change-Id: Ie35619d64c4b9a3d5459d528788f74f952e75c11 Reviewed-on: https://code.wireshark.org/review/22902 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-nbap.c')
-rw-r--r--epan/dissectors/packet-nbap.c1588
1 files changed, 1094 insertions, 494 deletions
diff --git a/epan/dissectors/packet-nbap.c b/epan/dissectors/packet-nbap.c
index 01c369429c..7812f01fe3 100644
--- a/epan/dissectors/packet-nbap.c
+++ b/epan/dissectors/packet-nbap.c
@@ -39,6 +39,7 @@
#include <epan/conversation.h>
#include <epan/expert.h>
#include <epan/prefs.h>
+#include <epan/proto_data.h>
#include <epan/uat.h>
#include <wsutil/ws_printf.h> /* ws_g_warning */
@@ -1536,7 +1537,7 @@ typedef enum _ProtocolIE_ID_enum {
} ProtocolIE_ID_enum;
/*--- End of included file: packet-nbap-val.h ---*/
-#line 74 "./asn1/nbap/packet-nbap-template.c"
+#line 75 "./asn1/nbap/packet-nbap-template.c"
/* Initialize the protocol and registered fields */
static int proto_nbap = -1;
@@ -4840,7 +4841,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 82 "./asn1/nbap/packet-nbap-template.c"
+#line 83 "./asn1/nbap/packet-nbap-template.c"
/* Initialize the subtree pointers */
static int ett_nbap = -1;
@@ -6479,7 +6480,7 @@ static gint ett_nbap_UnsuccessfulOutcome = -1;
static gint ett_nbap_Outcome = -1;
/*--- End of included file: packet-nbap-ett.c ---*/
-#line 90 "./asn1/nbap/packet-nbap-template.c"
+#line 91 "./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;
@@ -6514,18 +6515,6 @@ typedef struct nbap_setup_conv
*/
static wmem_map_t *nbap_setup_conv_table;
-/*
- * Structure to build information needed to dissect the FP flow beeing set up.
- */
-struct _nbap_msg_info_for_fp
-{
- guint32 ProcedureCode;
- guint32 ddMode;
- gboolean is_uplink;
- gint channel; /* see definitions in packet-umts_fp.h Channel types */
- guint8 dch_crc_present; /* 0=No, 1=Yes, 2=Unknown */
-};
-
typedef struct
{
gint num_dch_in_flow;
@@ -6593,48 +6582,495 @@ enum TransportFormatSet_type_enum
NBAP_PCH
};
+
+/*****************************************************************************/
+/* Packet private data */
+/* For this dissector, all information passed between different ASN.1 nodes */
+/* should be done only through this API! */
+/*****************************************************************************/
+
+
+typedef struct nbap_private_data_t
+{
+ guint32 transportLayerAddress_ipv4;
+ guint16 binding_id_port;
+ enum TransportFormatSet_type_enum transport_format_set_type;
+ guint32 procedure_code;
+ guint num_items;
+ guint32 ul_scrambling_code;
+ guint32 com_context_id;
+ gint num_dch_in_flow;
+ gint hrnti;
+ guint node_b_com_context_id;
+ guint32 protocol_ie_id;
+ guint32 dd_mode;
+ guint32 transaction_id;
+ guint32 t_dch_id;
+ guint32 dch_id;
+ guint32 prev_dch_id;
+ guint32 common_physical_channel_id;
+ guint32 e_dch_macdflow_id;
+ guint32 hsdsch_macdflow_id;
+ guint32 e_dch_ddi_value;
+ guint32 logical_channel_id;
+ guint32 common_macdflow_id;
+ guint32 mac_d_pdu_size;
+ guint32 common_transport_channel_id;
+ gint paging_indications;
+ guint32 ib_type;
+ guint32 segment_type;
+ gboolean crnc_context_present; /* Whether 'com_context_id' is set */
+ guint8 dch_crc_present;
+ /* Arrays */
+ nbap_dch_channel_info_t nbap_dch_chnl_info[256];
+ nbap_edch_channel_info_t nbap_edch_channel_info[maxNrOfEDCHMACdFlows];
+ gint hsdsch_macdflow_ids[maxNrOfMACdFlows];
+ nbap_hsdsch_channel_info_t nbap_hsdsch_channel_info[maxNrOfMACdFlows];
+ nbap_common_channel_info_t nbap_common_channel_info[maxNrOfMACdFlows]; /*TODO: Fix this!*/
+} nbap_private_data_t;
+
+
+/* Helper function to get or create a private_data struct */
+static nbap_private_data_t* nbap_get_private_data(packet_info *pinfo)
+{
+ guint8 i;
+ /* NOTE: Unlike other ASN.1 dissectors which store information in
+ * actx->private_data the NBAP dissector can't do so because some fields
+ * are defined as their own 'PDU' (Like BindingID and TransportLayerAddress)
+ * in those cases, the generic ASN.1 dissector creates a NEW 'ASN.1 context'
+ * (asn1_ctx_t) and hence a new 'private data' field for them so information
+ * can't be passes to/from them.
+ */
+ nbap_private_data_t *private_data = (nbap_private_data_t *)p_get_proto_data(pinfo->pool, pinfo, proto_nbap, 0);
+ if(private_data != NULL ) {
+ return private_data;
+ }
+ else {
+ private_data = wmem_new0(pinfo->pool, nbap_private_data_t);
+ p_add_proto_data(pinfo->pool, pinfo, proto_nbap, 0, private_data);
+ /* Setting default values */
+ private_data->hsdsch_macdflow_id = 3;
+ private_data->crnc_context_present = FALSE;
+ private_data->procedure_code = 0xFFFF;
+ private_data->dd_mode = 0xFFFF;
+ private_data->dch_crc_present = 2; /* Unknown */
+ for (i = 0; i < maxNrOfMACdFlows; i++) {
+ private_data->nbap_hsdsch_channel_info[i].entity = hs;
+ }
+ return private_data;
+ }
+}
+
+/* Helper function to reset the private data struct*/
+static void nbap_reset_private_data(packet_info *pinfo)
+{
+ p_remove_proto_data(pinfo->pool, pinfo, proto_nbap, 0);
+}
+
+static guint32 private_data_get_transportLayerAddress_ipv4(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->transportLayerAddress_ipv4;
+}
+
+static void private_data_set_transportLayerAddress_ipv4(packet_info *pinfo, guint32 transportLayerAddress_ipv4)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->transportLayerAddress_ipv4 = transportLayerAddress_ipv4;
+}
+
+static guint16 private_data_get_binding_id_port(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->binding_id_port;
+}
+
+static void private_data_set_binding_id_port(packet_info *pinfo, guint16 binding_id_port)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->binding_id_port = binding_id_port;
+}
+
+static guint32 private_data_get_ul_scrambling_code(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->ul_scrambling_code;
+}
+
+static void private_data_set_ul_scrambling_code(packet_info *pinfo, guint32 ul_scrambling_code)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->ul_scrambling_code = ul_scrambling_code;
+}
+
+static enum TransportFormatSet_type_enum private_data_get_transport_format_set_type(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->transport_format_set_type;
+}
+
+static void private_data_set_transport_format_set_type(packet_info *pinfo, enum TransportFormatSet_type_enum transport_format_set_type)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->transport_format_set_type = transport_format_set_type;
+}
+
+static guint32 private_data_get_procedure_code(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->procedure_code;
+}
+
+static void private_data_set_procedure_code(packet_info *pinfo, guint32 procedure_code)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->procedure_code = procedure_code;
+}
+
+static guint private_data_get_num_items(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->num_items;
+}
+
+static void private_data_set_num_items(packet_info *pinfo, guint num_items)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->num_items = num_items;
+}
+
+static guint private_data_increment_num_items(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->num_items++;
+ return private_data->num_items;
+}
+
+static guint32 private_data_get_com_context_id(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->com_context_id;
+}
+
+static void private_data_set_com_context_id(packet_info *pinfo, guint32 com_context_id)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->com_context_id = com_context_id;
+}
+
+static gint private_data_get_num_dch_in_flow(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->num_dch_in_flow;
+}
+
+static void private_data_set_num_dch_in_flow(packet_info *pinfo, gint num_dch_in_flow)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->num_dch_in_flow = num_dch_in_flow;
+}
+
+static gint private_data_increment_num_dch_in_flow(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->num_dch_in_flow++;
+ return private_data->num_dch_in_flow;
+}
+
+static gint private_data_get_hrnti(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->hrnti;
+}
+
+static void private_data_set_hrnti(packet_info *pinfo, gint hrnti)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->hrnti = hrnti;
+}
+
+static guint private_data_get_node_b_com_context_id(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->node_b_com_context_id;
+}
+
+static void private_data_set_node_b_com_context_id(packet_info *pinfo, guint node_b_com_context_id)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->node_b_com_context_id = node_b_com_context_id;
+}
+
+static guint32 private_data_get_protocol_ie_id(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->protocol_ie_id;
+}
+
+static void private_data_set_protocol_ie_id(packet_info *pinfo, guint32 protocol_ie_id)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->protocol_ie_id = protocol_ie_id;
+}
+
+static guint32 private_data_get_dd_mode(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->dd_mode;
+}
+
+static void private_data_set_dd_mode(packet_info *pinfo, guint32 dd_mode)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->dd_mode = dd_mode;
+}
+
+static guint32 private_data_get_transaction_id(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->transaction_id;
+}
+
+static void private_data_set_transaction_id(packet_info *pinfo, guint32 transaction_id)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->transaction_id = transaction_id;
+}
+
+static guint32 private_data_get_t_dch_id(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->t_dch_id;
+}
+
+static void private_data_set_t_dch_id(packet_info *pinfo, guint32 t_dch_id)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->t_dch_id = t_dch_id;
+}
+
+static guint32 private_data_get_dch_id(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->dch_id;
+}
+
+static void private_data_set_dch_id(packet_info *pinfo, guint32 dch_id)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->dch_id = dch_id;
+}
+
+static guint32 private_data_get_prev_dch_id(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->prev_dch_id;
+}
+
+static void private_data_set_prev_dch_id(packet_info *pinfo, guint32 prev_dch_id)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->prev_dch_id = prev_dch_id;
+}
+
+static guint32 private_data_get_common_physical_channel_id(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->common_physical_channel_id;
+}
+
+static void private_data_set_common_physical_channel_id(packet_info *pinfo, guint32 common_physical_channel_id)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->common_physical_channel_id = common_physical_channel_id;
+}
+
+static guint32 private_data_get_e_dch_macdflow_id(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->e_dch_macdflow_id;
+}
+
+static void private_data_set_e_dch_macdflow_id(packet_info *pinfo, guint32 e_dch_macdflow_id)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->e_dch_macdflow_id = e_dch_macdflow_id;
+}
+
+static guint32 private_data_get_hsdsch_macdflow_id(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->hsdsch_macdflow_id;
+}
+
+static void private_data_set_hsdsch_macdflow_id(packet_info *pinfo, guint32 hsdsch_macdflow_id)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->hsdsch_macdflow_id = hsdsch_macdflow_id;
+}
+
+static guint32 private_data_get_e_dch_ddi_value(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->e_dch_ddi_value;
+}
+
+static void private_data_set_e_dch_ddi_value(packet_info *pinfo, guint32 e_dch_ddi_value)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->e_dch_ddi_value = e_dch_ddi_value;
+}
+
+static guint32 private_data_get_logical_channel_id(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->logical_channel_id;
+}
+
+static void private_data_set_logical_channel_id(packet_info *pinfo, guint32 logical_channel_id)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->logical_channel_id = logical_channel_id;
+}
+
+static guint32 private_data_get_common_macdflow_id(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->common_macdflow_id;
+}
+
+static void private_data_set_common_macdflow_id(packet_info *pinfo, guint32 common_macdflow_id)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->common_macdflow_id = common_macdflow_id;
+}
+
+static guint32 private_data_get_mac_d_pdu_size(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->mac_d_pdu_size;
+}
+
+static void private_data_set_mac_d_pdu_size(packet_info *pinfo, guint32 mac_d_pdu_size)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->mac_d_pdu_size = mac_d_pdu_size;
+}
+
+static guint32 private_data_get_common_transport_channel_id(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->common_transport_channel_id;
+}
+
+static void private_data_set_common_transport_channel_id(packet_info *pinfo, guint32 common_transport_channel_id)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->common_transport_channel_id = common_transport_channel_id;
+}
+
+static gint private_data_get_paging_indications(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->paging_indications;
+}
+
+static void private_data_set_paging_indications(packet_info *pinfo, gint paging_indications)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->paging_indications = paging_indications;
+}
+
+static guint32 private_data_get_ib_type(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->ib_type;
+}
+
+static void private_data_set_ib_type(packet_info *pinfo, guint32 ib_type)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->ib_type = ib_type;
+}
+
+static guint32 private_data_get_segment_type(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->segment_type;
+}
+
+static void private_data_set_segment_type(packet_info *pinfo, guint32 segment_type)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->segment_type = segment_type;
+}
+
+static gboolean private_data_get_crnc_context_present(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->crnc_context_present;
+}
+
+static void private_data_set_crnc_context_present(packet_info *pinfo, gboolean crnc_context_present)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->crnc_context_present = crnc_context_present;
+}
+
+static guint8 private_data_get_dch_crc_present(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->dch_crc_present;
+}
+
+static void private_data_set_dch_crc_present(packet_info *pinfo, guint8 dch_crc_present)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ private_data->dch_crc_present = dch_crc_present;
+}
+
+static nbap_dch_channel_info_t* private_data_get_nbap_dch_chnl_info(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->nbap_dch_chnl_info;
+}
+
+static nbap_edch_channel_info_t* private_data_get_nbap_edch_channel_info(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->nbap_edch_channel_info;
+}
+
+static gint* private_data_get_hsdsch_macdflow_ids(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->hsdsch_macdflow_ids;
+}
+
+static nbap_hsdsch_channel_info_t* private_data_get_nbap_hsdsch_channel_info(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->nbap_hsdsch_channel_info;
+}
+
+static nbap_common_channel_info_t* private_data_get_nbap_common_channel_info(packet_info *pinfo)
+{
+ nbap_private_data_t *private_data = (nbap_private_data_t*)nbap_get_private_data(pinfo);
+ return private_data->nbap_common_channel_info;
+}
+
+/*****************************************************************************/
+
+
/* Global Variables */
-static guint32 transportLayerAddress_ipv4;
-static guint16 BindingID_port;
-static guint32 ul_scrambling_code;
-static guint32 com_context_id;
-static int cfn;
-gint g_num_dch_in_flow;
-gint g_dch_ids_in_flow_list[maxNrOfTFs];
-gint hsdsch_macdflow_ids[maxNrOfMACdFlows];
-gint hrnti;
-guint node_b_com_context_id;
+
+/* Variables for sub elements dissection */
+static const gchar *ProcedureID;
+/* Trees */
static wmem_tree_t* edch_flow_port_map = NULL;
-static guint32 ProcedureCode;
-static guint32 ProtocolIE_ID;
-static guint32 ddMode;
-static const gchar *ProcedureID;
-static guint32 TransactionID;
-static guint32 t_dch_id;
-static guint32 dch_id;
-static guint32 prev_dch_id;
-static guint32 commonphysicalchannelid;
-static guint32 e_dch_macdflow_id;
-static guint32 hsdsch_macdflow_id=3;
-static guint32 e_dch_ddi_value;
-static guint32 logical_channel_id;
-static guint32 common_macdflow_id;
-static guint32 MACdPDU_Size;
-static guint32 commontransportchannelid;
-static guint num_items;
-static gint paging_indications;
-static guint32 ib_type;
-static guint32 segment_type;
wmem_tree_t *nbap_scrambling_code_crncc_map = NULL;
wmem_tree_t *nbap_crncc_urnti_map = NULL;
-enum TransportFormatSet_type_enum transportFormatSet_type;
-gboolean crcn_context_present = FALSE;
static wmem_tree_t* com_context_map;
-nbap_dch_channel_info_t nbap_dch_chnl_info[256];
-nbap_edch_channel_info_t nbap_edch_channel_info[maxNrOfEDCHMACdFlows];
-nbap_hsdsch_channel_info_t nbap_hsdsch_channel_info[maxNrOfMACdFlows];
-nbap_common_channel_info_t nbap_common_channel_info[maxNrOfMACdFlows]; /*TODO: Fix this!*/
-struct _nbap_msg_info_for_fp g_nbap_msg_info_for_fp;
/* This table is used externally from FP, MAC and such, TODO: merge this with
* lch_contents[] */
@@ -6895,14 +7331,18 @@ static const value_string nbap_ProcedureCode_vals[] = {
static int
dissect_nbap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 94 "./asn1/nbap/nbap.cnf"
+ guint32 procedure_code;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 0U, 255U, &ProcedureCode, FALSE);
+ 0U, 255U, &procedure_code, FALSE);
-#line 93 "./asn1/nbap/nbap.cnf"
- col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
- val_to_str(ProcedureCode, nbap_ProcedureCode_vals,
+ private_data_set_procedure_code(actx->pinfo, procedure_code);
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(procedure_code, nbap_ProcedureCode_vals,
"unknown message"));
+
+
return offset;
}
@@ -6917,8 +7357,15 @@ static const value_string nbap_DdMode_vals[] = {
static int
dissect_nbap_DdMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 102 "./asn1/nbap/nbap.cnf"
+ guint32 dd_mode;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
- 3, &ddMode, TRUE, 0, NULL);
+ 3, &dd_mode, TRUE, 0, NULL);
+
+ private_data_set_dd_mode(actx->pinfo, dd_mode);
+
+
+
return offset;
}
@@ -6932,19 +7379,17 @@ 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"
- ProcedureCode = 0xFFFF;
- ddMode = 0xFFFF;
+#line 108 "./asn1/nbap/nbap.cnf"
ProcedureID = NULL;
-
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_ProcedureID, ProcedureID_sequence);
-#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)"));
- crcn_context_present = FALSE; /*Reset CRNC Com context present flag.*/
+ val_to_str(private_data_get_procedure_code(actx->pinfo), VALS(nbap_ProcedureCode_vals), "unknown(%u)"),
+ val_to_str(private_data_get_dd_mode(actx->pinfo), VALS(nbap_DdMode_vals), "unknown(%u)"));
+ private_data_set_crnc_context_present(actx->pinfo, FALSE); /*Reset CRNC Com context present flag.*/
+
+
return offset;
}
@@ -8182,14 +8627,17 @@ static value_string_ext nbap_ProtocolIE_ID_vals_ext = VALUE_STRING_EXT_INIT(nbap
static int
dissect_nbap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 81 "./asn1/nbap/nbap.cnf"
+ guint32 protocol_ie_id;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 0U, maxProtocolIEs, &ProtocolIE_ID, FALSE);
+ 0U, maxProtocolIEs, &protocol_ie_id, FALSE);
-#line 82 "./asn1/nbap/nbap.cnf"
+ private_data_set_protocol_ie_id(actx->pinfo, protocol_ie_id); /* To carry around the packet */
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)"));
+ proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(protocol_ie_id, &nbap_ProtocolIE_ID_vals_ext, "unknown (%d)"));
}
+
return offset;
}
@@ -8197,8 +8645,14 @@ dissect_nbap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_nbap_T_shortTransActionId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 116 "./asn1/nbap/nbap.cnf"
+ guint32 transaction_id;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 0U, 127U, &TransactionID, FALSE);
+ 0U, 127U, &transaction_id, FALSE);
+
+ private_data_set_transaction_id(actx->pinfo, transaction_id);
+
+
return offset;
}
@@ -8207,8 +8661,14 @@ dissect_nbap_T_shortTransActionId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_nbap_T_longTransActionId(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"
+ guint32 transaction_id;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 0U, 32767U, &TransactionID, FALSE);
+ 0U, 32767U, &transaction_id, FALSE);
+
+ private_data_set_transaction_id(actx->pinfo, transaction_id);
+
+
return offset;
}
@@ -8474,10 +8934,14 @@ 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 784 "./asn1/nbap/nbap.cnf"
+#line 802 "./asn1/nbap/nbap.cnf"
+ guint32 ul_scrambling_code;
+ guint32 com_context_id;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 16777215U, &ul_scrambling_code, FALSE);
+ private_data_set_ul_scrambling_code(actx->pinfo, ul_scrambling_code);
+ com_context_id = private_data_get_com_context_id(actx->pinfo);
if(ul_scrambling_code != 0 && com_context_id != 0) {
wmem_tree_insert32(nbap_scrambling_code_crncc_map,ul_scrambling_code,GUINT_TO_POINTER(com_context_id));
}
@@ -8740,12 +9204,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 755 "./asn1/nbap/nbap.cnf"
-
+#line 767 "./asn1/nbap/nbap.cnf"
+ guint32 e_dch_macdflow_id;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxNrOfEDCHMACdFlows_1, &e_dch_macdflow_id, FALSE);
-
+ private_data_set_e_dch_macdflow_id(actx->pinfo, e_dch_macdflow_id);
@@ -8756,7 +9220,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 768 "./asn1/nbap/nbap.cnf"
+#line 786 "./asn1/nbap/nbap.cnf"
tvbuff_t *parameter_tvb=NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -8767,8 +9231,8 @@ dissect_nbap_BindingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
return offset;
if(tvb_reported_length(parameter_tvb)>=2){
- BindingID_port = tvb_get_ntohs(parameter_tvb,0);
- proto_item_append_text(actx->created_item, " (%u)",BindingID_port);
+ private_data_set_binding_id_port(actx->pinfo, tvb_get_ntohs(parameter_tvb,0));
+ proto_item_append_text(actx->created_item, " (%u)",private_data_get_binding_id_port(actx->pinfo));
}
@@ -8780,7 +9244,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 661 "./asn1/nbap/nbap.cnf"
+#line 663 "./asn1/nbap/nbap.cnf"
tvbuff_t *parameter_tvb=NULL;
proto_item *item;
proto_tree *subtree, *nsap_tree;
@@ -8799,7 +9263,7 @@ dissect_nbap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
if (tvb_len==4){
/* IPv4 */
proto_tree_add_item(subtree, hf_nbap_transportLayerAddress_ipv4, parameter_tvb, 0, tvb_len, ENC_BIG_ENDIAN);
- transportLayerAddress_ipv4 = tvb_get_ipv4(parameter_tvb, 0);
+ private_data_set_transportLayerAddress_ipv4(actx->pinfo, tvb_get_ipv4(parameter_tvb, 0));
}
if (tvb_len==16){
/* IPv6 */
@@ -8822,7 +9286,7 @@ dissect_nbap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
nsap_tree = proto_item_add_subtree(item, ett_nbap_TransportLayerAddress_nsap);
if(tvb_get_ntoh24(parameter_tvb,0) == 0x350001){
/* IPv4 */
- transportLayerAddress_ipv4 = tvb_get_ipv4(parameter_tvb, 3);
+ private_data_set_transportLayerAddress_ipv4(actx->pinfo, tvb_get_ipv4(parameter_tvb, 3));
}
dissect_nsap(nsap_tvb, 0, 20, nsap_tree);
}
@@ -10101,12 +10565,8 @@ 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 2246 "./asn1/nbap/nbap.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 0U, 255U, &cfn, FALSE);
-
-
-
+ 0U, 255U, NULL, FALSE);
return offset;
}
@@ -10354,16 +10814,20 @@ 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 2208 "./asn1/nbap/nbap.cnf"
+#line 2347 "./asn1/nbap/nbap.cnf"
+ gint 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;
+nbap_hsdsch_channel_info_t* nbap_hsdsch_channel_info;
+nbap_hsdsch_channel_info = private_data_get_nbap_hsdsch_channel_info(actx->pinfo);
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 65535U, &hrnti, FALSE);
+ private_data_set_hrnti(actx->pinfo, hrnti);
if (actx->pinfo->fd->flags.visited){
return offset;
@@ -10381,7 +10845,7 @@ int i;
DISSECTOR_ASSERT(umts_fp_conversation_info != NULL);
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;
+ fp_hsdsch_channel_info->hrnti = private_data_get_hrnti(actx->pinfo);
}
}
}
@@ -10598,10 +11062,14 @@ 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 750 "./asn1/nbap/nbap.cnf"
+#line 758 "./asn1/nbap/nbap.cnf"
+ guint32 commontransportchannelid;
+ nbap_dch_channel_info_t* nbap_dch_chnl_info;
+ nbap_dch_chnl_info = private_data_get_nbap_dch_chnl_info(actx->pinfo);
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &commontransportchannelid, FALSE);
+private_data_set_common_transport_channel_id(actx->pinfo, commontransportchannelid);
if(commontransportchannelid<maxNrOfDCHs)
nbap_dch_chnl_info[commontransportchannelid].next_dch = 0;
@@ -11409,10 +11877,14 @@ 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 745 "./asn1/nbap/nbap.cnf"
+#line 749 "./asn1/nbap/nbap.cnf"
+guint32 commonphysicalchannelid;
+nbap_dch_channel_info_t* nbap_dch_chnl_info;
+nbap_dch_chnl_info = private_data_get_nbap_dch_chnl_info(actx->pinfo);
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &commonphysicalchannelid, FALSE);
+private_data_set_common_physical_channel_id(actx->pinfo, commonphysicalchannelid);
if(commonphysicalchannelid<maxNrOfDCHs)
nbap_dch_chnl_info[commonphysicalchannelid].next_dch = 0;
@@ -11579,14 +12051,15 @@ 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 2065 "./asn1/nbap/nbap.cnf"
-
+#line 2190 "./asn1/nbap/nbap.cnf"
+guint32 common_macdflow_id;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxNrOfCommonMACFlows_1, &common_macdflow_id, FALSE);
+private_data_set_common_macdflow_id(actx->pinfo, common_macdflow_id);
-/*hsdsch_macdflow_ids[num_items-1] = hsdsch_macdflow_id;*/
+/*hsdsch_macdflow_ids[private_data_get_num_items(actx->pinfo)-1] = private_data_get_hsdsch_macdflow_id(actx->pinfo);*/
/*THIS STUFF IST NOT DONE YET!*/
@@ -11661,7 +12134,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 709 "./asn1/nbap/nbap.cnf"
+#line 711 "./asn1/nbap/nbap.cnf"
guint32 payload_crc_value;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
@@ -11669,9 +12142,9 @@ guint32 payload_crc_value;
if(payload_crc_value == 0){
- g_nbap_msg_info_for_fp.dch_crc_present = TRUE;
+ private_data_set_dch_crc_present(actx->pinfo, TRUE);
}else{
- g_nbap_msg_info_for_fp.dch_crc_present = FALSE;
+ private_data_set_dch_crc_present(actx->pinfo, FALSE);
}
@@ -11713,14 +12186,20 @@ 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 1705 "./asn1/nbap/nbap.cnf"
- /* Set logical channel id for this entry*/
+#line 1801 "./asn1/nbap/nbap.cnf"
+ guint32 logical_channel_id;
+ guint num_items;
+ nbap_edch_channel_info_t* nbap_edch_channel_info;
+ nbap_edch_channel_info = private_data_get_nbap_edch_channel_info(actx->pinfo);
+ /* Set logical channel id for this entry*/
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 15U, &logical_channel_id, FALSE);
+ private_data_set_logical_channel_id(actx->pinfo, logical_channel_id);
+ num_items = private_data_get_num_items(actx->pinfo);
if(num_items>0)
- nbap_edch_channel_info[e_dch_macdflow_id].lchId[num_items-1] = logical_channel_id;
+ nbap_edch_channel_info[private_data_get_e_dch_macdflow_id(actx->pinfo)].lchId[num_items-1] = private_data_get_logical_channel_id(actx->pinfo);
@@ -11731,10 +12210,14 @@ 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 1807 "./asn1/nbap/nbap.cnf"
+#line 1919 "./asn1/nbap/nbap.cnf"
+guint32 hsdsch_macdflow_id;
+nbap_hsdsch_channel_info_t* nbap_hsdsch_channel_info;
+nbap_hsdsch_channel_info = private_data_get_nbap_hsdsch_channel_info(actx->pinfo);
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 1504U, NULL, TRUE);
+ hsdsch_macdflow_id = private_data_get_hsdsch_macdflow_id(actx->pinfo);
if(nbap_hsdsch_channel_info[hsdsch_macdflow_id].crnc_port != 0){
nbap_hsdsch_channel_info[hsdsch_macdflow_id].entity = ehs;
}
@@ -12154,26 +12637,33 @@ 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 2072 "./asn1/nbap/nbap.cnf"
+#line 2198 "./asn1/nbap/nbap.cnf"
address dst_addr;
- transportLayerAddress_ipv4 = 0;
- BindingID_port = 0;
- num_items++;
+ guint32 transportLayerAddress_ipv4;
+ guint16 bindingID;
+ guint32 common_macdflow_id;
+ private_data_set_transportLayerAddress_ipv4(actx->pinfo, 0);
+ private_data_set_binding_id_port(actx->pinfo, 0);
+ private_data_increment_num_items(actx->pinfo);
+ nbap_common_channel_info_t* nbap_common_channel_info;
+ nbap_common_channel_info = private_data_get_nbap_common_channel_info(actx->pinfo);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_CommonMACFlow_Specific_InfoItem, CommonMACFlow_Specific_InfoItem_sequence);
- if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0)
- {
+ transportLayerAddress_ipv4 = private_data_get_transportLayerAddress_ipv4(actx->pinfo);
+ bindingID = private_data_get_binding_id_port(actx->pinfo);
+ if (actx->pinfo->fd->flags.visited || transportLayerAddress_ipv4 == 0 || bindingID == 0){
return offset;
}
set_address(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4);
/* Set address for collection of common entries */
+ common_macdflow_id = private_data_get_common_macdflow_id(actx->pinfo);
copy_address(&(nbap_common_channel_info[common_macdflow_id].crnc_address),&dst_addr);
- nbap_common_channel_info[common_macdflow_id].crnc_port = BindingID_port;
+ nbap_common_channel_info[common_macdflow_id].crnc_port = private_data_get_binding_id_port(actx->pinfo);
@@ -12199,17 +12689,23 @@ 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 1695 "./asn1/nbap/nbap.cnf"
+#line 1785 "./asn1/nbap/nbap.cnf"
+guint32 mac_d_pdu_size;
+guint num_items;
+nbap_edch_channel_info_t* nbap_edch_channel_info;
+nbap_edch_channel_info = private_data_get_nbap_edch_channel_info(actx->pinfo);
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 1U, 5000U, &MACdPDU_Size, TRUE);
+ 1U, 5000U, &mac_d_pdu_size, TRUE);
+ private_data_set_mac_d_pdu_size(actx->pinfo, mac_d_pdu_size);
if (actx->pinfo->fd->flags.visited)
{
return offset;
}
+ num_items = private_data_get_num_items(actx->pinfo);
if(num_items>0)
- nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[num_items-1] = MACdPDU_Size;
+ nbap_edch_channel_info[private_data_get_e_dch_macdflow_id(actx->pinfo)].edch_macd_pdu_size[num_items-1] = private_data_get_mac_d_pdu_size(actx->pinfo);
@@ -12506,27 +13002,31 @@ static const per_sequence_t CommonTransportChannel_InformationResponse_sequence[
static int
dissect_nbap_CommonTransportChannel_InformationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 175 "./asn1/nbap/nbap.cnf"
+#line 184 "./asn1/nbap/nbap.cnf"
address dst_addr;
nbap_setup_conv_t *request_conv;
conversation_t *conv;
+guint32 transportLayerAddress_ipv4;
+guint16 bindingID;
nbap_debug("Frame %u CommonTransportChannel-InformationResponse Start", actx->pinfo->num);
-transportLayerAddress_ipv4 = 0;
-BindingID_port = 0;
+private_data_set_transportLayerAddress_ipv4(actx->pinfo, 0);
+private_data_set_binding_id_port(actx->pinfo, 0);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_CommonTransportChannel_InformationResponse, CommonTransportChannel_InformationResponse_sequence);
- if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0){
+ transportLayerAddress_ipv4 = private_data_get_transportLayerAddress_ipv4(actx->pinfo);
+ bindingID = private_data_get_binding_id_port(actx->pinfo);
+ if (actx->pinfo->fd->flags.visited || transportLayerAddress_ipv4 == 0 || bindingID == 0){
return offset;
}
set_address(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4);
- request_conv = find_setup_conv(TransactionID, ddMode, commontransportchannelid);
+ request_conv = find_setup_conv(private_data_get_transaction_id(actx->pinfo),private_data_get_dd_mode(actx->pinfo),private_data_get_common_transport_channel_id(actx->pinfo));
if(request_conv == NULL){
return offset;
@@ -12534,7 +13034,7 @@ BindingID_port = 0;
conv = request_conv->conv;
conversation_set_addr2(conv, &dst_addr);
- conversation_set_port2(conv, BindingID_port);
+ conversation_set_port2(conv, bindingID);
delete_setup_conv(request_conv);
nbap_debug(" Frame %u conversation setup frame: %u %s:%u -> %s:%u", actx->pinfo->num, conv->setup_frame,
@@ -13457,11 +13957,13 @@ 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 2182 "./asn1/nbap/nbap.cnf"
+#line 2317 "./asn1/nbap/nbap.cnf"
+guint32 com_context_id;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 1048575U, &com_context_id, FALSE);
-crcn_context_present = TRUE;
+private_data_set_com_context_id(actx->pinfo, com_context_id);
+private_data_set_crnc_context_present(actx->pinfo, TRUE);
@@ -14842,9 +15344,15 @@ dissect_nbap_DATA_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
static int
dissect_nbap_DCH_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 722 "./asn1/nbap/nbap.cnf"
+ guint32 t_dch_id;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &t_dch_id, FALSE);
+ private_data_set_t_dch_id(actx->pinfo, t_dch_id);
+
+
+
return offset;
}
@@ -14889,17 +15397,21 @@ 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 727 "./asn1/nbap/nbap.cnf"
-
+ guint32 dch_id;
+ gint num_dch_in_flow;
+ nbap_dch_channel_info_t* nbap_dch_chnl_info;
+ nbap_dch_chnl_info = private_data_get_nbap_dch_chnl_info(actx->pinfo);
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, &dch_id, FALSE);
- if(g_num_dch_in_flow>0){
- 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;
- }
- }
+ num_dch_in_flow = private_data_get_num_dch_in_flow(actx->pinfo);
+ private_data_set_dch_id(actx->pinfo, dch_id);
+ if(num_dch_in_flow>0){
+ nbap_dch_chnl_info[dch_id].next_dch = 0;
+ if(private_data_get_prev_dch_id(actx->pinfo) != 0){
+ nbap_dch_chnl_info[private_data_get_prev_dch_id(actx->pinfo)].next_dch = dch_id;
+ }
+ }
@@ -14910,15 +15422,25 @@ 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 1116 "./asn1/nbap/nbap.cnf"
+#line 1171 "./asn1/nbap/nbap.cnf"
guint32 NrOfTransportBlocks;
+guint num_items;
+guint32 dch_id;
+guint32 common_physical_channel_id;
+guint32 common_transport_channel_id;
+nbap_dch_channel_info_t* nbap_dch_chnl_info;
+nbap_dch_chnl_info = private_data_get_nbap_dch_chnl_info(actx->pinfo);
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 512U, &NrOfTransportBlocks, FALSE);
- if(num_items>0){
- switch(transportFormatSet_type){
+ if(private_data_get_num_items(actx->pinfo)>0){
+ num_items = private_data_get_num_items(actx->pinfo);
+ dch_id = private_data_get_dch_id(actx->pinfo);
+ common_physical_channel_id = private_data_get_common_physical_channel_id(actx->pinfo);
+ common_transport_channel_id = private_data_get_common_transport_channel_id(actx->pinfo);
+ switch(private_data_get_transport_format_set_type(actx->pinfo)){
case NBAP_DCH_UL:
nbap_dch_chnl_info[dch_id].num_ul_chans++;
nbap_dch_chnl_info[dch_id].ul_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
@@ -14928,16 +15450,16 @@ guint32 NrOfTransportBlocks;
nbap_dch_chnl_info[dch_id].dl_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
break;
case NBAP_CPCH:
- nbap_dch_chnl_info[commonphysicalchannelid].num_ul_chans++;
- nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
- nbap_dch_chnl_info[commonphysicalchannelid].num_dl_chans++;
- nbap_dch_chnl_info[commonphysicalchannelid].dl_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
+ nbap_dch_chnl_info[common_physical_channel_id].num_ul_chans++;
+ nbap_dch_chnl_info[common_physical_channel_id].ul_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
+ nbap_dch_chnl_info[common_physical_channel_id].num_dl_chans++;
+ nbap_dch_chnl_info[common_physical_channel_id].dl_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
break;
case NBAP_PCH:
- nbap_dch_chnl_info[commontransportchannelid].num_ul_chans++;
- nbap_dch_chnl_info[commontransportchannelid].ul_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
- nbap_dch_chnl_info[commontransportchannelid].num_dl_chans++;
- nbap_dch_chnl_info[commontransportchannelid].dl_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
+ nbap_dch_chnl_info[common_transport_channel_id].num_ul_chans++;
+ nbap_dch_chnl_info[common_transport_channel_id].ul_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
+ nbap_dch_chnl_info[common_transport_channel_id].num_dl_chans++;
+ nbap_dch_chnl_info[common_transport_channel_id].dl_chan_num_tbs[num_items-1] = NrOfTransportBlocks;
break;
default:
break;
@@ -14953,15 +15475,25 @@ 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 1148 "./asn1/nbap/nbap.cnf"
+#line 1213 "./asn1/nbap/nbap.cnf"
guint32 TransportBlockSize;
+guint num_items;
+guint32 dch_id;
+guint32 common_physical_channel_id;
+guint32 common_transport_channel_id;
+nbap_dch_channel_info_t* nbap_dch_chnl_info;
+nbap_dch_chnl_info = private_data_get_nbap_dch_chnl_info(actx->pinfo);
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 5000U, &TransportBlockSize, FALSE);
- if(num_items>0){
- switch(transportFormatSet_type){
+ if(private_data_get_num_items(actx->pinfo)>0){
+ num_items = private_data_get_num_items(actx->pinfo);
+ dch_id = private_data_get_dch_id(actx->pinfo);
+ common_physical_channel_id = private_data_get_common_physical_channel_id(actx->pinfo);
+ common_transport_channel_id = private_data_get_common_transport_channel_id(actx->pinfo);
+ switch(private_data_get_transport_format_set_type(actx->pinfo)){
case NBAP_DCH_UL:
nbap_dch_chnl_info[dch_id].ul_chan_tf_size[num_items-1] = TransportBlockSize;
break;
@@ -14969,12 +15501,12 @@ guint32 TransportBlockSize;
nbap_dch_chnl_info[dch_id].dl_chan_tf_size[num_items-1] = TransportBlockSize;
break;
case NBAP_CPCH:
- nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_tf_size[num_items-1] = TransportBlockSize;
- nbap_dch_chnl_info[commonphysicalchannelid].dl_chan_tf_size[num_items-1] = TransportBlockSize;
+ nbap_dch_chnl_info[common_physical_channel_id].ul_chan_tf_size[num_items-1] = TransportBlockSize;
+ nbap_dch_chnl_info[common_physical_channel_id].dl_chan_tf_size[num_items-1] = TransportBlockSize;
break;
case NBAP_PCH:
- nbap_dch_chnl_info[commontransportchannelid].ul_chan_tf_size[num_items-1] = TransportBlockSize;
- nbap_dch_chnl_info[commontransportchannelid].dl_chan_tf_size[num_items-1] = TransportBlockSize;
+ nbap_dch_chnl_info[common_transport_channel_id].ul_chan_tf_size[num_items-1] = TransportBlockSize;
+ nbap_dch_chnl_info[common_transport_channel_id].dl_chan_tf_size[num_items-1] = TransportBlockSize;
break;
default:
break;
@@ -15081,8 +15613,8 @@ 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 1112 "./asn1/nbap/nbap.cnf"
- num_items++;
+#line 1167 "./asn1/nbap/nbap.cnf"
+ private_data_increment_num_items(actx->pinfo);
@@ -15099,8 +15631,8 @@ 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 1109 "./asn1/nbap/nbap.cnf"
- num_items = 0;
+#line 1164 "./asn1/nbap/nbap.cnf"
+ private_data_set_num_items(actx->pinfo, 0);
offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
@@ -15270,9 +15802,11 @@ 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 1087 "./asn1/nbap/nbap.cnf"
- transportFormatSet_type = NBAP_DCH_UL;
- nbap_dch_chnl_info[dch_id].num_ul_chans = 0;
+#line 1132 "./asn1/nbap/nbap.cnf"
+ nbap_dch_channel_info_t* nbap_dch_chnl_info;
+ nbap_dch_chnl_info = private_data_get_nbap_dch_chnl_info(actx->pinfo);
+ private_data_set_transport_format_set_type(actx->pinfo, NBAP_DCH_UL);
+ nbap_dch_chnl_info[private_data_get_dch_id(actx->pinfo)].num_ul_chans = 0;
offset = dissect_nbap_TransportFormatSet(tvb, offset, actx, tree, hf_index);
@@ -15284,9 +15818,11 @@ 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 1091 "./asn1/nbap/nbap.cnf"
- transportFormatSet_type = NBAP_DCH_DL;
- nbap_dch_chnl_info[dch_id].num_dl_chans = 0;
+#line 1138 "./asn1/nbap/nbap.cnf"
+ nbap_dch_channel_info_t* nbap_dch_chnl_info;
+ nbap_dch_chnl_info = private_data_get_nbap_dch_chnl_info(actx->pinfo);
+ private_data_set_transport_format_set_type(actx->pinfo, NBAP_DCH_DL);
+ nbap_dch_chnl_info[private_data_get_dch_id(actx->pinfo)].num_dl_chans = 0;
offset = dissect_nbap_TransportFormatSet(tvb, offset, actx, tree, hf_index);
@@ -15334,15 +15870,15 @@ 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 1081 "./asn1/nbap/nbap.cnf"
- g_num_dch_in_flow++;
+#line 1126 "./asn1/nbap/nbap.cnf"
+ private_data_increment_num_dch_in_flow(actx->pinfo);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_DCH_Specific_FDD_Item, DCH_Specific_FDD_Item_sequence);
-#line 1084 "./asn1/nbap/nbap.cnf"
- prev_dch_id = dch_id;
+#line 1129 "./asn1/nbap/nbap.cnf"
+ private_data_set_prev_dch_id(actx->pinfo,private_data_get_dch_id(actx->pinfo));
return offset;
@@ -15355,9 +15891,9 @@ 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 1077 "./asn1/nbap/nbap.cnf"
- g_num_dch_in_flow = 0;
- prev_dch_id = 0;
+#line 1122 "./asn1/nbap/nbap.cnf"
+ private_data_set_num_dch_in_flow(actx->pinfo, 0);
+ private_data_set_prev_dch_id(actx->pinfo, 0);
offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
@@ -15634,11 +16170,11 @@ 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 740 "./asn1/nbap/nbap.cnf"
+#line 744 "./asn1/nbap/nbap.cnf"
offset = dissect_nbap_DCH_ID(tvb, offset, actx, tree, hf_index);
- dch_id = t_dch_id;
+ private_data_set_dch_id(actx->pinfo, private_data_get_t_dch_id(actx->pinfo));
@@ -15649,9 +16185,11 @@ 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 1095 "./asn1/nbap/nbap.cnf"
- transportFormatSet_type = NBAP_DCH_UL;
- nbap_dch_chnl_info[dch_id].num_ul_chans = 0;
+#line 1144 "./asn1/nbap/nbap.cnf"
+ nbap_dch_channel_info_t* nbap_dch_chnl_info;
+ nbap_dch_chnl_info = private_data_get_nbap_dch_chnl_info(actx->pinfo);
+ private_data_set_transport_format_set_type(actx->pinfo, NBAP_DCH_UL);
+ nbap_dch_chnl_info[private_data_get_dch_id(actx->pinfo)].num_ul_chans = 0;
offset = dissect_nbap_TransportFormatSet(tvb, offset, actx, tree, hf_index);
@@ -15663,9 +16201,11 @@ 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 1099 "./asn1/nbap/nbap.cnf"
- transportFormatSet_type = NBAP_DCH_DL;
- nbap_dch_chnl_info[dch_id].num_dl_chans = 0;
+#line 1150 "./asn1/nbap/nbap.cnf"
+ nbap_dch_channel_info_t* nbap_dch_chnl_info;
+ nbap_dch_chnl_info = private_data_get_nbap_dch_chnl_info(actx->pinfo);
+ private_data_set_transport_format_set_type(actx->pinfo, NBAP_DCH_DL);
+ nbap_dch_chnl_info[private_data_get_dch_id(actx->pinfo)].num_dl_chans = 0;
offset = dissect_nbap_TransportFormatSet(tvb, offset, actx, tree, hf_index);
@@ -15719,12 +16259,12 @@ 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 1175 "./asn1/nbap/nbap.cnf"
+#line 1250 "./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);
- /*g_warning("I'm going to modify dch_id: %d and t_dch_id: %d", dch_id, t_dch_id);
+ /*g_warning("I'm going to modify dch_id: %d and t_dch_id: %d",private_data_get_dch_id(actx->pinfo),private_data_get_t_dch_id(actx->pinfo));
*/
@@ -18141,18 +18681,23 @@ 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 1684 "./asn1/nbap/nbap.cnf"
-
+#line 1769 "./asn1/nbap/nbap.cnf"
+ guint32 e_dch_ddi_value;
+ guint num_items;
+ nbap_edch_channel_info_t* nbap_edch_channel_info;
+ nbap_edch_channel_info = private_data_get_nbap_edch_channel_info(actx->pinfo);
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 62U, &e_dch_ddi_value, FALSE);
- if (actx->pinfo->fd->flags.visited)
- {
- return offset;
- }
- if(num_items>0)
- nbap_edch_channel_info[e_dch_macdflow_id].edch_ddi[num_items-1] = e_dch_ddi_value;
+ private_data_set_e_dch_ddi_value(actx->pinfo, e_dch_ddi_value);
+ if (actx->pinfo->fd->flags.visited)
+ {
+ return offset;
+ }
+ num_items = private_data_get_num_items(actx->pinfo);
+ if(num_items>0)
+ nbap_edch_channel_info[private_data_get_e_dch_macdflow_id(actx->pinfo)].edch_ddi[num_items-1] = private_data_get_e_dch_ddi_value(actx->pinfo);
@@ -18276,8 +18821,8 @@ 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 1681 "./asn1/nbap/nbap.cnf"
- num_items++;
+#line 1766 "./asn1/nbap/nbap.cnf"
+ private_data_increment_num_items(actx->pinfo);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -18293,15 +18838,17 @@ 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 1674 "./asn1/nbap/nbap.cnf"
- num_items = 0;
+#line 1757 "./asn1/nbap/nbap.cnf"
+ private_data_set_num_items(actx->pinfo, 0);
+ nbap_edch_channel_info_t* nbap_edch_channel_info;
+ nbap_edch_channel_info = private_data_get_nbap_edch_channel_info(actx->pinfo);
offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
ett_nbap_E_DCH_LogicalChannelInformation, E_DCH_LogicalChannelInformation_sequence_of,
1, maxNoOfLogicalChannels, FALSE);
-nbap_edch_channel_info[e_dch_macdflow_id].no_ddi_entries = num_items;
+nbap_edch_channel_info[private_data_get_e_dch_macdflow_id(actx->pinfo)].no_ddi_entries = private_data_get_num_items(actx->pinfo);
@@ -18326,12 +18873,15 @@ 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 1416 "./asn1/nbap/nbap.cnf"
+#line 1502 "./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;
+guint32 e_dch_macdflow_id;
+nbap_edch_channel_info_t* nbap_edch_channel_info;
+nbap_edch_channel_info = private_data_get_nbap_edch_channel_info(actx->pinfo);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_E_DCH_MACdFlow_Specific_InfoItem, E_DCH_MACdFlow_Specific_InfoItem_sequence);
@@ -18342,6 +18892,7 @@ guint32 no_ddi_entries, i;
}
/* Check if we have conversation info */
+ e_dch_macdflow_id = private_data_get_e_dch_macdflow_id(actx->pinfo);
clear_address(&null_addr);
p_conv = find_conversation(actx->pinfo->num, &nbap_edch_channel_info[e_dch_macdflow_id].crnc_address, &null_addr,
PT_UDP,
@@ -18359,24 +18910,17 @@ guint32 no_ddi_entries, i;
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++) {
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];
- 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],
- nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[i]
- );*/
+ fp_edch_channel_info->edch_lchId[i] = nbap_edch_channel_info[e_dch_macdflow_id].lchId[i];
}
-/* copy_address(&(nbap_edch_port_info->crnc_address[e_dch_macdflow_id]),&dst_addr);*/
- p_conv_data->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present;
+ p_conv_data->dch_crc_present = private_data_get_dch_crc_present(actx->pinfo);
/* Figure out which type of E-DCH frame, based on DDI value (DDI = 0 => type 2)*/
- if( 0 == e_dch_ddi_value ){
+ if( 0 == private_data_get_e_dch_ddi_value(actx->pinfo) ){
fp_edch_channel_info->edch_type = 1; /* 1 means T2 */
}else{
/*Value 1-5 means T1*/
@@ -18384,7 +18928,7 @@ guint32 no_ddi_entries, i;
}
/* use to display e_dch_macdflow_id */
p_conv_data->num_dch_in_flow = 1;
- p_conv_data->dch_ids_in_flow_list[0] = e_dch_macdflow_id;
+ p_conv_data->dch_ids_in_flow_list[0] = private_data_get_e_dch_macdflow_id(actx->pinfo);
@@ -18515,12 +19059,12 @@ 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 1669 "./asn1/nbap/nbap.cnf"
+#line 1752 "./asn1/nbap/nbap.cnf"
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_E_DCH_LogicalChannelToModifyItem, E_DCH_LogicalChannelToModifyItem_sequence);
-num_items++;
+private_data_increment_num_items(actx->pinfo);
@@ -18590,15 +19134,18 @@ 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 1571 "./asn1/nbap/nbap.cnf"
+#line 1659 "./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;
+guint32 e_dch_macdflow_id;
+nbap_edch_channel_info_t* nbap_edch_channel_info;
+nbap_edch_channel_info = private_data_get_nbap_edch_channel_info(actx->pinfo);
-num_items = 1;
+private_data_set_num_items(actx->pinfo, 1);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_E_DCH_MACdFlow_Specific_InfoItem_to_Modify, E_DCH_MACdFlow_Specific_InfoItem_to_Modify_sequence);
@@ -18613,33 +19160,32 @@ num_items = 1;
/****** Look up old port and ip information since this is not included in this message ******/
/*Find proper communication context ID*/
- if(crcn_context_present){
- /*umts_fp_conversation_info->com_context_id = com_context_id;*/
+ if(private_data_get_crnc_context_present(actx->pinfo)){
+ /*umts_fp_conversation_info->com_context_id = private_data_get_com_context_id(actx->pinfo);*/
}else{
nbap_com_context_id_t * cur_val;
- if((cur_val=(nbap_com_context_id_t *)wmem_tree_lookup32(com_context_map, node_b_com_context_id)) != NULL){
- com_context_id= cur_val->crnc_context;
+ if((cur_val=(nbap_com_context_id_t *)wmem_tree_lookup32(com_context_map,private_data_get_node_b_com_context_id(actx->pinfo))) != NULL){
+ private_data_set_com_context_id(actx->pinfo, cur_val->crnc_context);
}else{
expert_add_info(actx->pinfo, NULL, &ei_nbap_no_find_comm_context_id);
}
}
/*This should not happen*/
- if(( old_info = (nbap_edch_port_info_t *)wmem_tree_lookup32(edch_flow_port_map, com_context_id)) == NULL ){
+ if(( old_info = (nbap_edch_port_info_t *)wmem_tree_lookup32(edch_flow_port_map,private_data_get_com_context_id(actx->pinfo))) == NULL ){
expert_add_info(actx->pinfo, NULL, &ei_nbap_no_find_port_info);
return offset;
}
- nbap_debug(" Found com_context_id %u", com_context_id);
+ nbap_debug(" Found com_context_id %u",private_data_get_com_context_id(actx->pinfo));
/*Set the appropriate port, cheat and use same variable.*/
- BindingID_port = old_info->crnc_port[e_dch_macdflow_id];
+ e_dch_macdflow_id = private_data_get_e_dch_macdflow_id(actx->pinfo);
+ private_data_set_binding_id_port(actx->pinfo, old_info->crnc_port[e_dch_macdflow_id]);
- nbap_debug(" Port %u loaded from old_info->crnc_port[e_dch_macdflow_id %u]",
- BindingID_port,
- e_dch_macdflow_id);
+ nbap_debug(" Port %u loaded from old_info->crnc_port[e_dch_macdflow_id %u]",private_data_get_binding_id_port(actx->pinfo), e_dch_macdflow_id);
/*TODO: Fix this for ipv6 as well!*/
- transportLayerAddress_ipv4 = old_info->crnc_address;
+ private_data_set_transportLayerAddress_ipv4(actx->pinfo, old_info->crnc_address);
/*Do the configurations*/
/* Check if we have conversation info */
@@ -18660,24 +19206,17 @@ num_items = 1;
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++) {
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];
- 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],
- nbap_edch_channel_info[e_dch_macdflow_id].edch_macd_pdu_size[i]
- );*/
+ fp_edch_channel_info->edch_lchId[i] = nbap_edch_channel_info[e_dch_macdflow_id].lchId[i];
}
-/* copy_address(&(nbap_edch_port_info->crnc_address[e_dch_macdflow_id]),&dst_addr);*/
- p_conv_data->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present;
+ p_conv_data->dch_crc_present = private_data_get_dch_crc_present(actx->pinfo);
/* Figure out which type of E-DCH frame, based on DDI value (DDI = 0 => type 2)*/
- if( 0 == e_dch_ddi_value ){
+ if( 0 == private_data_get_e_dch_ddi_value(actx->pinfo) ){
fp_edch_channel_info->edch_type = 1; /* 1 means T2 */
}else{
/*Value 1-5 means T1*/
@@ -18738,23 +19277,29 @@ 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 1475 "./asn1/nbap/nbap.cnf"
+#line 1558 "./asn1/nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation,*old_conversation = NULL;
umts_fp_conversation_info_t *umts_fp_conversation_info _U_;
fp_edch_channel_info_t* fp_edch_channel_info;
void *conv_proto_data = NULL;
+guint32 transportLayerAddress_ipv4;
+guint16 bindingID;
+guint32 e_dch_macdflow_id;
+nbap_edch_channel_info_t* nbap_edch_channel_info;
+nbap_edch_channel_info = private_data_get_nbap_edch_channel_info(actx->pinfo);
-transportLayerAddress_ipv4 = 0;
-BindingID_port = 0;
+private_data_set_transportLayerAddress_ipv4(actx->pinfo, 0);
+private_data_set_binding_id_port(actx->pinfo, 0);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_E_DCH_FDD_Information_to_Modify, E_DCH_FDD_Information_to_Modify_sequence);
- if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0)
- {
+ transportLayerAddress_ipv4 = private_data_get_transportLayerAddress_ipv4(actx->pinfo);
+ bindingID = private_data_get_binding_id_port(actx->pinfo);
+ if (actx->pinfo->fd->flags.visited || transportLayerAddress_ipv4 == 0 || bindingID == 0){
return offset;
}
/*
@@ -18766,24 +19311,22 @@ BindingID_port = 0;
set_address(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4);
old_conversation = find_conversation(actx->pinfo->num,&dst_addr,
- &null_addr, PT_UDP, BindingID_port,
+ &null_addr, PT_UDP, bindingID,
0, NO_ADDR_B|NO_PORT_B);
if(old_conversation){
nbap_debug("Frame %u E-DCH-FDD-Information-to-Modify: found old conv on IP %s Port %u",
actx->pinfo->num,
- address_to_str(wmem_packet_scope(), &dst_addr),
- BindingID_port);
+ address_to_str(wmem_packet_scope(), &dst_addr), bindingID);
}else{
nbap_debug("Frame %u E-DCH-FDD-Information-to-Modify: Did not find old conv on IP %s Port %u",
actx->pinfo->num,
- address_to_str(wmem_packet_scope(), &dst_addr),
- BindingID_port);
+ address_to_str(wmem_packet_scope(), &dst_addr), bindingID);
}
/* It's not part of any conversation - create a new one. */
conversation = conversation_new(actx->pinfo->num, &dst_addr,
- &null_addr, PT_UDP,BindingID_port ,
+ &null_addr, PT_UDP, bindingID,
0, NO_ADDR2|NO_PORT2);
/* Set dissector */
@@ -18803,7 +19346,7 @@ BindingID_port = 0;
umts_fp_conversation_info->dl_frame_number = 0;
umts_fp_conversation_info->ul_frame_number = actx->pinfo->num;
copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &dst_addr);
- umts_fp_conversation_info->crnc_port = BindingID_port;
+ umts_fp_conversation_info->crnc_port = bindingID;
umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN;
@@ -18811,12 +19354,12 @@ BindingID_port = 0;
fp_edch_channel_info = wmem_new0(wmem_file_scope(), fp_edch_channel_info_t);
umts_fp_conversation_info->channel_specific_info = (void*)fp_edch_channel_info;
- if(crcn_context_present){
- umts_fp_conversation_info->com_context_id = com_context_id;
+ if(private_data_get_crnc_context_present(actx->pinfo)){
+ umts_fp_conversation_info->com_context_id = private_data_get_com_context_id(actx->pinfo);
}else{
nbap_com_context_id_t * cur_val;
- if((cur_val=(nbap_com_context_id_t *)wmem_tree_lookup32(com_context_map, node_b_com_context_id)) != NULL){
+ if((cur_val=(nbap_com_context_id_t *)wmem_tree_lookup32(com_context_map,private_data_get_node_b_com_context_id(actx->pinfo))) != NULL){
umts_fp_conversation_info->com_context_id = cur_val->crnc_context;
}else{
expert_add_info(actx->pinfo, NULL, &ei_nbap_no_set_comm_context_id);
@@ -18824,8 +19367,9 @@ BindingID_port = 0;
}
/* Set address for collection of DDI entries */
+ e_dch_macdflow_id = private_data_get_e_dch_macdflow_id(actx->pinfo);
copy_address(&(nbap_edch_channel_info[e_dch_macdflow_id].crnc_address),&dst_addr);
- nbap_edch_channel_info[e_dch_macdflow_id].crnc_port = BindingID_port;
+ nbap_edch_channel_info[e_dch_macdflow_id].crnc_port = bindingID;
/*Indicate that the frag table has to be reset*/
@@ -23333,7 +23877,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 860 "./asn1/nbap/nbap.cnf"
+#line 890 "./asn1/nbap/nbap.cnf"
guint32 PICH_Mode = 0;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
4, &PICH_Mode, TRUE, 0, NULL);
@@ -23341,16 +23885,16 @@ guint32 PICH_Mode = 0;
switch(PICH_Mode){
case 0: /* v18 */
- paging_indications = 18;
+ private_data_set_paging_indications(actx->pinfo, 18);
break;
case 1: /* v36 */
- paging_indications = 36;
+ private_data_set_paging_indications(actx->pinfo, 36);
break;
case 2: /* v72 */
- paging_indications = 72;
+ private_data_set_paging_indications(actx->pinfo, 72);
break;
case 3: /* v144 */
- paging_indications = 144;
+ private_data_set_paging_indications(actx->pinfo, 144);
break;
}
@@ -23448,7 +23992,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 2092 "./asn1/nbap/nbap.cnf"
+#line 2225 "./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
@@ -23463,6 +24007,8 @@ 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;
+nbap_common_channel_info_t* nbap_common_channel_info;
+nbap_common_channel_info = private_data_get_nbap_common_channel_info(actx->pinfo);
int i;
@@ -23513,7 +24059,7 @@ int i;
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->common_macdflow_id = private_data_get_common_macdflow_id(actx->pinfo);
fp_hsdsch_channel_info->hsdsch_entity = ehs;
@@ -23594,14 +24140,20 @@ 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 760 "./asn1/nbap/nbap.cnf"
+#line 772 "./asn1/nbap/nbap.cnf"
+ guint32 hsdsch_macdflow_id;
+ guint num_items;
+ gint* hsdsch_macdflow_ids;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, maxNrOfMACdFlows_1, &hsdsch_macdflow_id, FALSE);
+ private_data_set_hsdsch_macdflow_id(actx->pinfo, hsdsch_macdflow_id);
+ num_items = private_data_get_num_items(actx->pinfo);
DISSECTOR_ASSERT(num_items < maxNrOfMACdFlows+1);
DISSECTOR_ASSERT(num_items > 0);
+hsdsch_macdflow_ids = private_data_get_hsdsch_macdflow_ids(actx->pinfo);
hsdsch_macdflow_ids[num_items-1] = hsdsch_macdflow_id;
@@ -23621,28 +24173,34 @@ 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 1785 "./asn1/nbap/nbap.cnf"
-
-
+#line 1891 "./asn1/nbap/nbap.cnf"
address dst_addr;
- transportLayerAddress_ipv4 = 0;
- BindingID_port = 0;
- num_items++;
+ guint32 transportLayerAddress_ipv4;
+ guint16 bindingID;
+ guint32 hsdsch_macdflow_id;
+ nbap_hsdsch_channel_info_t* nbap_hsdsch_channel_info;
+ nbap_hsdsch_channel_info = private_data_get_nbap_hsdsch_channel_info(actx->pinfo);
+
+ private_data_set_transportLayerAddress_ipv4(actx->pinfo, 0);
+ private_data_set_binding_id_port(actx->pinfo, 0);
+ private_data_increment_num_items(actx->pinfo);
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)
- {
+ transportLayerAddress_ipv4 = private_data_get_transportLayerAddress_ipv4(actx->pinfo);
+ bindingID = private_data_get_binding_id_port(actx->pinfo);
+ if (actx->pinfo->fd->flags.visited || transportLayerAddress_ipv4 == 0 || bindingID == 0){
return offset;
}
set_address(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4);
/* Set address for collection of HSDSCH entries */
+ hsdsch_macdflow_id = private_data_get_hsdsch_macdflow_id(actx->pinfo);
copy_address(&(nbap_hsdsch_channel_info[hsdsch_macdflow_id].crnc_address),&dst_addr);
- nbap_hsdsch_channel_info[hsdsch_macdflow_id].crnc_port = BindingID_port;
+ nbap_hsdsch_channel_info[hsdsch_macdflow_id].crnc_port = bindingID;
@@ -23724,20 +24282,21 @@ 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 1712 "./asn1/nbap/nbap.cnf"
+#line 1814 "./asn1/nbap/nbap.cnf"
guint32 rlc_mode;
-
+ nbap_hsdsch_channel_info_t* nbap_hsdsch_channel_info;
+ nbap_hsdsch_channel_info = private_data_get_nbap_hsdsch_channel_info(actx->pinfo);
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2, &rlc_mode, TRUE, 0, NULL);
switch(rlc_mode){
case 0:
/* rLC-AM */
- nbap_hsdsch_channel_info[hsdsch_macdflow_id].rlc_mode = FP_RLC_AM;
+ nbap_hsdsch_channel_info[private_data_get_hsdsch_macdflow_id(actx->pinfo)].rlc_mode = FP_RLC_AM;
break;
case 1:
/* rLC-UM */
- nbap_hsdsch_channel_info[hsdsch_macdflow_id].rlc_mode = FP_RLC_UM;
+ nbap_hsdsch_channel_info[private_data_get_hsdsch_macdflow_id(actx->pinfo)].rlc_mode = FP_RLC_UM;
break;
default:
break;
@@ -23765,8 +24324,8 @@ 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 1776 "./asn1/nbap/nbap.cnf"
- num_items++;
+#line 1882 "./asn1/nbap/nbap.cnf"
+ private_data_increment_num_items(actx->pinfo);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -23799,12 +24358,13 @@ 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 1736 "./asn1/nbap/nbap.cnf"
-
+#line 1841 "./asn1/nbap/nbap.cnf"
int protocol_ie_id;
guint32 i;
- num_items = 0;
- protocol_ie_id = ProtocolIE_ID;
+ private_data_set_num_items(actx->pinfo,0);
+ protocol_ie_id = private_data_get_protocol_ie_id(actx->pinfo);
+ nbap_hsdsch_channel_info_t* nbap_hsdsch_channel_info;
+ nbap_hsdsch_channel_info = private_data_get_nbap_hsdsch_channel_info(actx->pinfo);
/*Handle special cases, when the tree is weird, ie. no useful message appears in the tree, like HSDHSCH-Information-FDD */
@@ -23843,14 +24403,16 @@ 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 1729 "./asn1/nbap/nbap.cnf"
+#line 1832 "./asn1/nbap/nbap.cnf"
guint32 hsdsch_physical_layer_category;
+ nbap_hsdsch_channel_info_t* nbap_hsdsch_channel_info;
+ nbap_hsdsch_channel_info = private_data_get_nbap_hsdsch_channel_info(actx->pinfo);
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 64U, &hsdsch_physical_layer_category, TRUE);
- nbap_hsdsch_channel_info[hsdsch_macdflow_id].hsdsch_physical_layer_category = hsdsch_physical_layer_category;
+ nbap_hsdsch_channel_info[private_data_get_hsdsch_macdflow_id(actx->pinfo)].hsdsch_physical_layer_category = hsdsch_physical_layer_category;
@@ -23911,7 +24473,7 @@ 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 1837 "./asn1/nbap/nbap.cnf"
+#line 1953 "./asn1/nbap/nbap.cnf"
/*
* Collect the information about the HSDSCH MACdFlows set up conversation(s) and set the conversation data.
*/
@@ -23920,6 +24482,8 @@ dissect_nbap_HSDSCH_FDD_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
umts_fp_conversation_info_t *umts_fp_conversation_info;
fp_hsdsch_channel_info_t* fp_hsdsch_channel_info = NULL;
guint32 i;
+ nbap_hsdsch_channel_info_t* nbap_hsdsch_channel_info;
+ nbap_hsdsch_channel_info = private_data_get_nbap_hsdsch_channel_info(actx->pinfo);
if (!actx->pinfo->fd->flags.visited){
/* Set port to zero use that as an indication of whether we have data or not */
@@ -23981,7 +24545,7 @@ dissect_nbap_HSDSCH_FDD_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
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;
+ umts_fp_conversation_info->com_context_id = private_data_get_com_context_id(actx->pinfo);
/* Cheat and use the DCH entries */
umts_fp_conversation_info->num_dch_in_flow++;
@@ -24055,26 +24619,31 @@ 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 1933 "./asn1/nbap/nbap.cnf"
+#line 2051 "./asn1/nbap/nbap.cnf"
address dst_addr;
- transportLayerAddress_ipv4 = 0;
- BindingID_port = 0;
- num_items++;
+ guint32 transportLayerAddress_ipv4;
+ guint16 bindingID;
+ private_data_set_transportLayerAddress_ipv4(actx->pinfo, 0);
+ private_data_set_binding_id_port(actx->pinfo, 0);
+ private_data_increment_num_items(actx->pinfo);
+ nbap_hsdsch_channel_info_t* nbap_hsdsch_channel_info;
+ nbap_hsdsch_channel_info = private_data_get_nbap_hsdsch_channel_info(actx->pinfo);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_HSDSCH_MACdFlow_Specific_InfoItem_to_Modify, HSDSCH_MACdFlow_Specific_InfoItem_to_Modify_sequence);
- if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0)
- {
+ transportLayerAddress_ipv4 = private_data_get_transportLayerAddress_ipv4(actx->pinfo);
+ bindingID = private_data_get_binding_id_port(actx->pinfo);
+ if (actx->pinfo->fd->flags.visited || transportLayerAddress_ipv4 == 0 || bindingID == 0){
return offset;
}
set_address(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4);
/* Set address for collection of HSDSCH entries */
- copy_address(&(nbap_hsdsch_channel_info[hsdsch_macdflow_id].crnc_address),&dst_addr);
- nbap_hsdsch_channel_info[hsdsch_macdflow_id].crnc_port = BindingID_port;
+ copy_address(&(nbap_hsdsch_channel_info[private_data_get_hsdsch_macdflow_id(actx->pinfo)].crnc_address),&dst_addr);
+ nbap_hsdsch_channel_info[private_data_get_hsdsch_macdflow_id(actx->pinfo)].crnc_port = bindingID;
@@ -24113,8 +24682,8 @@ 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 1779 "./asn1/nbap/nbap.cnf"
- num_items = 1;
+#line 1885 "./asn1/nbap/nbap.cnf"
+ private_data_set_num_items(actx->pinfo,1);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -24248,7 +24817,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 1953 "./asn1/nbap/nbap.cnf"
+#line 2076 "./asn1/nbap/nbap.cnf"
/*
* This is pretty much the same like if we setup a previous flow
*/
@@ -24261,6 +24830,8 @@ dissect_nbap_HSDSCH_Information_to_Modify(tvbuff_t *tvb _U_, int offset _U_, asn
umts_fp_conversation_info_t *umts_fp_conversation_info;
fp_hsdsch_channel_info_t* fp_hsdsch_channel_info = NULL;
guint32 i;
+ nbap_hsdsch_channel_info_t* nbap_hsdsch_channel_info;
+ nbap_hsdsch_channel_info = private_data_get_nbap_hsdsch_channel_info(actx->pinfo);
if (!actx->pinfo->fd->flags.visited){
/* Set port to zero use that as an indication of whether we have data or not */
@@ -24326,7 +24897,7 @@ dissect_nbap_HSDSCH_Information_to_Modify(tvbuff_t *tvb _U_, int offset _U_, asn
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;
+ umts_fp_conversation_info->com_context_id = private_data_get_com_context_id(actx->pinfo);
/* Cheat and use the DCH entries */
umts_fp_conversation_info->num_dch_in_flow++;
@@ -24377,7 +24948,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 1814 "./asn1/nbap/nbap.cnf"
+#line 1930 "./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.
@@ -24488,8 +25059,8 @@ 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 1782 "./asn1/nbap/nbap.cnf"
- num_items++;
+#line 1888 "./asn1/nbap/nbap.cnf"
+ private_data_increment_num_items(actx->pinfo);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -24904,7 +25475,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 2172 "./asn1/nbap/nbap.cnf"
+#line 2307 "./asn1/nbap/nbap.cnf"
/*
g_warning("HS-DSCH Type 3 NOT Implemented!");
*/
@@ -25098,8 +25669,8 @@ 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 1773 "./asn1/nbap/nbap.cnf"
- num_items++;
+#line 1879 "./asn1/nbap/nbap.cnf"
+ private_data_increment_num_items(actx->pinfo);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -25115,8 +25686,8 @@ 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 1768 "./asn1/nbap/nbap.cnf"
- num_items = 0;
+#line 1874 "./asn1/nbap/nbap.cnf"
+ private_data_set_num_items(actx->pinfo,0);
offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
@@ -26495,6 +27066,7 @@ dissect_nbap_IB_SG_DATA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
#line 618 "./asn1/nbap/nbap.cnf"
tvbuff_t *parameter_tvb=NULL;
proto_tree *subtree;
+ guint32 segment_type;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
NO_BOUND, NO_BOUND, FALSE, &parameter_tvb, NULL);
@@ -26502,13 +27074,14 @@ dissect_nbap_IB_SG_DATA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
if(!parameter_tvb)
return offset;
+ segment_type = private_data_get_segment_type(actx->pinfo);
if((segment_type == 5 /*complete-SIB */)||(segment_type == 6 /*complete-SIB-short */)){
subtree = proto_item_add_subtree(actx->created_item, ett_nbap_ib_sg_data);
}else{
return offset;
}
- switch(ib_type){
+ switch(private_data_get_ib_type(actx->pinfo)){
case 0:
/* mIB */
dissect_rrc_MasterInformationBlock_PDU(parameter_tvb, actx->pinfo, subtree, NULL);
@@ -26626,10 +27199,12 @@ 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 605 "./asn1/nbap/nbap.cnf"
+#line 601 "./asn1/nbap/nbap.cnf"
+ guint32 ib_type;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
26, &ib_type, TRUE, 15, NULL);
+ private_data_set_ib_type(actx->pinfo, ib_type);
@@ -28217,29 +28792,31 @@ 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 2186 "./asn1/nbap/nbap.cnf"
+#line 2323 "./asn1/nbap/nbap.cnf"
+ guint node_b_com_context_id;
/*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;
+ nbap_com_context_id_t *cur_val;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 1048575U, &node_b_com_context_id, FALSE);
- if (actx->pinfo->fd->flags.visited){
- return offset;
- }
+ private_data_set_node_b_com_context_id(actx->pinfo, node_b_com_context_id);
+ if (actx->pinfo->fd->flags.visited){
+ return offset;
+ }
- /*If both are avaible we can update the map*/
-if(crcn_context_present){
- if( wmem_tree_lookup32(com_context_map, node_b_com_context_id) == NULL ){
+ /*If both are avaible we can update the map*/
+ if(private_data_get_crnc_context_present(actx->pinfo)){
+ if( wmem_tree_lookup32(com_context_map, node_b_com_context_id) == NULL ){
- cur_val = wmem_new(wmem_file_scope(), nbap_com_context_id_t);
- cur_val->crnc_context = com_context_id;
- cur_val->frame_num = actx->pinfo->num;
- wmem_tree_insert32(com_context_map, node_b_com_context_id, cur_val);
- com_context_id = -1;
- }
+ cur_val = wmem_new(wmem_file_scope(), nbap_com_context_id_t);
+ cur_val->crnc_context = private_data_get_com_context_id(actx->pinfo);
+ cur_val->frame_num = actx->pinfo->num;
+ wmem_tree_insert32(com_context_map, node_b_com_context_id, cur_val);
+ private_data_set_com_context_id(actx->pinfo, -1);
}
+ }
@@ -28782,11 +29359,11 @@ 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 1181 "./asn1/nbap/nbap.cnf"
+#line 1256 "./asn1/nbap/nbap.cnf"
offset = dissect_nbap_DCH_ID(tvb, offset, actx, tree, hf_index);
- dch_id = t_dch_id;
+ private_data_set_dch_id(actx->pinfo, private_data_get_t_dch_id(actx->pinfo));
@@ -28804,27 +29381,34 @@ 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 1186 "./asn1/nbap/nbap.cnf"
+#line 1261 "./asn1/nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation = NULL;
umts_fp_conversation_info_t *umts_fp_conversation_info;
int i, j, num_tf;
+guint32 transportLayerAddress_ipv4;
+guint16 bindingID;
+guint32 dch_id;
+nbap_dch_channel_info_t* nbap_dch_chnl_info;
+nbap_dch_chnl_info = private_data_get_nbap_dch_chnl_info(actx->pinfo);
-transportLayerAddress_ipv4 = 0;
-BindingID_port = 0;
-dch_id = 0xFFFFFFFF;
+private_data_set_transportLayerAddress_ipv4(actx->pinfo, 0);
+private_data_set_binding_id_port(actx->pinfo, 0);
+private_data_set_dch_id(actx->pinfo, 0xFFFFFFFF);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_RL_Specific_DCH_Info_Item, RL_Specific_DCH_Info_Item_sequence);
- if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0)
- {
+
+ transportLayerAddress_ipv4 = private_data_get_transportLayerAddress_ipv4(actx->pinfo);
+ bindingID = private_data_get_binding_id_port(actx->pinfo);
+ if (actx->pinfo->fd->flags.visited || transportLayerAddress_ipv4 == 0 || bindingID == 0){
return offset;
}
/*RBS might sometimes send a nonsens bind, to indicate that no DCH is present*/
- if(BindingID_port == NBAP_IGNORE_PORT){
+ if(bindingID == NBAP_IGNORE_PORT){
return offset;
}
@@ -28833,13 +29417,13 @@ dch_id = 0xFFFFFFFF;
set_address(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4);
conversation = find_conversation(actx->pinfo->num,&dst_addr,
- &null_addr, PT_UDP, BindingID_port,
+ &null_addr, PT_UDP,private_data_get_binding_id_port(actx->pinfo),
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->num, &dst_addr,
- &null_addr, PT_UDP,BindingID_port ,
+ &null_addr, PT_UDP,private_data_get_binding_id_port(actx->pinfo),
0, NO_ADDR2|NO_PORT2);
/* Set dissector */
@@ -28854,19 +29438,20 @@ dch_id = 0xFFFFFFFF;
umts_fp_conversation_info->dl_frame_number = 0;
umts_fp_conversation_info->ul_frame_number = actx->pinfo->num;
copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &dst_addr);
- umts_fp_conversation_info->crnc_port = BindingID_port;
- umts_fp_conversation_info->scrambling_code = ul_scrambling_code;
+ umts_fp_conversation_info->crnc_port = bindingID;
+ umts_fp_conversation_info->scrambling_code = private_data_get_ul_scrambling_code(actx->pinfo);
umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN;
/* DCH's in this flow */
- umts_fp_conversation_info->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present;
+ umts_fp_conversation_info->dch_crc_present = private_data_get_dch_crc_present(actx->pinfo);
/*Save unique UE-identifier */
- umts_fp_conversation_info->com_context_id = com_context_id;
+ umts_fp_conversation_info->com_context_id = private_data_get_com_context_id(actx->pinfo);
/*UPLINK*/
/* Set data for First or single channel */
- umts_fp_conversation_info->fp_dch_channel_info[0].num_ul_chans = num_tf = nbap_dch_chnl_info[dch_id].num_ul_chans;
+ dch_id = private_data_get_dch_id(actx->pinfo);
+ umts_fp_conversation_info->fp_dch_channel_info[0].num_ul_chans = num_tf = nbap_dch_chnl_info[private_data_get_dch_id(actx->pinfo)].num_ul_chans;
for (j = 0; j < num_tf; j++) {
umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_tf_size[j] = nbap_dch_chnl_info[dch_id].ul_chan_tf_size[j];
umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_num_tbs[j] = nbap_dch_chnl_info[dch_id].ul_chan_num_tbs[j];
@@ -28949,23 +29534,29 @@ 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 1301 "./asn1/nbap/nbap.cnf"
+#line 1384 "./asn1/nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation;
umts_fp_conversation_info_t *umts_fp_conversation_info = NULL;
fp_edch_channel_info_t* fp_edch_channel_info;
nbap_edch_port_info_t *old_info = NULL;
+guint32 transportLayerAddress_ipv4;
+guint16 bindingID;
+guint32 e_dch_macdflow_id;
+nbap_edch_channel_info_t* nbap_edch_channel_info;
+nbap_edch_channel_info = private_data_get_nbap_edch_channel_info(actx->pinfo);
-transportLayerAddress_ipv4 = 0;
-BindingID_port = 0;
+private_data_set_transportLayerAddress_ipv4(actx->pinfo, 0);
+private_data_set_binding_id_port(actx->pinfo, 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)
- {
+ transportLayerAddress_ipv4 = private_data_get_transportLayerAddress_ipv4(actx->pinfo);
+ bindingID = private_data_get_binding_id_port(actx->pinfo);
+ if (actx->pinfo->fd->flags.visited || transportLayerAddress_ipv4 == 0 || bindingID == 0){
return offset;
}
clear_address(&null_addr);
@@ -28973,7 +29564,7 @@ BindingID_port = 0;
set_address(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4);
conversation = find_conversation(actx->pinfo->num,&dst_addr,
- &null_addr, PT_UDP, BindingID_port,
+ &null_addr, PT_UDP, bindingID,
0, NO_ADDR_B|NO_PORT_B);
if (conversation) {
umts_fp_conversation_info = (umts_fp_conversation_info_t*)conversation_get_proto_data(conversation, proto_fp);
@@ -28988,7 +29579,7 @@ BindingID_port = 0;
/* It's not part of any conversation - create a new one. */
conversation = conversation_new(actx->pinfo->num, &dst_addr,
- &null_addr, PT_UDP,BindingID_port ,
+ &null_addr, PT_UDP, bindingID,
0, NO_ADDR2|NO_PORT2);
/* Set dissector */
@@ -29002,7 +29593,7 @@ BindingID_port = 0;
umts_fp_conversation_info->dl_frame_number = 0;
umts_fp_conversation_info->ul_frame_number = actx->pinfo->num;
copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &dst_addr);
- umts_fp_conversation_info->crnc_port = BindingID_port;
+ umts_fp_conversation_info->crnc_port = bindingID;
umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN;
@@ -29010,11 +29601,11 @@ BindingID_port = 0;
fp_edch_channel_info = wmem_new0(wmem_file_scope(), fp_edch_channel_info_t);
umts_fp_conversation_info->channel_specific_info = (void*)fp_edch_channel_info;
- if(crcn_context_present){
- umts_fp_conversation_info->com_context_id = com_context_id;
+ if(private_data_get_crnc_context_present(actx->pinfo)){
+ umts_fp_conversation_info->com_context_id = private_data_get_com_context_id(actx->pinfo);
}else{
nbap_com_context_id_t *cur_val;
- if((cur_val=(nbap_com_context_id_t *)wmem_tree_lookup32(com_context_map, node_b_com_context_id)) != NULL){
+ if((cur_val=(nbap_com_context_id_t *)wmem_tree_lookup32(com_context_map,private_data_get_node_b_com_context_id(actx->pinfo))) != NULL){
umts_fp_conversation_info->com_context_id = cur_val->crnc_context;
}else{
expert_add_info(actx->pinfo, NULL, &ei_nbap_no_set_comm_context_id);
@@ -29023,41 +29614,38 @@ BindingID_port = 0;
/* Check if we allready have this context */
- if( (old_info = (nbap_edch_port_info_t *)wmem_tree_lookup32(edch_flow_port_map, com_context_id)) == NULL ){
+ e_dch_macdflow_id = private_data_get_e_dch_macdflow_id(actx->pinfo);
+ if( (old_info = (nbap_edch_port_info_t *)wmem_tree_lookup32(edch_flow_port_map,private_data_get_com_context_id(actx->pinfo))) == NULL ){
nbap_edch_port_info_t * nbap_edch_port_info;
nbap_edch_port_info = wmem_new0(wmem_file_scope(), nbap_edch_port_info_t);
/*Saving port/flow map based on context id for future reconfigurations*/
- nbap_edch_port_info->crnc_port[e_dch_macdflow_id] = BindingID_port;
+ nbap_edch_port_info->crnc_port[e_dch_macdflow_id] = bindingID;
/*Ip address might be useful as well*/
- nbap_edch_port_info->crnc_address = transportLayerAddress_ipv4;
+ nbap_edch_port_info->crnc_address = private_data_get_transportLayerAddress_ipv4(actx->pinfo);
nbap_debug("Frame %u RL-Specific-E-DCH-Information-Item Start",
actx->pinfo->num);
nbap_debug(" wmem_tree_insert32(edch_flow_port_map) com_context_id %u e_dch_macdflow_id %u IP %s Port %u",
- umts_fp_conversation_info->com_context_id,
- e_dch_macdflow_id,
- address_to_str(wmem_packet_scope(), &dst_addr),
- BindingID_port);
+ umts_fp_conversation_info->com_context_id,e_dch_macdflow_id,
+ address_to_str(wmem_packet_scope(), &dst_addr),bindingID);
wmem_tree_insert32(edch_flow_port_map, umts_fp_conversation_info->com_context_id, nbap_edch_port_info);
}else{
nbap_debug(" Insert in existing edch_flow_port_map com_context_id %u e_dch_macdflow_id %u IP %s Port %u",
- umts_fp_conversation_info->com_context_id,
- e_dch_macdflow_id,
- address_to_str(wmem_packet_scope(), &dst_addr),
- BindingID_port);
+ umts_fp_conversation_info->com_context_id,e_dch_macdflow_id,
+ address_to_str(wmem_packet_scope(), &dst_addr), bindingID);
/* Must be same ADDRESS */
- old_info->crnc_port[e_dch_macdflow_id] = BindingID_port;
+ old_info->crnc_port[e_dch_macdflow_id] = bindingID;
}
/* Set address for collection of DDI entries */
copy_address(&(nbap_edch_channel_info[e_dch_macdflow_id].crnc_address),&dst_addr);
- nbap_edch_channel_info[e_dch_macdflow_id].crnc_port = BindingID_port;
+ nbap_edch_channel_info[e_dch_macdflow_id].crnc_port = bindingID;
set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
@@ -29996,10 +30584,12 @@ 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 608 "./asn1/nbap/nbap.cnf"
+#line 606 "./asn1/nbap/nbap.cnf"
+ guint32 segment_type;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7, &segment_type, TRUE, 0, NULL);
+ private_data_set_segment_type(actx->pinfo, segment_type);
@@ -32329,7 +32919,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 153 "./asn1/nbap/nbap.cnf"
+#line 162 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonTransportChannelSetupRequest(FDD) ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -32519,32 +33109,39 @@ 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 985 "./asn1/nbap/nbap.cnf"
+#line 1022 "./asn1/nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation;
fp_fach_channel_info_t* fp_fach_channel_info;
umts_fp_conversation_info_t *umts_fp_conversation_info;
int i, j, num_tf;
+guint32 transportLayerAddress_ipv4;
+guint16 bindingID;
+guint32 common_physical_channel_id;
+nbap_dch_channel_info_t* nbap_dch_chnl_info;
+nbap_dch_chnl_info = private_data_get_nbap_dch_chnl_info(actx->pinfo);
+
+private_data_set_transportLayerAddress_ipv4(actx->pinfo, 0);
+private_data_set_binding_id_port(actx->pinfo, 0);
-transportLayerAddress_ipv4 = 0;
-BindingID_port = 0;
-transportFormatSet_type = NBAP_CPCH;
+private_data_set_transport_format_set_type(actx->pinfo, NBAP_CPCH);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_FACH_ParametersItem_CTCH_SetupRqstFDD, FACH_ParametersItem_CTCH_SetupRqstFDD_sequence);
- if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0)
- {
+ transportLayerAddress_ipv4 = private_data_get_transportLayerAddress_ipv4(actx->pinfo);
+ bindingID = private_data_get_binding_id_port(actx->pinfo);
+ if (actx->pinfo->fd->flags.visited || transportLayerAddress_ipv4 == 0 || bindingID == 0){
return offset;
}
clear_address(&null_addr);
set_address(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4);
- conversation = conversation_new(actx->pinfo->num, &dst_addr, &null_addr, PT_UDP,BindingID_port, 0, NO_ADDR2|NO_PORT2);
+ conversation = conversation_new(actx->pinfo->num, &dst_addr, &null_addr, PT_UDP, bindingID, 0, NO_ADDR2|NO_PORT2);
/* Set dissector */
conversation_set_dissector(conversation, fp_handle);
@@ -32558,10 +33155,10 @@ transportFormatSet_type = NBAP_CPCH;
umts_fp_conversation_info->dl_frame_number = 0;
umts_fp_conversation_info->ul_frame_number = actx->pinfo->num;
copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &dst_addr);
- umts_fp_conversation_info->crnc_port = BindingID_port;
+ umts_fp_conversation_info->crnc_port = bindingID;
umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN;
/*Save unique UE-identifier */
- umts_fp_conversation_info->com_context_id = crcn_context_present ? com_context_id : 1;
+ umts_fp_conversation_info->com_context_id = private_data_get_crnc_context_present(actx->pinfo) ? private_data_get_com_context_id(actx->pinfo) : 1;
/* Adding the 'channel specific info' for FACH */
fp_fach_channel_info = wmem_new0(wmem_file_scope(), fp_fach_channel_info_t);
@@ -32569,24 +33166,25 @@ transportFormatSet_type = NBAP_CPCH;
umts_fp_conversation_info->channel_specific_info = (void*)fp_fach_channel_info;
/* DCH's in this flow */
- umts_fp_conversation_info->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present;
+ umts_fp_conversation_info->dch_crc_present = private_data_get_dch_crc_present(actx->pinfo);
/* Set data for First or single channel */
- umts_fp_conversation_info->fp_dch_channel_info[0].num_ul_chans = num_tf = nbap_dch_chnl_info[commonphysicalchannelid].num_ul_chans;
+ common_physical_channel_id = private_data_get_common_physical_channel_id(actx->pinfo);
+ umts_fp_conversation_info->fp_dch_channel_info[0].num_ul_chans = num_tf = nbap_dch_chnl_info[common_physical_channel_id].num_ul_chans;
for (j = 0; j < num_tf; j++) {
- umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_tf_size[j] = nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_tf_size[j];
- umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_num_tbs[j] = nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_num_tbs[j];
+ umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_tf_size[j] = nbap_dch_chnl_info[common_physical_channel_id].ul_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_num_tbs[j] = nbap_dch_chnl_info[common_physical_channel_id].ul_chan_num_tbs[j];
}
/* Traffic flows per DCH(DL) */
- umts_fp_conversation_info->fp_dch_channel_info[0].num_dl_chans = num_tf = nbap_dch_chnl_info[commonphysicalchannelid].num_dl_chans;
+ umts_fp_conversation_info->fp_dch_channel_info[0].num_dl_chans = num_tf = nbap_dch_chnl_info[common_physical_channel_id].num_dl_chans;
for (j = 0; j < num_tf; j++) {
- umts_fp_conversation_info->fp_dch_channel_info[0].dl_chan_tf_size[j] = nbap_dch_chnl_info[commonphysicalchannelid].dl_chan_tf_size[j];
- 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->fp_dch_channel_info[0].dl_chan_tf_size[j] = nbap_dch_chnl_info[common_physical_channel_id].dl_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_channel_info[0].dl_chan_num_tbs[j] = nbap_dch_chnl_info[common_physical_channel_id].dl_chan_num_tbs[j];
}
/* Set data for associated DCH's if we have any */
- i = commonphysicalchannelid;
- umts_fp_conversation_info->dch_ids_in_flow_list[0] = commonphysicalchannelid;
+ i = common_physical_channel_id;
+ umts_fp_conversation_info->dch_ids_in_flow_list[0] = common_physical_channel_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++;
@@ -32610,7 +33208,7 @@ transportFormatSet_type = NBAP_CPCH;
set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
/* Add Setup Conversation to list, we need it in response msg */
- add_setup_conv(TransactionID, ddMode, commontransportchannelid, actx->pinfo->num, &dst_addr, BindingID_port, umts_fp_conversation_info, conversation);
+ add_setup_conv(private_data_get_transaction_id(actx->pinfo),private_data_get_dd_mode(actx->pinfo),private_data_get_common_transport_channel_id(actx->pinfo), actx->pinfo->num, &dst_addr, bindingID, umts_fp_conversation_info, conversation);
}
@@ -32636,10 +33234,12 @@ 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 1103 "./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;
+#line 1156 "./asn1/nbap/nbap.cnf"
+ nbap_dch_channel_info_t* nbap_dch_chnl_info;
+ nbap_dch_chnl_info = private_data_get_nbap_dch_chnl_info(actx->pinfo);
+ private_data_set_transport_format_set_type(actx->pinfo, NBAP_PCH);
+ nbap_dch_chnl_info[private_data_get_common_transport_channel_id(actx->pinfo)].num_dl_chans = 0;
+ nbap_dch_chnl_info[private_data_get_common_transport_channel_id(actx->pinfo)].num_ul_chans = 0;
@@ -32681,7 +33281,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 881 "./asn1/nbap/nbap.cnf"
+#line 911 "./asn1/nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation;
@@ -32689,26 +33289,32 @@ conversation_t *conversation;
fp_pch_channel_info_t *fp_pch_channel_info;
umts_fp_conversation_info_t *umts_fp_conversation_info;
int i, j, num_tf;
+guint32 transportLayerAddress_ipv4;
+guint16 bindingID;
+guint32 common_transport_channel_id;
+nbap_dch_channel_info_t* nbap_dch_chnl_info;
+nbap_dch_chnl_info = private_data_get_nbap_dch_chnl_info(actx->pinfo);
-transportLayerAddress_ipv4 = 0;
-BindingID_port = 0;
+private_data_set_transportLayerAddress_ipv4(actx->pinfo, 0);
+private_data_set_binding_id_port(actx->pinfo, 0);
/* There can only be one item, set num_items here to collect the TransportFormatSet data */
-num_items = 1;
+private_data_set_num_items(actx->pinfo, 1);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_PCH_ParametersItem_CTCH_SetupRqstFDD, PCH_ParametersItem_CTCH_SetupRqstFDD_sequence);
- if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0)
- {
+ transportLayerAddress_ipv4 = private_data_get_transportLayerAddress_ipv4(actx->pinfo);
+ bindingID = private_data_get_binding_id_port(actx->pinfo);
+ if (actx->pinfo->fd->flags.visited || transportLayerAddress_ipv4 == 0 || bindingID == 0){
return offset;
}
clear_address(&null_addr);
set_address(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4);
- conversation = conversation_new(actx->pinfo->num, &dst_addr, &null_addr, PT_UDP,BindingID_port, 0, NO_ADDR2|NO_PORT2);
+ conversation = conversation_new(actx->pinfo->num, &dst_addr, &null_addr, PT_UDP, bindingID, 0, NO_ADDR2|NO_PORT2);
/* Set dissector */
conversation_set_dissector(conversation, fp_handle);
@@ -32722,40 +33328,41 @@ num_items = 1;
umts_fp_conversation_info->dl_frame_number = 0;
umts_fp_conversation_info->ul_frame_number = actx->pinfo->num;
copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &dst_addr);
- umts_fp_conversation_info->crnc_port = BindingID_port;
+ umts_fp_conversation_info->crnc_port = bindingID;
umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN;
fp_pch_channel_info = wmem_new0(wmem_file_scope(), fp_pch_channel_info_t);
- fp_pch_channel_info->paging_indications = paging_indications;
+ fp_pch_channel_info->paging_indications = private_data_get_paging_indications(actx->pinfo);
umts_fp_conversation_info->channel_specific_info = (void*)fp_pch_channel_info;
/* DCH's in this flow */
- umts_fp_conversation_info->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present;
+ umts_fp_conversation_info->dch_crc_present = private_data_get_dch_crc_present(actx->pinfo);
/* Set data for First or single channel */
- umts_fp_conversation_info->fp_dch_channel_info[0].num_ul_chans = num_tf = nbap_dch_chnl_info[commontransportchannelid].num_ul_chans;
+ common_transport_channel_id = private_data_get_common_transport_channel_id(actx->pinfo);
+ umts_fp_conversation_info->fp_dch_channel_info[0].num_ul_chans = num_tf = nbap_dch_chnl_info[common_transport_channel_id].num_ul_chans;
nbap_debug("Frame %u PCH-ParametersItem-CTCH-SetupRqstFDD Start: num_tf %u", actx->pinfo->num, num_tf);
for (j = 0; j < num_tf; j++) {
- umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_tf_size[j] = nbap_dch_chnl_info[commontransportchannelid].ul_chan_tf_size[j];
- umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_num_tbs[j] = nbap_dch_chnl_info[commontransportchannelid].ul_chan_num_tbs[j];
- nbap_debug(" UL tf %u ul_chan_tf_size %u",j, nbap_dch_chnl_info[commontransportchannelid].ul_chan_tf_size[j]);
+ umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_tf_size[j] = nbap_dch_chnl_info[common_transport_channel_id].ul_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_num_tbs[j] = nbap_dch_chnl_info[common_transport_channel_id].ul_chan_num_tbs[j];
+ nbap_debug(" UL tf %u ul_chan_tf_size %u",j, nbap_dch_chnl_info[common_transport_channel_id].ul_chan_tf_size[j]);
}
/* Traffic flows per DCH(DL) */
- umts_fp_conversation_info->fp_dch_channel_info[0].num_dl_chans = num_tf = nbap_dch_chnl_info[commontransportchannelid].num_dl_chans;
+ umts_fp_conversation_info->fp_dch_channel_info[0].num_dl_chans = num_tf = nbap_dch_chnl_info[common_transport_channel_id].num_dl_chans;
for (j = 0; j < num_tf; j++) {
- umts_fp_conversation_info->fp_dch_channel_info[0].dl_chan_tf_size[j] = nbap_dch_chnl_info[commontransportchannelid].dl_chan_tf_size[j];
- umts_fp_conversation_info->fp_dch_channel_info[0].dl_chan_num_tbs[j] = nbap_dch_chnl_info[commontransportchannelid].dl_chan_num_tbs[j];
- nbap_debug(" DL tf %u ul_chan_tf_size %u",j, nbap_dch_chnl_info[commontransportchannelid].dl_chan_tf_size[j]);
+ umts_fp_conversation_info->fp_dch_channel_info[0].dl_chan_tf_size[j] = nbap_dch_chnl_info[common_transport_channel_id].dl_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_channel_info[0].dl_chan_num_tbs[j] = nbap_dch_chnl_info[common_transport_channel_id].dl_chan_num_tbs[j];
+ nbap_debug(" DL tf %u ul_chan_tf_size %u",j, nbap_dch_chnl_info[common_transport_channel_id].dl_chan_tf_size[j]);
}
/* Set data for associated DCH's if we have any */
- i = commontransportchannelid;
+ i = common_transport_channel_id;
- nbap_debug(" commontransportchannelid %u next ch %u",commontransportchannelid, nbap_dch_chnl_info[i].next_dch);
+ nbap_debug(" commontransportchannelid %u next ch %u",common_transport_channel_id, nbap_dch_chnl_info[i].next_dch);
- umts_fp_conversation_info->dch_ids_in_flow_list[0] = commontransportchannelid;
+ umts_fp_conversation_info->dch_ids_in_flow_list[0] = common_transport_channel_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++;
@@ -32782,7 +33389,7 @@ num_items = 1;
set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
/* Add Setup Conversation to list, we need it in response msg */
- add_setup_conv(TransactionID, ddMode, commontransportchannelid, actx->pinfo->num, &dst_addr, BindingID_port, umts_fp_conversation_info, conversation);
+ add_setup_conv(private_data_get_transaction_id(actx->pinfo), private_data_get_dd_mode(actx->pinfo), common_transport_channel_id, actx->pinfo->num, &dst_addr, bindingID, umts_fp_conversation_info, conversation);
nbap_debug("Frame %u PCH-ParametersItem-CTCH-SetupRqstFDD End", actx->pinfo->num);
}
@@ -32821,30 +33428,37 @@ 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 790 "./asn1/nbap/nbap.cnf"
+#line 812 "./asn1/nbap/nbap.cnf"
address dst_addr, null_addr;
conversation_t *conversation;
fp_rach_channel_info_t* fp_rach_channel_info;
umts_fp_conversation_info_t *umts_fp_conversation_info;
int j, num_tf;
+guint32 transportLayerAddress_ipv4;
+guint16 bindingID;
+guint32 common_physical_channel_id;
+nbap_dch_channel_info_t* nbap_dch_chnl_info;
+nbap_dch_chnl_info = private_data_get_nbap_dch_chnl_info(actx->pinfo);
-transportLayerAddress_ipv4 = 0;
-BindingID_port = 0;
-transportFormatSet_type = NBAP_CPCH;
+private_data_set_transportLayerAddress_ipv4(actx->pinfo, 0);
+private_data_set_binding_id_port(actx->pinfo, 0);
+private_data_set_transport_format_set_type(actx->pinfo, NBAP_CPCH);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_RACH_ParametersItem_CTCH_SetupRqstFDD, RACH_ParametersItem_CTCH_SetupRqstFDD_sequence);
- if (actx->pinfo->fd->flags.visited||transportLayerAddress_ipv4==0||BindingID_port == 0)
- {
+
+ transportLayerAddress_ipv4 = private_data_get_transportLayerAddress_ipv4(actx->pinfo);
+ bindingID = private_data_get_binding_id_port(actx->pinfo);
+ if (actx->pinfo->fd->flags.visited || transportLayerAddress_ipv4 == 0 || bindingID == 0){
return offset;
}
clear_address(&null_addr);
set_address(&dst_addr, AT_IPv4, 4, &transportLayerAddress_ipv4);
- conversation = conversation_new(actx->pinfo->num, &dst_addr, &null_addr, PT_UDP,BindingID_port, 0, NO_ADDR2|NO_PORT2);
+ conversation = conversation_new(actx->pinfo->num, &dst_addr, &null_addr, PT_UDP, bindingID, 0, NO_ADDR2|NO_PORT2);
conversation_set_dissector(conversation, fp_handle);
@@ -32857,7 +33471,7 @@ transportFormatSet_type = NBAP_CPCH;
umts_fp_conversation_info->dl_frame_number = 0;
umts_fp_conversation_info->ul_frame_number = actx->pinfo->num;
copy_address_wmem(wmem_file_scope(), &(umts_fp_conversation_info->crnc_address), &dst_addr);
- umts_fp_conversation_info->crnc_port = BindingID_port;
+ umts_fp_conversation_info->crnc_port = bindingID;
umts_fp_conversation_info->rlc_mode = FP_RLC_MODE_UNKNOWN;
/* Adding the 'channel specific info' for RACH */
@@ -32867,30 +33481,31 @@ transportFormatSet_type = NBAP_CPCH;
/*Save unique UE-identifier */
- umts_fp_conversation_info->com_context_id = crcn_context_present ? com_context_id : 1;
+ umts_fp_conversation_info->com_context_id = private_data_get_crnc_context_present(actx->pinfo) ? private_data_get_com_context_id(actx->pinfo) : 1;
/* DCH's in this flow */
- umts_fp_conversation_info->dch_crc_present = g_nbap_msg_info_for_fp.dch_crc_present;
+ umts_fp_conversation_info->dch_crc_present = private_data_get_dch_crc_present(actx->pinfo);
/* Set data for First or single channel */
- umts_fp_conversation_info->fp_dch_channel_info[0].num_ul_chans = num_tf = nbap_dch_chnl_info[commonphysicalchannelid].num_ul_chans;
+ common_physical_channel_id = private_data_get_common_physical_channel_id(actx->pinfo);
+ umts_fp_conversation_info->fp_dch_channel_info[0].num_ul_chans = num_tf = nbap_dch_chnl_info[common_physical_channel_id].num_ul_chans;
for (j = 0; j < num_tf; j++) {
- umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_tf_size[j] = nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_tf_size[j];
- umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_num_tbs[j] = nbap_dch_chnl_info[commonphysicalchannelid].ul_chan_num_tbs[j];
+ umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_tf_size[j] = nbap_dch_chnl_info[common_physical_channel_id].ul_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_channel_info[0].ul_chan_num_tbs[j] = nbap_dch_chnl_info[common_physical_channel_id].ul_chan_num_tbs[j];
}
/* Traffic flows per DCH(DL) */
- umts_fp_conversation_info->fp_dch_channel_info[0].num_dl_chans = num_tf = nbap_dch_chnl_info[commonphysicalchannelid].num_dl_chans;
+ umts_fp_conversation_info->fp_dch_channel_info[0].num_dl_chans = num_tf = nbap_dch_chnl_info[common_physical_channel_id].num_dl_chans;
for (j = 0; j < num_tf; j++) {
- umts_fp_conversation_info->fp_dch_channel_info[0].dl_chan_tf_size[j] = nbap_dch_chnl_info[commonphysicalchannelid].dl_chan_tf_size[j];
- 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->fp_dch_channel_info[0].dl_chan_tf_size[j] = nbap_dch_chnl_info[common_physical_channel_id].dl_chan_tf_size[j];
+ umts_fp_conversation_info->fp_dch_channel_info[0].dl_chan_num_tbs[j] = nbap_dch_chnl_info[common_physical_channel_id].dl_chan_num_tbs[j];
}
- umts_fp_conversation_info->dch_ids_in_flow_list[0] = commonphysicalchannelid;
+ umts_fp_conversation_info->dch_ids_in_flow_list[0] = common_physical_channel_id;
umts_fp_conversation_info->num_dch_in_flow=1;
set_umts_fp_conv_data(conversation, umts_fp_conversation_info);
/* Add Setup Conversation to list, we need it in response msg */
- add_setup_conv(TransactionID, ddMode, commontransportchannelid, actx->pinfo->num, &dst_addr, BindingID_port, umts_fp_conversation_info, conversation);
+ add_setup_conv(private_data_get_transaction_id(actx->pinfo),private_data_get_dd_mode(actx->pinfo),private_data_get_common_transport_channel_id(actx->pinfo), actx->pinfo->num, &dst_addr, bindingID, umts_fp_conversation_info, conversation);
}
@@ -33602,7 +34217,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 159 "./asn1/nbap/nbap.cnf"
+#line 168 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonTransportChannelSetupResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -33637,7 +34252,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 165 "./asn1/nbap/nbap.cnf"
+#line 174 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonTransportChannelSetupFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -34356,7 +34971,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 563 "./asn1/nbap/nbap.cnf"
+#line 559 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"UnblockResourceIndication ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -34377,7 +34992,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 467 "./asn1/nbap/nbap.cnf"
+#line 463 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"AuditRequiredIndication ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -34398,7 +35013,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 220 "./asn1/nbap/nbap.cnf"
+#line 233 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"AuditRequest ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -34419,7 +35034,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 226 "./asn1/nbap/nbap.cnf"
+#line 239 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"AuditResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -35013,7 +35628,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 232 "./asn1/nbap/nbap.cnf"
+#line 245 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"AuditFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -35035,7 +35650,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 300 "./asn1/nbap/nbap.cnf"
+#line 301 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementInitiationRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -35153,7 +35768,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 306 "./asn1/nbap/nbap.cnf"
+#line 307 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementInitiationResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -35269,7 +35884,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 312 "./asn1/nbap/nbap.cnf"
+#line 313 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementInitiationFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -35290,7 +35905,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 473 "./asn1/nbap/nbap.cnf"
+#line 469 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementReport ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -35406,7 +36021,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 479 "./asn1/nbap/nbap.cnf"
+#line 475 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementTerminationRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -35427,7 +36042,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 485 "./asn1/nbap/nbap.cnf"
+#line 481 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CommonMeasurementFailureIndication ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -35448,7 +36063,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 125 "./asn1/nbap/nbap.cnf"
+#line 134 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CellSetupRequest(FDD) ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -35980,7 +36595,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 131 "./asn1/nbap/nbap.cnf"
+#line 140 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CellSetupResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -36001,7 +36616,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 137 "./asn1/nbap/nbap.cnf"
+#line 146 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CellSetupFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -36544,7 +37159,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 461 "./asn1/nbap/nbap.cnf"
+#line 457 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"ResourceStatusIndication ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -37302,7 +37917,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 279 "./asn1/nbap/nbap.cnf"
+#line 280 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"SystemInformationUpdateRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -37375,8 +37990,8 @@ 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 611 "./asn1/nbap/nbap.cnf"
- ib_type = 10; /* not-Used-sIB8 */
- segment_type = 0;
+ private_data_set_ib_type(actx->pinfo, 10); /* not-Used-sIB8 */
+ private_data_set_segment_type(actx->pinfo, 0);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nbap_MIB_SB_SIB_InformationItem_SystemInfoUpdateRqst, MIB_SB_SIB_InformationItem_SystemInfoUpdateRqst_sequence);
@@ -37441,7 +38056,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 285 "./asn1/nbap/nbap.cnf"
+#line 286 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"SystemInformationUpdateResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -37462,7 +38077,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 291 "./asn1/nbap/nbap.cnf"
+#line 292 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"SystemInformationUpdateFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -37484,13 +38099,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 242 "./asn1/nbap/nbap.cnf"
-
- g_nbap_msg_info_for_fp.ProcedureCode = ProcedureCode;
- g_nbap_msg_info_for_fp.ddMode = ddMode;
- g_nbap_msg_info_for_fp.is_uplink = TRUE;
- g_nbap_msg_info_for_fp.dch_crc_present = 2; /* unknown */
-
+#line 255 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkSetupRequest(FDD) ");
/* CRNC -> Node B */
@@ -37967,13 +38576,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 255 "./asn1/nbap/nbap.cnf"
-
- g_nbap_msg_info_for_fp.ProcedureCode = ProcedureCode;
- g_nbap_msg_info_for_fp.ddMode = ddMode;
- g_nbap_msg_info_for_fp.is_uplink = FALSE;
- g_nbap_msg_info_for_fp.dch_crc_present = 2; /* unknown */
-
+#line 262 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkSetupResponse(FDD) ");
/* Node B -> CRNC */
@@ -38193,7 +38796,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 268 "./asn1/nbap/nbap.cnf"
+#line 269 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkSetupFailure(FDD) ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -38478,7 +39081,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 318 "./asn1/nbap/nbap.cnf"
+#line 319 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkAdditionRequest(FDD) ");
@@ -38850,7 +39453,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 323 "./asn1/nbap/nbap.cnf"
+#line 324 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkAdditionResponse(FDD) ");
@@ -39126,7 +39729,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 329 "./asn1/nbap/nbap.cnf"
+#line 330 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkAdditionRequest(FDD) ");
@@ -39411,15 +40014,10 @@ 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 356 "./asn1/nbap/nbap.cnf"
+#line 357 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationPrepare(FDD) ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
- g_nbap_msg_info_for_fp.ProcedureCode = ProcedureCode;
- g_nbap_msg_info_for_fp.ddMode = ddMode;
- g_nbap_msg_info_for_fp.is_uplink = TRUE;
- g_nbap_msg_info_for_fp.dch_crc_present = 2; /* unknown */
-
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -41034,7 +41632,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 367 "./asn1/nbap/nbap.cnf"
+#line 363 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationReady ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -41116,7 +41714,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 374 "./asn1/nbap/nbap.cnf"
+#line 370 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -41225,13 +41823,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 491 "./asn1/nbap/nbap.cnf"
+#line 487 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationCommit ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
-#line 2238 "./asn1/nbap/nbap.cnf"
+#line 2381 "./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
@@ -41255,7 +41853,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 497 "./asn1/nbap/nbap.cnf"
+#line 493 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationCancel ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -41276,7 +41874,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 385 "./asn1/nbap/nbap.cnf"
+#line 381 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationRequestFDD(FDD) ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -41733,7 +42331,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 391 "./asn1/nbap/nbap.cnf"
+#line 387 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkReconfigurationResponse ");
@@ -41794,7 +42392,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 342 "./asn1/nbap/nbap.cnf"
+#line 343 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkDeletionRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -41845,7 +42443,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 349 "./asn1/nbap/nbap.cnf"
+#line 350 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkDeletionResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -41867,7 +42465,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 545 "./asn1/nbap/nbap.cnf"
+#line 541 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DL-PowerControlRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -41918,7 +42516,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 551 "./asn1/nbap/nbap.cnf"
+#line 547 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DL-PowerTimeslotControlRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -41939,7 +42537,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 407 "./asn1/nbap/nbap.cnf"
+#line 403 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementInitiationRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -42135,7 +42733,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 413 "./asn1/nbap/nbap.cnf"
+#line 409 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementInitiationResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -42440,7 +43038,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 420 "./asn1/nbap/nbap.cnf"
+#line 416 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementInitiationFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -42462,7 +43060,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 525 "./asn1/nbap/nbap.cnf"
+#line 521 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementReport ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -42645,7 +43243,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 532 "./asn1/nbap/nbap.cnf"
+#line 528 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementTerminationRequest ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -42666,7 +43264,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 538 "./asn1/nbap/nbap.cnf"
+#line 534 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"DedicatedMeasurementFailureIndication ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -42688,7 +43286,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 503 "./asn1/nbap/nbap.cnf"
+#line 499 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkFailureIndication ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -42870,7 +43468,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 510 "./asn1/nbap/nbap.cnf"
+#line 506 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkPreemptionRequiredIndication ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -42921,7 +43519,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 517 "./asn1/nbap/nbap.cnf"
+#line 513 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkRestoreIndication ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -43101,7 +43699,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 557 "./asn1/nbap/nbap.cnf"
+#line 553 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"CompressedModeCommand ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -43122,7 +43720,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 569 "./asn1/nbap/nbap.cnf"
+#line 565 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"ErrorIndication ");
@@ -43142,7 +43740,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 578 "./asn1/nbap/nbap.cnf"
+#line 574 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"PrivateMessage ");
@@ -43161,7 +43759,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 427 "./asn1/nbap/nbap.cnf"
+#line 423 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"PhysicalSharedChannelReconfigurationRequest(FDD) ");
/* CRNC -> Node B */
actx->pinfo->link_dir=P2P_DIR_DL;
@@ -45629,7 +46227,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 433 "./asn1/nbap/nbap.cnf"
+#line 429 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"PhysicalSharedChannelReconfigurationResponse ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -45680,7 +46278,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 439 "./asn1/nbap/nbap.cnf"
+#line 435 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"PhysicalSharedChannelReconfigurationFailure ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -47133,7 +47731,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 585 "./asn1/nbap/nbap.cnf"
+#line 581 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"BearerRearrangementIndication ");
@@ -47435,7 +48033,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 593 "./asn1/nbap/nbap.cnf"
+#line 589 "./asn1/nbap/nbap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"RadioLinkParameterUpdateIndication(FDD) ");
/* Node B -> CRNC */
actx->pinfo->link_dir=P2P_DIR_UL;
@@ -55330,16 +55928,20 @@ static int dissect_NULL_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tre
/*--- End of included file: packet-nbap-fn.c ---*/
-#line 365 "./asn1/nbap/packet-nbap-template.c"
+#line 801 "./asn1/nbap/packet-nbap-template.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
- return (dissector_try_uint_new(nbap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ guint32 protocol_ie_id;
+ protocol_ie_id = private_data_get_protocol_ie_id(pinfo);
+ return (dissector_try_uint_new(nbap_ies_dissector_table, protocol_ie_id, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
}
static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
- return (dissector_try_uint_new(nbap_extension_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
+ guint32 protocol_ie_id;
+ protocol_ie_id = private_data_get_protocol_ie_id(pinfo);
+ return (dissector_try_uint_new(nbap_extension_dissector_table, protocol_ie_id, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0;
}
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
@@ -55365,11 +55967,13 @@ static void add_hsdsch_bind(packet_info *pinfo){
umts_fp_conversation_info_t *umts_fp_conversation_info;
fp_hsdsch_channel_info_t* fp_hsdsch_channel_info = NULL;
guint32 i;
+ nbap_hsdsch_channel_info_t* nbap_hsdsch_channel_info;
if (pinfo->fd->flags.visited){
return;
}
+ nbap_hsdsch_channel_info = private_data_get_nbap_hsdsch_channel_info(pinfo);
/* Set port to zero use that as an indication of whether we have data or not */
clear_address(&null_addr);
for (i = 0; i < maxNrOfMACdFlows; i++) {
@@ -55520,7 +56124,6 @@ dissect_nbap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
proto_item *nbap_item = NULL;
proto_tree *nbap_tree = NULL;
- int i;
/* make entry in the Protocol column on summary display */
col_set_str(pinfo->cinfo, COL_PROTOCOL, "NBAP");
@@ -55528,11 +56131,8 @@ dissect_nbap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
nbap_item = proto_tree_add_item(tree, proto_nbap, tvb, 0, -1, ENC_NA);
nbap_tree = proto_item_add_subtree(nbap_item, ett_nbap);
- /*Do a little cleanup just as a precaution*/
- for (i = 0; i < maxNrOfMACdFlows; i++) {
- nbap_hsdsch_channel_info[i].entity = hs;
- }
- ul_scrambling_code = 0;
+ /* Clearing any old 'private data' stored */
+ nbap_reset_private_data(pinfo);
return dissect_NBAP_PDU_PDU(tvb, pinfo, nbap_tree, data);
}
@@ -68795,7 +69395,7 @@ void proto_register_nbap(void)
NULL, HFILL }},
/*--- End of included file: packet-nbap-hfarr.c ---*/
-#line 665 "./asn1/nbap/packet-nbap-template.c"
+#line 1103 "./asn1/nbap/packet-nbap-template.c"
};
/* List of subtrees */
@@ -70435,7 +71035,7 @@ void proto_register_nbap(void)
&ett_nbap_Outcome,
/*--- End of included file: packet-nbap-ettarr.c ---*/
-#line 674 "./asn1/nbap/packet-nbap-template.c"
+#line 1112 "./asn1/nbap/packet-nbap-template.c"
};
static ei_register_info ei[] = {
@@ -71587,6 +72187,6 @@ proto_reg_handoff_nbap(void)
/*--- End of included file: packet-nbap-dis-tab.c ---*/
-#line 729 "./asn1/nbap/packet-nbap-template.c"
+#line 1167 "./asn1/nbap/packet-nbap-template.c"
}