Change the signature of elem_fcn():ns to include pinfo.
authoretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>
Mon, 4 Apr 2011 14:37:25 +0000 (14:37 +0000)
committeretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>
Mon, 4 Apr 2011 14:37:25 +0000 (14:37 +0000)
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@36443 f5534014-38df-0310-8fa8-9805f1628bb7

27 files changed:
asn1/gsm_map/gsm_map.cnf
asn1/lte-rrc/lte-rrc.cnf
asn1/rrc/rrc.cnf
epan/dissectors/packet-bssap.c
epan/dissectors/packet-bssgp.c
epan/dissectors/packet-diameter_3gpp.c
epan/dissectors/packet-gsm_a_bssmap.c
epan/dissectors/packet-gsm_a_common.c
epan/dissectors/packet-gsm_a_common.h
epan/dissectors/packet-gsm_a_dtap.c
epan/dissectors/packet-gsm_a_gm.c
epan/dissectors/packet-gsm_a_rp.c
epan/dissectors/packet-gsm_a_rr.c
epan/dissectors/packet-gsm_bsslap.c
epan/dissectors/packet-gsm_bssmap_le.c
epan/dissectors/packet-gsm_map.c
epan/dissectors/packet-gtp.c
epan/dissectors/packet-gtpv2.c
epan/dissectors/packet-lte-rrc.c
epan/dissectors/packet-nas_eps.c
epan/dissectors/packet-radius.c
epan/dissectors/packet-radius.h
epan/dissectors/packet-radius_packetcable.c
epan/dissectors/packet-rrc.c
epan/dissectors/packet-rsl.c
epan/dissectors/packet-sgsap.c
epan/dissectors/packet-uma.c

index 0e71434704d50c4fd816ea62700297dd2ac5e5ba..07c597fbf83bd2487f79e606ba34e0e82a10f4b9 100644 (file)
@@ -525,7 +525,7 @@ actx->pinfo->p2p_dir = P2P_DIR_RECV;
 
         if (!parameter_tvb)
                return offset;
-       de_sm_qos(parameter_tvb, tree, 0, 3, NULL,0);
+       de_sm_qos(parameter_tvb, tree, actx->pinfo, 0, 3, NULL,0);
 
 #.FN_BODY Ext-QoS-Subscribed VAL_PTR = &parameter_tvb
 
@@ -571,7 +571,7 @@ actx->pinfo->p2p_dir = P2P_DIR_RECV;
         if (!parameter_tvb)
                return offset;
        subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_RAIdentity);
-       de_gmm_rai(parameter_tvb, subtree, 0, 3, NULL,0);
+       de_gmm_rai(parameter_tvb, subtree, actx->pinfo, 0, 3, NULL,0);
 
 #.FN_BODY LAIFixedLength VAL_PTR = &parameter_tvb
 
@@ -595,7 +595,7 @@ actx->pinfo->p2p_dir = P2P_DIR_RECV;
                 return offset; 
 
     subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_RadioResourceInformation); 
-       be_chan_type(parameter_tvb, subtree, 0, tvb_length_remaining(tvb,0), NULL, 0);
+       be_chan_type(parameter_tvb, subtree, actx->pinfo, 0, tvb_length_remaining(tvb,0), NULL, 0);
 
 #.FN_BODY RANAP-ServiceHandover VAL_PTR = &parameter_tvb
     tvbuff_t        *parameter_tvb;
@@ -668,7 +668,7 @@ if (!actx->value_ptr)
                 switch(octet){
                 case 4:
                        /* Dissect the data part */                     
-                       de_bearer_cap(actx->value_ptr, subtree, 2, length, NULL, 0);
+                       de_bearer_cap(actx->value_ptr, subtree, actx->pinfo, 2, length, NULL, 0);
                        /* TODO: There may be more than one IE */
                        break;
                 default:
@@ -749,7 +749,7 @@ if (!actx->value_ptr)
                 switch(octet){
                 case 4:
                        /* Dissect the data part */                     
-                       de_bearer_cap(actx->value_ptr, subtree, 2, length, NULL, 0);
+                       de_bearer_cap(actx->value_ptr, subtree, actx->pinfo, 2, length, NULL, 0);
                        /* TODO: There may be more than one IE */
                        break;
                 default:
@@ -804,7 +804,7 @@ if (!actx->value_ptr)
                 return offset; 
 
     subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GlobalCellId); 
-       be_cell_id_aux(parameter_tvb, subtree, 0, tvb_length_remaining(tvb,0), NULL, 0, 0);
+       be_cell_id_aux(parameter_tvb, subtree, actx->pinfo, 0, tvb_length_remaining(tvb,0), NULL, 0, 0);
 
 #.FN_BODY Ext-GeographicalInformation VAL_PTR = &parameter_tvb 
     tvbuff_t   *parameter_tvb; 
index 04b0405e35bdf203babaf2d489fb3a87ba1319e3..94607d299264f13970ff9ebffca3a7fa0c9e0700 100644 (file)
@@ -107,12 +107,12 @@ if(ue_eutra_cap_tvb){
                break;
        case 2:
                /* geran-cs */
-               de_ms_cm_2(ue_eutra_cap_tvb, tree, 0, 5, NULL, 0);
-               de_ms_cm_3(ue_eutra_cap_tvb, tree, 5, tvb_length(ue_eutra_cap_tvb)-5, NULL, 0);
+               de_ms_cm_2(ue_eutra_cap_tvb, tree, actx->pinfo, 0, 5, NULL, 0);
+               de_ms_cm_3(ue_eutra_cap_tvb, tree, actx->pinfo, 5, tvb_length(ue_eutra_cap_tvb)-5, NULL, 0);
                break;
        case 3:
                /* geran-ps */
-               de_gmm_ms_radio_acc_cap(ue_eutra_cap_tvb, tree, 0, tvb_length(ue_eutra_cap_tvb), NULL, 0);
+               de_gmm_ms_radio_acc_cap(ue_eutra_cap_tvb, tree, actx->pinfo, 0, tvb_length(ue_eutra_cap_tvb), NULL, 0);
                break;
        case 4:
                /* cdma2000-1XRTT */
index 41b38cf761619a2350c5d4f158b13f4f9ae73669..f98d4f4e89491eeb222eef8f40e01ad7f3fde1ea 100644 (file)
@@ -486,7 +486,7 @@ tvbuff_t *parameter_tvb=NULL;
 
 %(DEFAULT_BODY)s
   if (parameter_tvb){
-       de_ms_cm_2(parameter_tvb, tree, 2, tvb_get_guint8(parameter_tvb,1), NULL, 0);
+       de_ms_cm_2(parameter_tvb, tree, actx->pinfo, 2, tvb_get_guint8(parameter_tvb,1), NULL, 0);
   }
 
 #.FN_BODY GSM-Classmark3 VAL_PTR = &parameter_tvb
@@ -494,7 +494,7 @@ tvbuff_t *parameter_tvb=NULL;
 
 %(DEFAULT_BODY)s
   if (parameter_tvb){
-       de_ms_cm_3(parameter_tvb, tree, 0, tvb_length(parameter_tvb), NULL, 0);
+       de_ms_cm_3(parameter_tvb, tree, actx->pinfo, 0, tvb_length(parameter_tvb), NULL, 0);
   }
 #.FN_BODY InterRATHandoverInfoWithInterRATCapabilities-r3-IEs/interRATHandoverInfo VAL_PTR = &parameter_tvb
 tvbuff_t *parameter_tvb=NULL;
index 8058dc08c4e006a7d7b6a1148da5f9c8d9f3d512..e86edab19945532d8680eb4b880f046c4bddb978 100644 (file)
@@ -718,7 +718,7 @@ check_optional_ie(tvbuff_t *tvb, int offset, guint8 expected_ie){
 
 /* 18.4.1 Cell global identity */
 static int
-dissect_bssap_cell_global_id(tvbuff_t *tvb, proto_tree *tree, int offset)
+dissect_bssap_cell_global_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, int offset)
 {
     proto_item  *item = NULL;
     proto_tree  *ie_tree = NULL;
@@ -745,13 +745,13 @@ dissect_bssap_cell_global_id(tvbuff_t *tvb, proto_tree *tree, int offset)
      *  Routing Area Identification IE defined in 3GPP TS 24.008, not
      *  including 3GPP TS 24.008 IEI
      */
-    de_gmm_rai(tvb, cgi_tree, offset, ie_len, NULL, 0);
+    de_gmm_rai(tvb, cgi_tree, pinfo, offset, ie_len, NULL, 0);
     /*  Octets 9 and 10 contain the value part (starting with octet 2) of the
      *  Cell Identity IE defined in 3GPP TS 24.008, not including
      *  3GPP TS 24.008 IEI
      */
     offset = offset + 6;
-    de_cell_id(tvb, cgi_tree, offset, ie_len, NULL, 0);
+    de_cell_id(tvb, cgi_tree, pinfo, offset, ie_len, NULL, 0);
     offset = offset + 2;
 
     return offset;
@@ -759,7 +759,7 @@ dissect_bssap_cell_global_id(tvbuff_t *tvb, proto_tree *tree, int offset)
 }
 /* 18.4.2 Channel needed */
 static int
-dissect_bssap_channel_needed(tvbuff_t *tvb, proto_tree *tree, int offset)
+dissect_bssap_channel_needed(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, int offset)
 {
     proto_item  *item = NULL;
     proto_tree  *ie_tree = NULL;
@@ -778,7 +778,7 @@ dissect_bssap_channel_needed(tvbuff_t *tvb, proto_tree *tree, int offset)
      * value part of the Channel Needed IE defined in 3GPP TS 44.018.
      * 10.5.2.8 Channel Needed
      */
-    de_rr_chnl_needed(tvb, ie_tree, offset, ie_len, NULL, 0);
+    de_rr_chnl_needed(tvb, ie_tree, pinfo, offset, ie_len, NULL, 0);
 
     return offset + ie_len;
 
@@ -1155,7 +1155,7 @@ dissect_bssap_info_req(tvbuff_t *tvb, proto_tree *tree, int offset)
 }
 /* 18.4.14 Location area identifier */
 static int
-dissect_bssap_loc_area_id(tvbuff_t *tvb, proto_tree *tree, int offset)
+dissect_bssap_loc_area_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, int offset)
 {
     proto_item  *item = NULL;
     proto_tree  *ie_tree = NULL;
@@ -1174,7 +1174,7 @@ dissect_bssap_loc_area_id(tvbuff_t *tvb, proto_tree *tree, int offset)
      *  including 3GPP TS 48.018 IEI and 3GPP TS 48.018 length
      *  indicator).
      */
-    de_lai(tvb, ie_tree, offset, ie_len, NULL, 0);
+    de_lai(tvb, ie_tree, pinfo, offset, ie_len, NULL, 0);
 
     return offset + ie_len;
 
@@ -1242,7 +1242,7 @@ dissect_bssap_MM_information(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
 }
 /* 18.4.17 Mobile identity */
 static int
-dissect_bssap_mobile_id(tvbuff_t *tvb, proto_tree *tree, int offset)
+dissect_bssap_mobile_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, int offset)
 {
     proto_item  *item = NULL;
     proto_tree  *ie_tree = NULL;
@@ -1260,7 +1260,7 @@ dissect_bssap_mobile_id(tvbuff_t *tvb, proto_tree *tree, int offset)
      *  the mobile identity IE defined in 3GPP TS 24.008 (not including
      *  3GPP TS 24.008 IEI and 3GPP TS 24.008 length indicator).
      */
-    de_mid(tvb, ie_tree, offset, ie_len, NULL, 0);
+    de_mid(tvb, ie_tree, pinfo, offset, ie_len, NULL, 0);
 
 
     return offset + ie_len;
@@ -1268,7 +1268,7 @@ dissect_bssap_mobile_id(tvbuff_t *tvb, proto_tree *tree, int offset)
 }
 /* 18.4.18 Mobile station classmark 1 */
 static int
-dissect_bssap_mobile_stn_cls_mrk1(tvbuff_t *tvb, proto_tree *tree, int offset)
+dissect_bssap_mobile_stn_cls_mrk1(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, int offset)
 {
     proto_item  *item = NULL;
     proto_tree  *ie_tree = NULL;
@@ -1286,7 +1286,7 @@ dissect_bssap_mobile_stn_cls_mrk1(tvbuff_t *tvb, proto_tree *tree, int offset)
      *  the mobile station classmark 1 IE defined in 3GPP TS 24.008 (not
      *  including 3GPP TS 24.008 IEI)
      */
-    de_ms_cm_1(tvb, ie_tree, offset, ie_len, NULL, 0);
+    de_ms_cm_1(tvb, ie_tree, pinfo, offset, ie_len, NULL, 0);
 
     return offset + ie_len;
 
@@ -1351,7 +1351,7 @@ dissect_bssap_ptmsi(tvbuff_t *tvb, proto_tree *tree, int offset)
 }
 /* 18.4.21 Reject cause */
 static int
-dissect_bssap_reject_cause(tvbuff_t *tvb, proto_tree *tree, int offset)
+dissect_bssap_reject_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, int offset)
 {
     proto_item  *item = NULL;
     proto_tree  *ie_tree = NULL;
@@ -1369,7 +1369,7 @@ dissect_bssap_reject_cause(tvbuff_t *tvb, proto_tree *tree, int offset)
      *  the reject cause IE defined in 3GPP TS 24.008, not including
      *  3GPP TS 24.008 IEI.
      */
-    de_rej_cause(tvb, ie_tree, offset, ie_len, NULL, 0);
+    de_rej_cause(tvb, ie_tree, pinfo, offset, ie_len, NULL, 0);
 
     return offset + ie_len;
 
@@ -1686,13 +1686,13 @@ static void dissect_bssap_plus(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
 
         /* Location area identifier Location area identifier 18.4.14 O TLV 7 */
         if ( check_optional_ie(tvb, offset, BSSAP_LOC_AREA_ID))
-            offset = dissect_bssap_loc_area_id(tvb, bssap_tree, offset);
+            offset = dissect_bssap_loc_area_id(tvb, bssap_tree, pinfo, offset);
         if (tvb_length_remaining(tvb,offset) == 0)
             return;
 
         /* Channel needed Channel needed 18.4.2 O TLV 3 */
         if ( check_optional_ie(tvb, offset, BSSAP_CHANNEL_NEEDED))
-            offset = dissect_bssap_channel_needed(tvb, bssap_tree, offset);
+            offset = dissect_bssap_channel_needed(tvb, bssap_tree, pinfo, offset);
         if (tvb_length_remaining(tvb,offset) == 0)
             return;
 
@@ -1767,17 +1767,17 @@ static void dissect_bssap_plus(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
 
         /* New Cell global identity Cell global identity 18.4.1 M TLV 10 */
         if ( check_ie(tvb, tree, &offset, BSSAP_CELL_GBL_ID))
-            offset = dissect_bssap_cell_global_id(tvb, bssap_tree, offset);
+            offset = dissect_bssap_cell_global_id(tvb, bssap_tree, pinfo, offset);
 
         /* Mobile station classmark Mobile station classmark 1 18.4.18 M TLV 3 */
         if ( check_ie(tvb, tree, &offset, BSSAP_MOBILE_STN_CLS_MRK1))
-            offset = dissect_bssap_mobile_stn_cls_mrk1(tvb, bssap_tree, offset);
+            offset = dissect_bssap_mobile_stn_cls_mrk1(tvb, bssap_tree, pinfo, offset);
         if (tvb_length_remaining(tvb,offset) == 0)
             return;
 
         /* Old location area identifier Location area identifier 18.4.14 O TLV 7 */
         if ( check_optional_ie(tvb, offset, BSSAP_LOC_AREA_ID))
-            offset = dissect_bssap_loc_area_id(tvb, bssap_tree, offset);
+            offset = dissect_bssap_loc_area_id(tvb, bssap_tree, pinfo, offset);
         if (tvb_length_remaining(tvb,offset) == 0)
             return;
 
@@ -1807,14 +1807,14 @@ static void dissect_bssap_plus(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
 
         /* Location area identifier Location area identifier 18.4.14 M TLV 7 */
         if ( check_ie(tvb, tree, &offset, BSSAP_LOC_AREA_ID))
-            offset = dissect_bssap_loc_area_id(tvb, bssap_tree, offset);
+            offset = dissect_bssap_loc_area_id(tvb, bssap_tree, pinfo, offset);
 
         if (tvb_length_remaining(tvb,offset) == 0)
             return;
 
         /* New TMSI, or IMSI Mobile identity 18.4.17 O TLV 6-10 */
         if ( check_optional_ie(tvb, offset, BSSAP_MOBILE_ID))
-            offset = dissect_bssap_mobile_id(tvb, bssap_tree, offset);
+            offset = dissect_bssap_mobile_id(tvb, bssap_tree, pinfo, offset);
         if (tvb_length_remaining(tvb,offset) == 0)
             return;
         proto_tree_add_text(tree, tvb, offset, -1, "Extraneous data");
@@ -1825,7 +1825,7 @@ static void dissect_bssap_plus(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
             offset = dissect_bssap_imsi(tvb, bssap_tree, offset);
         /* Reject cause Reject cause 18.4.21 M TLV 3 */
         if ( check_ie(tvb, tree, &offset, BSSAP_REJECT_CAUSE))
-            offset = dissect_bssap_reject_cause(tvb, bssap_tree, offset);
+            offset = dissect_bssap_reject_cause(tvb, bssap_tree, pinfo, offset);
         if (tvb_length_remaining(tvb,offset) == 0)
             return;
         proto_tree_add_text(tree, tvb, offset, -1, "Extraneous data");
@@ -1840,7 +1840,7 @@ static void dissect_bssap_plus(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
 
         /* Cell global identity Cell global identity 18.4.1 O TLV 10 */
         if ( check_optional_ie(tvb, offset, BSSAP_CELL_GBL_ID))
-            offset = dissect_bssap_cell_global_id(tvb, bssap_tree, offset);
+            offset = dissect_bssap_cell_global_id(tvb, bssap_tree, pinfo, offset);
 
         if (tvb_length_remaining(tvb,offset) == 0)
             return;
@@ -1893,7 +1893,7 @@ static void dissect_bssap_plus(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
 
         /* Cell global identity Cell global identity 18.4.1 O TLV 10 */
         if ( check_optional_ie(tvb, offset, BSSAP_CELL_GBL_ID))
-            offset = dissect_bssap_cell_global_id(tvb, bssap_tree, offset);
+            offset = dissect_bssap_cell_global_id(tvb, bssap_tree, pinfo, offset);
 
         if (tvb_length_remaining(tvb,offset) == 0)
             return;
@@ -1923,7 +1923,7 @@ static void dissect_bssap_plus(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
 
         /* Cell global identity Cell global identity 18.4.1 O TLV 10 */
         if ( check_optional_ie(tvb, offset, BSSAP_CELL_GBL_ID))
-            offset = dissect_bssap_cell_global_id(tvb, bssap_tree, offset);
+            offset = dissect_bssap_cell_global_id(tvb, bssap_tree, pinfo, offset);
 
         if (tvb_length_remaining(tvb,offset) == 0)
             return;
@@ -1962,7 +1962,7 @@ static void dissect_bssap_plus(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
 
         /* Cell global identity Cell global identity 18.4.1 O TLV 10 */
         if ( check_optional_ie(tvb, offset, BSSAP_CELL_GBL_ID))
-            offset = dissect_bssap_cell_global_id(tvb, bssap_tree, offset);
+            offset = dissect_bssap_cell_global_id(tvb, bssap_tree, pinfo, offset);
 
         if (tvb_length_remaining(tvb,offset) == 0)
             return;
@@ -2074,7 +2074,7 @@ static void dissect_bssap_plus(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
 
         /* Cell global identity Cell global identity 18.4.1 O TLV 10 */
         if ( check_optional_ie(tvb, offset, BSSAP_CELL_GBL_ID))
-            offset = dissect_bssap_cell_global_id(tvb, bssap_tree, offset);
+            offset = dissect_bssap_cell_global_id(tvb, bssap_tree, pinfo, offset);
 
         if (tvb_length_remaining(tvb,offset) == 0)
             return;
index 9d8860e7b2abcb376a518d5575461c946dd8fe58..7ed8d834737397baf58ef096fc7cbb84bf19b3a9 100644 (file)
@@ -493,7 +493,7 @@ x86 TAC
 /* Defined localy here without the check of curr_len wrapping, that will be taken care of when this IEI dissecton finishes */
 #define ELEM_IN_ELEM_MAND_TELV(EMT_iei, EMT_pdu_type, EMT_elem_idx, EMT_elem_name_addition) \
 {\
-       if ((consumed = elem_telv(tvb, tree, (guint8) EMT_iei, EMT_pdu_type, EMT_elem_idx, curr_offset, curr_len, EMT_elem_name_addition)) > 0) \
+       if ((consumed = elem_telv(tvb, tree, pinfo, (guint8) EMT_iei, EMT_pdu_type, EMT_elem_idx, curr_offset, curr_len, EMT_elem_name_addition)) > 0) \
        { \
                curr_offset += consumed; \
                curr_len -= consumed; \
@@ -513,7 +513,7 @@ x86 TAC
 #define ELEM_IN_ELEM_OPT_TELV(EOT_iei, EOT_pdu_type, EOT_elem_idx, EOT_elem_name_addition) \
 {\
        if (curr_len != 0){\
-               if ((consumed = elem_telv(tvb, tree, (guint8) EOT_iei, EOT_pdu_type, EOT_elem_idx, curr_offset, curr_len, EOT_elem_name_addition)) > 0) \
+               if ((consumed = elem_telv(tvb, tree, pinfo, (guint8) EOT_iei, EOT_pdu_type, EOT_elem_idx, curr_offset, curr_len, EOT_elem_name_addition)) > 0) \
                { \
                        curr_offset += consumed; \
                        curr_len -= consumed; \
@@ -522,13 +522,13 @@ x86 TAC
 }
 
 /* Forward declarations */
-static guint16 de_bssgp_source_BSS_to_target_BSS_transp_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_);
-static guint16 de_bssgp_target_BSS_to_source_BSS_transp_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_);
-static guint16 de_bssgp_ran_inf_request_rim_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_);
-static guint16 de_bssgp_ran_inf_rim_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_);
-static guint16 de_bssgp_ran_inf_ack_rim_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_);
-static guint16 de_bssgp_ran_inf_error_rim_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_);
-static guint16 de_bssgp_ran_inf_app_error_rim_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_);
+static guint16 de_bssgp_source_BSS_to_target_BSS_transp_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_);
+static guint16 de_bssgp_target_BSS_to_source_BSS_transp_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_);
+static guint16 de_bssgp_ran_inf_request_rim_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_);
+static guint16 de_bssgp_ran_inf_rim_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_);
+static guint16 de_bssgp_ran_inf_ack_rim_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_);
+static guint16 de_bssgp_ran_inf_error_rim_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_);
+static guint16 de_bssgp_ran_inf_app_error_rim_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_);
 
 
 static const value_string tab_nacc_cause[]={
@@ -551,7 +551,7 @@ static const value_string tab_nacc_cause[]={
  * 11.3.1      Alignment octets
  */
 static guint16
-de_bssgp_aligment_octets(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_aligment_octets(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -566,7 +566,7 @@ de_bssgp_aligment_octets(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
  * 11.3.2      Bmax default MS
  */
 static guint16
-de_bssgp_bmax_default_ms(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_bmax_default_ms(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -581,7 +581,7 @@ de_bssgp_bmax_default_ms(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
  * 11.3.3      BSS Area Indication
  */
 static guint16
-de_bssgp_bss_area_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_bss_area_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -596,7 +596,7 @@ de_bssgp_bss_area_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
  * 11.3.4      Bucket Leak Rate (R)
  */
 static guint16
-de_bssgp_bucket_leak_rate(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_bucket_leak_rate(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -611,7 +611,7 @@ de_bssgp_bucket_leak_rate(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
  * 11.3.5      BVC Bucket Size
  */
 static guint16
-de_bssgp_bvc_bucket_size(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_bvc_bucket_size(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -626,7 +626,7 @@ de_bssgp_bvc_bucket_size(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
  * 11.3.6      BVCI (BSSGP Virtual Connection Identifier)
  */
 static guint16
-de_bssgp_bvci(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_bvci(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint16 bvci;
@@ -648,7 +648,7 @@ de_bssgp_bvci(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc
  * 11.3.7      BVC Measurement
  */
 static guint16
-de_bssgp_bvc_meas(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_bvc_meas(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -751,7 +751,7 @@ static const value_string bssgp_cause_vals[] = {
 value_string_ext bssgp_cause_vals_ext = VALUE_STRING_EXT_INIT(bssgp_cause_vals);
 
 static guint16
-de_bssgp_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -779,14 +779,14 @@ de_bssgp_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
  */
 
 static guint16
-de_bssgp_cell_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len)
+de_bssgp_cell_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string, int string_len)
 {
        guint32 curr_offset;
        guint16 ci;
 
        curr_offset = offset;
 
-       curr_offset = curr_offset + de_gmm_rai(tvb, tree, curr_offset , 6, add_string, string_len);
+       curr_offset = curr_offset + de_gmm_rai(tvb, tree, pinfo, curr_offset, 6, add_string, string_len);
        /*Why doesn't this work? ( add_string will not contain RAI + CI )
         * curr_offset = curr_offset + de_cell_id(tvb, tree, curr_offset , 2, add_string, string_len);
         */
@@ -810,13 +810,13 @@ de_bssgp_cell_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * value part of the Channel Needed IE defined in 3GPP TS 44.018.
  */
 static guint16
-de_bssgp_chnl_needed(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_chnl_needed(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
        curr_offset = offset;
 
-       curr_offset = de_rr_chnl_needed(tvb, tree, curr_offset, len , NULL, 0);
+       curr_offset = de_rr_chnl_needed(tvb, tree, pinfo, curr_offset, len , NULL, 0);
 
        return(curr_offset-offset);
 }
@@ -848,7 +848,7 @@ static const value_string bssgp_flush_action_vals[] = {
   };
 
 static guint16
-de_bssgp_flush_action(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_flush_action(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint8  oct;
@@ -879,7 +879,7 @@ de_bssgp_flush_action(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
  */
 
 static guint16
-de_bssgp_llc_pdu(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_llc_pdu(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        tvbuff_t *next_tvb=NULL;
        guint32 curr_offset;
@@ -908,7 +908,7 @@ de_bssgp_llc_pdu(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * 11.3.16     LLC Frames Discarded
  */
 static guint16
-de_bssgp_llc_frames_disc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_llc_frames_disc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint8 oct;
@@ -958,7 +958,7 @@ de_bssgp_llc_frames_disc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
  */
 
 static guint16
-de_bssgp_ms_bucket_size(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_ms_bucket_size(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -981,7 +981,7 @@ de_bssgp_ms_bucket_size(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
  * 11.3.23     OMC Id
  */
 static guint16
-de_bssgp_omc_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_omc_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -996,7 +996,7 @@ de_bssgp_omc_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * 11.3.24     PDU In Error
  */
 static guint16
-de_bssgp_pdu_in_error(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_pdu_in_error(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1014,7 +1014,7 @@ de_bssgp_pdu_in_error(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
  * 11.3.25 PDU Lifetime
  */
 static guint16
-de_bssgp_pdu_lifetime(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_pdu_lifetime(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1083,7 +1083,7 @@ const value_string bssgp_peak_rate_gran_vals[] = {
   };
 
 static guint16
-de_bssgp_qos_profile(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_qos_profile(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_item *pi, *pre_item;
        guint32 curr_offset;
@@ -1166,7 +1166,7 @@ de_bssgp_qos_profile(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
   };
 
 static guint16
-de_bssgp_ra_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_ra_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1190,7 +1190,7 @@ de_bssgp_ra_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
   };
 
 static guint16
-de_bssgp_ra_cap_upd_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_ra_cap_upd_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1213,7 +1213,7 @@ de_bssgp_ra_cap_upd_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
  * 11.3.32     R_default_MS
  */
 static guint16
-de_bssgp_r_default_ms(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_r_default_ms(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1229,7 +1229,7 @@ de_bssgp_r_default_ms(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
  * 11.3.33     Suspend Reference Number
  */
 static guint16
-de_bssgp_suspend_ref_no(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_suspend_ref_no(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1247,7 +1247,7 @@ de_bssgp_suspend_ref_no(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
  */
 
 static guint16
-de_bssgp_tag(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_tag(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1277,7 +1277,7 @@ de_bssgp_tag(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gch
  * 11.3.37     Trace Reference
  */
 static guint16
-de_bssgp_trace_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_trace_ref(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1299,7 +1299,7 @@ de_bssgp_trace_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U
  * XXX: Coding unknown (Specification withdrawn) 3GPP TS 32.008
  */
 static guint16
-de_bssgp_trace_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_trace_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1314,7 +1314,7 @@ de_bssgp_trace_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _
  * 11.3.39     Transaction Id
  */
 static guint16
-de_bssgp_transaction_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_transaction_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1328,7 +1328,7 @@ de_bssgp_transaction_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
  * 11.3.40     Trigger Id
  */
 static guint16
-de_bssgp_trigger_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_trigger_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1342,7 +1342,7 @@ de_bssgp_trigger_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _
  * 11.3.41     Number of octets affected
  */
 static guint16
-de_bssgp_no_of_oct_affected(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_no_of_oct_affected(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint32 no_of_oct;
@@ -1396,7 +1396,7 @@ static const value_string bssgp_unit_vals[] = {
   };
 
 static guint16
-de_bssgp_gprs_timer(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_gprs_timer(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1414,7 +1414,7 @@ de_bssgp_gprs_timer(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _
  * 11.3.45     Feature Bitmap
  */
 static guint16
-de_bssgp_feature_bitmap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_feature_bitmap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1444,7 +1444,7 @@ de_bssgp_feature_bitmap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
  * 11.3.46     Bucket Full Ratio
  */
 static guint16
-de_bssgp_bucket_full_ratio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_bucket_full_ratio(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1479,7 +1479,7 @@ static const value_string bssgp_service_eutran_cco_vals[] = {
   };
 
 static guint16
-de_bssgp_serv_utran_cco(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_serv_utran_cco(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1498,7 +1498,7 @@ de_bssgp_serv_utran_cco(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
  * 11.3.48     NSEI (Network Service Entity Identifier)
  */
 static guint16
-de_bssgp_nsei(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_nsei(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint16 nsei;
@@ -1518,7 +1518,7 @@ de_bssgp_nsei(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc
  * 11.3.49     RRLP APDU
  */
 static guint16
-de_bssgp_rrlp_apdu(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_rrlp_apdu(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        tvbuff_t *next_tvb=NULL;
        guint32 curr_offset;
@@ -1626,7 +1626,7 @@ static const true_false_string  bssgp_rrlp_flg1_vals = {
 };
 
 static guint16
-de_bssgp_rrlp_flags(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_rrlp_flags(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1653,7 +1653,7 @@ static const value_string bssgp_rim_appid_vals[] = {
   };
 
 static guint16
-de_bssgp_rim_app_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_rim_app_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1671,7 +1671,7 @@ de_bssgp_rim_app_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _
  * 11.3.62     RIM Sequence Number
  */
 static guint16
-de_bssgp_rim_seq_no(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_rim_seq_no(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1704,7 +1704,7 @@ de_bssgp_rim_seq_no(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _
 
 
 static guint16
-de_bssgp_ran_information_request_app_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_ran_information_request_app_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        tvbuff_t *new_tvb = NULL;
        guint32 curr_offset;
@@ -1715,17 +1715,17 @@ de_bssgp_ran_information_request_app_cont(tvbuff_t *tvb, proto_tree *tree, guint
                case 1:
                        /* 11.3.63.1.1  RAN-INFORMATION-REQUEST Application Container for the NACC Application */
                        /* Reporting Cell Identifier */
-                       curr_offset = curr_offset + de_bssgp_cell_id(tvb, tree, curr_offset, len, add_string, string_len);
+                       curr_offset = curr_offset + de_bssgp_cell_id(tvb, tree, pinfo,curr_offset, len, add_string, string_len);
                        break;
                case 2:
                        /* 11.3.63.1.2  RAN-INFORMATION-REQUEST Application Container for the SI3 Application */
                        /* Reporting Cell Identifier */
-                       curr_offset = curr_offset + de_bssgp_cell_id(tvb, tree, curr_offset, len, add_string, string_len);
+                       curr_offset = curr_offset + de_bssgp_cell_id(tvb, tree, pinfo, curr_offset, len, add_string, string_len);
                        break;
                case 3:
                        /* 11.3.63.1.3  RAN-INFORMATION-REQUEST Application Container for the MBMS data channel Application */
                        /* Reporting Cell Identifier */
-                       curr_offset = curr_offset + de_bssgp_cell_id(tvb, tree, curr_offset, len, add_string, string_len);
+                       curr_offset = curr_offset + de_bssgp_cell_id(tvb, tree, pinfo, curr_offset, len, add_string, string_len);
                        break;
                case 4:
                        {
@@ -1776,7 +1776,7 @@ static const value_string bssgp_rat_discriminator_vals[] = {
        { 0,    NULL },
   };
 static guint16
-de_bssgp_ran_information_app_cont_unit(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_ran_information_app_cont_unit(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        tvbuff_t *new_tvb = NULL;
        guint32 curr_offset;
@@ -1789,7 +1789,7 @@ de_bssgp_ran_information_app_cont_unit(tvbuff_t *tvb, proto_tree *tree, guint32
                case 1:
                        /* 11.3.63.2.1 RAN-INFORMATION Application Container for the NACC Application */
                        /* Reporting Cell Identifier */
-                       curr_offset = curr_offset + de_bssgp_cell_id(tvb, tree, curr_offset, len, add_string, string_len);
+                       curr_offset = curr_offset + de_bssgp_cell_id(tvb, tree, pinfo, curr_offset, len, add_string, string_len);
                        /* Number of SI/PSI */
                        num_items = tvb_get_guint8(tvb,curr_offset)>>1;
                        proto_tree_add_item(tree, hf_bssgp_num_si_psi, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
@@ -1842,7 +1842,7 @@ de_bssgp_ran_information_app_cont_unit(tvbuff_t *tvb, proto_tree *tree, guint32
                        /* Reporting Cell Identifier: The parameter is encoded as the value part of the Cell Identifier IE
                         * defined in sub-clause 11.3.9, not including IEI and Length Indicator.
                         */
-                       curr_offset = curr_offset + de_bssgp_cell_id(tvb, tree, curr_offset, len, add_string, string_len);
+                       curr_offset = curr_offset + de_bssgp_cell_id(tvb, tree, pinfo, curr_offset, len, add_string, string_len);
                        /* Octet 11-31 SI3 */
                        /* SI3: contains the SYSTEM INFORMATION type 3 message encoded for BCCH as specified in 3GPP TS 44.018 ch 9.1.35
                         * It contains the Message type octet followed by all the IEs composing the message payload. 
@@ -1855,7 +1855,7 @@ de_bssgp_ran_information_app_cont_unit(tvbuff_t *tvb, proto_tree *tree, guint32
                case 3:
                        /* 11.3.63.2.3 RAN-INFORMATION Application Container for the MBMS data channel Application */
                        /* Octet 3-10 Reporting Cell Identifier */
-                       curr_offset = curr_offset + de_bssgp_cell_id(tvb, tree, curr_offset, len, add_string, string_len);
+                       curr_offset = curr_offset + de_bssgp_cell_id(tvb, tree, pinfo, curr_offset, len, add_string, string_len);
                        /* Octet 11-n MBMS data channel report */
                        proto_tree_add_text(tree, tvb, curr_offset, len-6, "MBMS data channel report - not dissected yet");
                        break;
@@ -1871,7 +1871,7 @@ de_bssgp_ran_information_app_cont_unit(tvbuff_t *tvb, proto_tree *tree, guint32
                                        /* If the RAT discriminator field indicates GERAN, this field is encoded as the value part of the Cell Identifier IE
                                         * defined in sub-clause 11.3.9, not including IEI and Length Indicator.
                                         */
-                                       curr_offset = curr_offset + de_bssgp_cell_id(tvb, tree, curr_offset, len, add_string, string_len);
+                                       curr_offset = curr_offset + de_bssgp_cell_id(tvb, tree, pinfo, curr_offset, len, add_string, string_len);
                                        break;
                                case 1:
                                        /* If the RAT discriminator field indicates UTRAN, this field is encoded as the Source Cell Identifier IE (UTRAN
@@ -1955,7 +1955,7 @@ static const value_string bssgp_utra_si_cause_vals[] = {
   };
 
 static guint16
-de_bssgp_ran_app_error_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_ran_app_error_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        tvbuff_t *new_tvb = NULL;
        guint32 curr_offset;
@@ -2051,7 +2051,7 @@ static const true_false_string  bssgp_rim_pdu_ind_ack_vals = {
 };
 
 static guint16
-de_bssgp_rim_pdu_indications(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_rim_pdu_indications(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -2102,7 +2102,7 @@ static const value_string bssgp_rim_proto_ver_no_vals[] = {
 };
 
 static guint16
-de_bssgp_rim_proto_ver_no(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_rim_proto_ver_no(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -2120,7 +2120,7 @@ de_bssgp_rim_proto_ver_no(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
  */
 
 static guint16
-de_bssgp_pfc_flow_ctrl(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_pfc_flow_ctrl(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree *pfc_tree;
        proto_item *pi, *ti2;
@@ -2157,7 +2157,7 @@ de_bssgp_pfc_flow_ctrl(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
                 * Coded as the value part of the Packet Flow Identifier information element in
                 * 3GPP TS 24.008, not including 3GPP TS 24.008 IEI
                 */
-               de_sm_pflow_id(tvb, pfc_tree, curr_offset, 1, NULL, 0);
+               de_sm_pflow_id(tvb, pfc_tree, pinfo, curr_offset, 1, NULL, 0);
                curr_offset++;
 
                /* Bmax_PFC: Bucket size of the PFC. Coded like the value part of BVC Bucket Size, see sub-clause 11.3.5. */
@@ -2196,7 +2196,7 @@ static const value_string bssgp_ra_discriminator_vals[] = {
 };
 
 static guint16
-de_bssgp_rim_routing_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_rim_routing_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8 oct;
        guint16 rnc_id;
@@ -2220,7 +2220,7 @@ de_bssgp_rim_routing_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
                         * and is coded as the value part (octet 3 to octet 10) of the 
                         * Cell Identifier information element specified in sub-clause 11.3.9.
                         */
-                       curr_offset = curr_offset + de_bssgp_cell_id(tvb, tree, curr_offset, len, add_string, string_len);
+                       curr_offset = curr_offset + de_bssgp_cell_id(tvb, tree, pinfo, curr_offset, len, add_string, string_len);
                        break;
                case 1:
                        /* RIM Routing Address discriminator = 0001:
@@ -2228,7 +2228,7 @@ de_bssgp_rim_routing_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
                         * Octets 4 to 9 contain the value part (starting with octet 2) of the Routing Area Identification IE
                         * defined in 3GPP TS 24.008, not including 3GPP TS 24.008 IEI
                         */
-                       curr_offset = curr_offset + de_gmm_rai(tvb, tree, curr_offset , 6, add_string, string_len);
+                       curr_offset = curr_offset + de_gmm_rai(tvb, tree, pinfo, curr_offset , 6, add_string, string_len);
                        /* Octet 10 - 11 RNC-ID (or Extended RNC-ID) */
                        rnc_id = tvb_get_ntohs(tvb, curr_offset);
                        proto_tree_add_item(tree, hf_bssgp_rnc_id, tvb, curr_offset, 2, ENC_BIG_ENDIAN);
@@ -2243,7 +2243,7 @@ de_bssgp_rim_routing_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
                         * Octets 4 to 8 contain the value part (starting with octet 2) of the 
                         * Tracking Area Identity IE defined in 3GPP TS 24.301 [37], not including 3GPP TS 24.301 IEI
                         */
-                       curr_offset = curr_offset+ de_emm_trac_area_id(tvb, tree, curr_offset, 5, add_string, string_len);
+                       curr_offset = curr_offset+ de_emm_trac_area_id(tvb, tree, pinfo, curr_offset, 5, add_string, string_len);
                        /* Octets 9-n contain the Global eNB ID (see 3GPP TS 36.413 [36]) of the eNodeB. */ 
                        new_tvb = tvb_new_subset_remaining(tvb, curr_offset);
                        dissect_s1ap_Global_ENB_ID_PDU(new_tvb, gpinfo, tree);
@@ -2270,7 +2270,7 @@ de_bssgp_rim_routing_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
  * within the Gmb interface.
  */
 static guint16
-de_bssgp_mbms_session_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_mbms_session_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -2286,7 +2286,7 @@ de_bssgp_mbms_session_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
  * 11.3.72     MBMS Session Duration
  */
 static guint16
-de_bssgp_mbms_session_dur(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_mbms_session_dur(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        tvbuff_t *new_tvb;
        guint32 curr_offset;
@@ -2307,7 +2307,7 @@ de_bssgp_mbms_session_dur(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
  * 
  */
 static guint16
-de_bssgp_mbms_sai_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_bssgp_mbms_sai_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        tvbuff_t *new_tvb;
        guint32 curr_offset;
@@ -2347,7 +2347,7 @@ static const value_string bssgp_mbms_cause_vals[] = {
 static value_string_ext bssgp_mbms_cause_vals_ext = VALUE_STRING_EXT_INIT(bssgp_mbms_cause_vals);
 
 static guint16
-de_bssgp_mbms_response(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_mbms_response(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -2385,7 +2385,7 @@ static const value_string bssgp_mbms_num_ra_ids_vals[] = {
 static value_string_ext bssgp_mbms_num_ra_ids_vals_ext = VALUE_STRING_EXT_INIT(bssgp_mbms_num_ra_ids_vals);
 
 static guint16
-de_bssgp_mbms_ra_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_mbms_ra_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_item *ti;
        proto_tree *rai_tree;
@@ -2407,7 +2407,7 @@ de_bssgp_mbms_ra_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
                /* The element is coded as the Routing Area Identification information element in
                 * 3GPP TS 24.008, not including 3GPP TS 24.008 IEI and 3GPP TS 24.008 length indicator.
                 */
-               de_gmm_rai(tvb, tree, curr_offset , 6, NULL, 0);
+               de_gmm_rai(tvb, tree, pinfo, curr_offset , 6, NULL, 0);
 
                curr_offset+=8;
        }
@@ -2424,7 +2424,7 @@ static const true_false_string  tfs_bssgp_bc_mc = {
     "Broadcast Session"
 };
 static guint16
-de_bssgp_mbms_session_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_mbms_session_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -2468,7 +2468,7 @@ static const value_string bssgp_mbms_stop_cause_vals[] = {
 static value_string_ext bssgp_mbms_stop_cause_vals_ext = VALUE_STRING_EXT_INIT(bssgp_mbms_stop_cause_vals);
 
 static guint16
-de_bssgp_mbms_stop_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_mbms_stop_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -2495,7 +2495,7 @@ de_bssgp_mbms_stop_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
  * 11.3.82     PFCs to be set-up list
  */
 static guint16
-de_bssgp_pfcs_to_be_set_up_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_pfcs_to_be_set_up_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree *pfc_tree, *pft_tree, *abqp_tree, *arp_tree, *t10_tree;
        proto_item *pi, *ti2;
@@ -2526,7 +2526,7 @@ de_bssgp_pfcs_to_be_set_up_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset,
                                          "PFC (%u)", i + 1);
                pfc_tree = proto_item_add_subtree(ti2, ett_bssgp_pfcs_to_be_set_up_list);
 
-               de_sm_pflow_id(tvb, pfc_tree, curr_offset, 1, NULL, 0);
+               de_sm_pflow_id(tvb, pfc_tree, pinfo, curr_offset, 1, NULL, 0);
                curr_offset++;
 
                /* PFT: Packet Flow Timer. Coded as the GPRS Timer information element,
@@ -2544,7 +2544,7 @@ de_bssgp_pfcs_to_be_set_up_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset,
                pi = proto_tree_add_text(pfc_tree, tvb, curr_offset, 3, "Aggregate BSS QoS Profile(ABQP)");
                abqp_tree = proto_item_add_subtree(ti2, ett_bssgp_pfcs_to_be_set_up_list_abqp);
                /* Unsure about length 16 */
-               curr_offset = curr_offset + de_sm_qos(tvb, tree, curr_offset, 16, NULL, 0);
+               curr_offset = curr_offset + de_sm_qos(tvb, tree, pinfo, curr_offset, 16, NULL, 0);
 
                /* Allocation/Retention Priority: Allocation Retention Priority.
                 * Coded as the Priority information element, see subclause 11.3.27.
@@ -2553,7 +2553,7 @@ de_bssgp_pfcs_to_be_set_up_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset,
                if(pfc_len>17){
                        pi = proto_tree_add_text(pfc_tree, tvb, curr_offset, 3, "Allocation/Retention Priority");
                        arp_tree = proto_item_add_subtree(ti2, ett_bssgp_pfcs_to_be_set_up_list_arp);
-                       curr_offset = curr_offset + be_prio(tvb, arp_tree, curr_offset, 1, NULL, 0);
+                       curr_offset = curr_offset + be_prio(tvb, arp_tree, pinfo, curr_offset, 1, NULL, 0);
                }
                /* T10: T10.
                 * Coded as the GPRS Timer information element, see sub-clause 11.3.44.
@@ -2574,7 +2574,7 @@ de_bssgp_pfcs_to_be_set_up_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset,
  * 11.3.83     List of set-up PFCs
  */
 static guint16
-de_bssgp_list_of_setup_pfcs(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_list_of_setup_pfcs(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree *pfc_tree;
        proto_item *pi, *ti2;
@@ -2603,7 +2603,7 @@ de_bssgp_list_of_setup_pfcs(tvbuff_t *tvb, proto_tree *tree, guint32 offset, gui
                                          "PFC (%u)", i + 1);
                pfc_tree = proto_item_add_subtree(ti2, ett_bssgp_list_of_setup_pfcs);
 
-               de_sm_pflow_id(tvb, pfc_tree, curr_offset, 1, NULL, 0);
+               de_sm_pflow_id(tvb, pfc_tree, pinfo, curr_offset, 1, NULL, 0);
                curr_offset++;
 
        }
@@ -2614,7 +2614,7 @@ de_bssgp_list_of_setup_pfcs(tvbuff_t *tvb, proto_tree *tree, guint32 offset, gui
  * 11.3.84     Extended Feature Bitmap
  */
 static guint16
-de_bssgp_ext_feature_bitmap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_ext_feature_bitmap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -2632,7 +2632,7 @@ de_bssgp_ext_feature_bitmap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, gui
  * 11.3.85     Source to Target Transparent Container
  */
 static guint16
-de_bssgp_src_to_trg_transp_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_src_to_trg_transp_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -2652,7 +2652,7 @@ de_bssgp_src_to_trg_transp_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset,
  * 11.3.86     Target to Source Transparent Container
  */
 static guint16
-de_bssgp_trg_to_src_transp_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_trg_to_src_transp_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -2675,7 +2675,7 @@ de_bssgp_trg_to_src_transp_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset,
  * 11.3.87     RNC Identifier
  */
 static guint16
-de_bssgp_rnc_identifier(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_rnc_identifier(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint16 rnc_id;
@@ -2684,7 +2684,7 @@ de_bssgp_rnc_identifier(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
        /* Octets 3-8 Octets 3 to 8 contain the value part (starting with octet 2) of the
         * Routing Area Identification IE defined in 3GPP TS 24.008, not including 3GPP TS 24.008 IEI
         */
-       curr_offset = curr_offset + de_gmm_rai(tvb, tree, curr_offset , 6, add_string, string_len);
+       curr_offset = curr_offset + de_gmm_rai(tvb, tree, pinfo, curr_offset, 6, add_string, string_len);
        /* Octet 9 - 10 RNC ID (or Extended RNC-ID or Corresponding RNC-ID) */
        rnc_id = tvb_get_ntohs(tvb, curr_offset);
        proto_tree_add_item(tree, hf_bssgp_rnc_id, tvb, curr_offset, 2, ENC_BIG_ENDIAN);
@@ -2709,7 +2709,7 @@ static const value_string bssgp_page_mode_vals[] = {
        { 0,    NULL },
   };
 static guint16
-de_bssgp_page_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_page_mode(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -2724,7 +2724,7 @@ de_bssgp_page_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U
  * 11.3.89     Container ID
  */
 static guint16
-de_bssgp_container_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_container_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -2746,7 +2746,7 @@ static const value_string bssgp_global_tfi_vals[] = {
   };
 
 static guint16
-de_bssgp_global_tfi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_global_tfi(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint32 bit_offset;
@@ -2793,7 +2793,7 @@ de_bssgp_global_tfi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _
  * 11.3.92     Time to MBMS Data Transfer
  */
 static guint16
-de_bssgp_time_to_MBMS_data_tran(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_time_to_MBMS_data_tran(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint8 value;
@@ -2810,7 +2810,7 @@ de_bssgp_time_to_MBMS_data_tran(tvbuff_t *tvb, proto_tree *tree, guint32 offset,
  * 11.3.93     MBMS Session Repetition Number
  */
 static guint16
-de_bssgp_mbms_session_rep_no(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_mbms_session_rep_no(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -2825,7 +2825,7 @@ de_bssgp_mbms_session_rep_no(tvbuff_t *tvb, proto_tree *tree, guint32 offset, gu
  * 11.3.94     Inter RAT Handover Info
  */
 static guint16
-de_bssgp_inter_rat_ho_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_inter_rat_ho_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        tvbuff_t        *new_tvb;
        guint32 curr_offset;
@@ -2845,7 +2845,7 @@ de_bssgp_inter_rat_ho_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guin
  * 11.3.95     PS Handover Command
  */
 static guint16
-de_bssgp_ps_ho_cmd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_ps_ho_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -2865,7 +2865,7 @@ de_bssgp_ps_ho_cmd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U
  * 11.3.95a    PS Handover Indications
  */
 static guint16
-de_bssgp_ps_ho_indications(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_ps_ho_indications(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -2888,7 +2888,7 @@ de_bssgp_ps_ho_indications(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guin
        { 0,    NULL },
   };
 static guint16
-de_bssgp_sipsi_container(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_sipsi_container(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint8 oct,num, type, i;
@@ -2924,7 +2924,7 @@ de_bssgp_sipsi_container(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
  * 11.3.95c    Active PFCs List
  */
 static guint16
-de_bssgp_active_pfcs_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_active_pfcs_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree *pfc_tree;
        proto_item *pi, *ti2;
@@ -2952,7 +2952,7 @@ de_bssgp_active_pfcs_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
                ti2 = proto_tree_add_text(tree, tvb, curr_offset, 1, "PFC (%u)", i + 1);
                pfc_tree = proto_item_add_subtree(ti2, ett_bssgp_pfc_flow_control_parameters_pfc);
 
-               de_sm_pflow_id(tvb, pfc_tree, curr_offset, 1, NULL, 0);
+               de_sm_pflow_id(tvb, pfc_tree, pinfo, curr_offset, 1, NULL, 0);
                curr_offset++;
 
        }
@@ -2963,7 +2963,7 @@ de_bssgp_active_pfcs_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
  * 11.3.96     Velocity Data
  */
 static guint16
-de_bssgp_velocity_data(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+de_bssgp_velocity_data(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len)
 {
        guint32 curr_offset;
 
@@ -2973,7 +2973,7 @@ de_bssgp_velocity_data(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
         * identical to that for Description of Velocity defined in 3GPP TS
         * 23.032.
         */
-       curr_offset = dissect_description_of_velocity(tvb, tree, curr_offset, len, add_string, string_len);
+       curr_offset = dissect_description_of_velocity(tvb, tree, pinfo, curr_offset, len, add_string, string_len);
 
        return(curr_offset-offset);
 }
@@ -2981,7 +2981,7 @@ de_bssgp_velocity_data(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
  * 11.3.97     DTM Handover Command
  */
 static guint16
-de_bssgp_dtm_ho_cmd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_dtm_ho_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -2999,7 +2999,7 @@ de_bssgp_dtm_ho_cmd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _
  * 11.3.98     CS Indication
  */
 static guint16
-de_bssgp_cs_indication(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_cs_indication(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -3050,7 +3050,7 @@ static const value_string bssgp_flow_control_gran_vals[] = {
 
 
 static guint16
-de_bssgp_flow_control_gran(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_flow_control_gran(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -3066,7 +3066,7 @@ de_bssgp_flow_control_gran(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guin
  * 11.3.103    eNB Identifier
  */
 static guint16
-de_bssgp_enb_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len)
+de_bssgp_enb_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string, int string_len)
 {
        tvbuff_t        *new_tvb;
        guint32 curr_offset;
@@ -3077,7 +3077,7 @@ de_bssgp_enb_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
         * Tracking Area Identity IE defined in 3GPP TS 24.301 [37], not
         * including 3GPP TS 24.301 IEI [37]
        */
-       curr_offset = curr_offset+ de_emm_trac_area_id(tvb, tree, curr_offset, 5, add_string, string_len);
+       curr_offset = curr_offset+ de_emm_trac_area_id(tvb, tree, pinfo, curr_offset, 5, add_string, string_len);
 
        /* Octets 8-n contain the Global eNB ID (see 3GPP TS 36.413) of the eNodeB. */
        new_tvb = tvb_new_subset_remaining(tvb, curr_offset);
@@ -3089,7 +3089,7 @@ de_bssgp_enb_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * 11.3.104    E-UTRAN Inter RAT Handover Info
  */
 static guint16
-de_bssgp_e_utran_inter_rat_ho_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_e_utran_inter_rat_ho_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        tvbuff_t        *new_tvb;
        guint32 curr_offset;
@@ -3112,7 +3112,7 @@ de_bssgp_e_utran_inter_rat_ho_info(tvbuff_t *tvb, proto_tree *tree, guint32 offs
  */
 
 static guint16
-de_bssgp_sub_prof_id_f_rat_freq_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_sub_prof_id_f_rat_freq_prio(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint8 value;
@@ -3133,7 +3133,7 @@ de_bssgp_sub_prof_id_f_rat_freq_prio(tvbuff_t *tvb, proto_tree *tree, guint32 of
  * 11.3.106    Request for Inter-RAT Handover Info
  */
 static guint16
-de_bssgp_req_for_inter_rat_ho_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_req_for_inter_rat_ho_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -3150,7 +3150,7 @@ de_bssgp_req_for_inter_rat_ho_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offse
  * 11.3.107    Reliable Inter-RAT Handover Info
  */
 static guint16
-de_bssgp_reliable_inter_rat_ho_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_reliable_inter_rat_ho_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -3166,7 +3166,7 @@ de_bssgp_reliable_inter_rat_ho_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offs
  * 11.3.108    SON Transfer Application Identity
  */
 static guint16
-de_bssgp_son_transfer_app_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_son_transfer_app_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -3191,7 +3191,7 @@ static const value_string bssgp_cell_access_mode_vals[] = {
 };
 
 static guint16
-de_bssgp_csg_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_csg_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -3482,7 +3482,7 @@ typedef enum
 }
 bssgp_elem_idx_t;
 
-guint16 (*bssgp_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len) = {
+guint16 (*bssgp_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len) = {
        de_bssgp_aligment_octets,                                                                       /* 11.3.1       0x00 Alignment octets */
        de_bssgp_bmax_default_ms,                                                                       /* 11.3.2       0x01 Bmax default MS  */
        de_bssgp_bss_area_ind,                                                                          /* 11.3.3       0x02 BSS Area Indication */
@@ -3595,7 +3595,7 @@ guint16 (*bssgp_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, gui
  * 11.3.62a.1  RAN-INFORMATION-REQUEST RIM Container
  */
 static guint16
-de_bssgp_ran_inf_request_rim_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_ran_inf_request_rim_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -3626,7 +3626,7 @@ de_bssgp_ran_inf_request_rim_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offse
  * 11.3.62a.2  RAN-INFORMATION RIM Container
  */
 static guint16
-de_bssgp_ran_inf_rim_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_ran_inf_rim_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -3660,7 +3660,7 @@ de_bssgp_ran_inf_rim_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
  * 11.3.62a.3  RAN-INFORMATION-ACK RIM Container
  */
 static guint16
-de_bssgp_ran_inf_ack_rim_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_ran_inf_ack_rim_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -3687,7 +3687,7 @@ de_bssgp_ran_inf_ack_rim_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, g
  * 11.3.62a.4  RAN-INFORMATION-ERROR RIM Container
  */
 static guint16
-de_bssgp_ran_inf_error_rim_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_ran_inf_error_rim_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -3718,7 +3718,7 @@ de_bssgp_ran_inf_error_rim_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset,
  * 11.3.62a.5  RAN-INFORMATION-APPLICATION-ERROR RIM Container
  */
 static guint16
-de_bssgp_ran_inf_app_error_rim_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_ran_inf_app_error_rim_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -3750,7 +3750,7 @@ de_bssgp_ran_inf_app_error_rim_cont(tvbuff_t *tvb, proto_tree *tree, guint32 off
  * 11.3.79     Source BSS to Target BSS Transparent Container
  */
 static guint16
-de_bssgp_source_BSS_to_target_BSS_transp_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_source_BSS_to_target_BSS_transp_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -3787,7 +3787,7 @@ de_bssgp_source_BSS_to_target_BSS_transp_cont(tvbuff_t *tvb, proto_tree *tree, g
  * 11.3.80 Target BSS to Source BSS Transparent Container
  */
 static guint16
-de_bssgp_target_BSS_to_source_BSS_transp_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bssgp_target_BSS_to_source_BSS_transp_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint32 consumed;
index 7156487f4943e4aefdf2a50742610a2ebb247562..dddfac3eb29f4a860fcec53005a0826c4660e7b9 100644 (file)
@@ -205,7 +205,7 @@ dissect_diameter_3gpp_ipaddr(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tr
 
 /* AVP Code: 913 MBMS-Required-QoS */
 static int
-dissect_diameter_3gpp_mbms_required_qos(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+dissect_diameter_3gpp_mbms_required_qos(tvbuff_t *tvb _U_, packet_info *pinfo, proto_tree *tree _U_) {
 
        int offset = 0;
        guint length;
@@ -223,7 +223,7 @@ dissect_diameter_3gpp_mbms_required_qos(tvbuff_t *tvb _U_, packet_info *pinfo _U
        proto_tree_add_item(tree, hf_diameter_3gpp_mbms_required_qos_prio, tvb, offset, 1, FALSE);
        offset++;
        length = tvb_length(tvb) - 1;
-       de_sm_qos(tvb, tree, offset, length, NULL, 0);
+       de_sm_qos(tvb, tree,  pinfo, offset,length, NULL, 0);
        return offset+length;
 
 }
index 8d6f0a321dd39edc209034f07eac281082bfba74..81019a667990c627bda503123d39a4d283275151 100644 (file)
@@ -580,7 +580,7 @@ static proto_tree *g_tree;
 static guint8 cell_discriminator = 0x0f;  /* tracks whether handover is to UMTS */
 
 static guint16
-be_field_element_dissect(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_);
+be_field_element_dissect(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_);
 
 #if 0
 This enum has been moved to packet-gsm_a_common to
@@ -717,7 +717,7 @@ gint ett_gsm_bssmap_elem[NUM_GSM_BSSMAP_ELEM];
  * [2] 3.2.2.2 Circuit Identity Code
  */
 static guint16
-be_cic(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len)
+be_cic(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string, int string_len)
 {
     guint32 curr_offset;
     guint32 value;
@@ -758,7 +758,7 @@ be_cic(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *ad
  * 3.2.2.4  Resource Available
  */
 static guint16
-be_res_avail(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_res_avail(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
     guint16 value;
@@ -781,7 +781,7 @@ be_res_avail(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gch
  * [2] 3.2.2.5 Cause
  */
 static guint16
-be_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+be_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len)
 {
     guint8  oct;
     guint32 value;
@@ -968,7 +968,7 @@ be_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_
  * [2] 3.2.2.7 TMSI
  */
 static guint16
-be_tmsi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+be_tmsi(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len)
 {
     guint32 curr_offset;
     guint32 value;
@@ -995,7 +995,7 @@ be_tmsi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_s
  * [2] 3.2.2.8 Number Of MSs
  */
 static guint16
-be_num_ms(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_num_ms(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -1013,7 +1013,7 @@ be_num_ms(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar
  */
 
 static guint16
-be_l3_header_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+be_l3_header_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     guint8  oct;
     guint32 curr_offset;
@@ -1059,7 +1059,7 @@ be_l3_header_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
  * [2] 3.2.2.10 Encryption Information
  */
 static guint16
-be_enc_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+be_enc_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     guint8  oct;
     guint8  mask;
@@ -1115,7 +1115,7 @@ be_enc_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *a
  * [2] 3.2.2.11 Channel Type
  */
 guint16
-be_chan_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+be_chan_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len)
 {
     guint8  oct;
     guint8  sdi;
@@ -1490,7 +1490,7 @@ be_chan_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *
  * 3.2.2.12 Periodicity
  */
 static guint16
-be_periodicity(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_periodicity(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -1508,7 +1508,7 @@ static const true_false_string bssmap_tarr_vals = {
    "No extra Resource Information is requested"
 };
 static guint16
-be_ext_res_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_ext_res_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -1528,7 +1528,7 @@ be_ext_res_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
  * 3.2.2.14 Total Resource Accessible
  */
 static guint16
-be_tot_res_acc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_tot_res_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -1549,7 +1549,7 @@ be_tot_res_acc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
  * The octets 3-5 are coded as specified in 3GPP TS 23.003, 'Identification of Localised Service Area'. Bit 8 of octet 3 is the MSB.
  */
 static guint16
-be_lsa_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_lsa_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -1573,7 +1573,7 @@ be_lsa_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar
  * 3.2.2.16 LSA Identifier List
  */
 static guint16
-be_lsa_id_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_lsa_id_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -1597,7 +1597,7 @@ be_lsa_id_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
  * Formats everything after the discriminator, shared function
  */
 guint16
-be_cell_id_aux(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len, guint8 disc)
+be_cell_id_aux(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len, guint8 disc)
 {
     guint32 value;
     guint32 curr_offset;
@@ -1719,7 +1719,7 @@ be_cell_id_aux(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
 }
 
 static guint16
-be_cell_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len)
+be_cell_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string, int string_len)
 {
     guint8  oct;
     guint8  disc;
@@ -1738,7 +1738,7 @@ be_cell_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar
     NO_MORE_DATA_CHECK(len);
 
     curr_offset +=
-    be_cell_id_aux(tvb, tree, curr_offset, len - (curr_offset - offset), add_string, string_len, disc);
+    be_cell_id_aux(tvb, tree, pinfo, curr_offset, len - (curr_offset - offset), add_string, string_len, disc);
 
     /* no length check possible */
 
@@ -1759,7 +1759,7 @@ static const true_false_string bssmap_pvi_value = {
 };
 
 guint16
-be_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len)
+be_prio(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string, int string_len)
 {
     guint8  oct;
     guint32 curr_offset;
@@ -1820,7 +1820,7 @@ be_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *a
  * 3.2.2.21 Interference Band To Be Used
  */
 static guint16
-be_int_band(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_int_band(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -1846,7 +1846,7 @@ static const true_false_string bssmap_lsa_only_value = {
 };
 
 static guint16
-be_lsa_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_lsa_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -1876,7 +1876,7 @@ be_lsa_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gcha
  * [2] 3.2.2.24 Layer 3 Information
  */
 static guint16
-be_l3_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+be_l3_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
     tvbuff_t    *l3_tvb;
@@ -1932,7 +1932,7 @@ be_l3_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
  * [2] 3.2.2.25 DLCI
  */
 static guint16
-be_dlci(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_dlci(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint8  oct;
     guint32 curr_offset;
@@ -1964,7 +1964,7 @@ be_dlci(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *a
  * [2] 3.2.2.26 Downlink DTX Flag
  */
 static guint16
-be_down_dtx_flag(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_down_dtx_flag(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint   oct;
     guint32 curr_offset;
@@ -1992,7 +1992,7 @@ be_down_dtx_flag(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * [2] 3.2.2.27 Cell Identifier List
  */
 guint16
-be_cell_id_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+be_cell_id_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len)
 {
     guint8  oct;
     guint16 consumed;
@@ -2030,7 +2030,7 @@ be_cell_id_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
             add_string[0] = '\0';
 
         consumed =
-            be_cell_id_aux(tvb, subtree, curr_offset, len - (curr_offset - offset), add_string, string_len, disc);
+            be_cell_id_aux(tvb, subtree, pinfo, curr_offset, len - (curr_offset - offset), add_string, string_len, disc);
 
         if (add_string && add_string[0] != '\0')
         {
@@ -2071,7 +2071,7 @@ static const value_string gsm_a_bssap_cell_id_list_seg_cell_id_disc_vals[] = {
 };
 
 static guint16
-be_cell_id_list_seg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_cell_id_list_seg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -2097,7 +2097,7 @@ be_cell_id_list_seg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _
  * 3.2.2.27b    Cell Identifier List Segment for established cells
  */
 static guint16
-be_cell_id_lst_seg_f_est_cells(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_cell_id_lst_seg_f_est_cells(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -2117,7 +2117,7 @@ be_cell_id_lst_seg_f_est_cells(tvbuff_t *tvb, proto_tree *tree, guint32 offset,
  * 3.2.2.27c    Cell Identifier List Segment for cells to be established
  */
 static guint16
-be_cell_id_lst_seg_f_cell_tb_est(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_cell_id_lst_seg_f_cell_tb_est(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -2140,7 +2140,7 @@ be_cell_id_lst_seg_f_cell_tb_est(tvbuff_t *tvb, proto_tree *tree, guint32 offset
  * 3.2.2.27e    Cell Identifier List Segment for released cells - no user present
  */
 static guint16
-be_cell_id_lst_seg_f_rel_cell(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_cell_id_lst_seg_f_rel_cell(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -2160,7 +2160,7 @@ be_cell_id_lst_seg_f_rel_cell(tvbuff_t *tvb, proto_tree *tree, guint32 offset, g
  * 3.2.2.27f    Cell Identifier List Segment for not established cells - no establishment possible
  */
 static guint16
-be_cell_id_lst_seg_f_not_est_cell(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_cell_id_lst_seg_f_not_est_cell(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -2192,7 +2192,7 @@ static const value_string gsm_a_bssap_resource_indication_vals[] = {
     { 0,    NULL }
 };
 static guint16
-be_res_ind_method(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_res_ind_method(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -2214,7 +2214,7 @@ be_res_ind_method(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
  * 3.2.2.31 Circuit Identity Code List
  */
 static guint16
-be_cic_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_cic_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -2229,7 +2229,7 @@ be_cic_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gcha
  * 3.2.2.32 Diagnostics
  */
 static guint16
-be_diag(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_diag(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -2303,7 +2303,7 @@ static const value_string gsm_a_bssmap_trace_invoking_event_vals[] = {
     { 0, NULL },
 };
 static guint16
-be_chosen_chan(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_chosen_chan(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint8  oct;
     guint32 curr_offset;
@@ -2328,7 +2328,7 @@ be_chosen_chan(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
  * [2] 3.2.2.34 Cipher Response Mode
  */
 static guint16
-be_ciph_resp_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_ciph_resp_mode(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint8  oct;
     guint32 curr_offset;
@@ -2358,7 +2358,7 @@ be_ciph_resp_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
  * [2] 3.2.2.35 Layer 3 Message Contents
  */
 static guint16
-be_l3_msg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+be_l3_msg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
     tvbuff_t    *l3_tvb;
@@ -2385,7 +2385,7 @@ be_l3_msg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
  * [2] 3.2.2.36 Channel Needed
  */
 static guint16
-be_cha_needed(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_cha_needed(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -2403,7 +2403,7 @@ be_cha_needed(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc
  * coded as the MSC/BSS Trace Type specified in 3GPP TS 52.008
  */
 static guint16
-be_trace_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_trace_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
     gint bit_offset;
@@ -2432,7 +2432,7 @@ be_trace_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc
  * [2] 3.2.2.38 TriggerID
  */
 static guint16
-be_trace_trigger_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_trace_trigger_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -2448,7 +2448,7 @@ be_trace_trigger_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _
 
     /* 3.2.2.39 Trace Reference */
 static guint16
-be_trace_reference(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_trace_reference(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -2464,7 +2464,7 @@ be_trace_reference(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U
 }
     /* 3.2.2.40 TransactionID */
 static guint16
-be_trace_transaction_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_trace_transaction_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -2495,7 +2495,7 @@ be_trace_transaction_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
  * For the OMC identity, see 3GPP TS 52.021
  */
 static guint16
-be_trace_omc_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_trace_omc_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -2512,7 +2512,7 @@ be_trace_omc_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * [2] 3.2.2.43 Forward Indicator
  */
 static guint16
-be_for_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_for_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint8  oct;
     guint32 curr_offset;
@@ -2551,7 +2551,7 @@ be_for_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar
  * [2] 3.2.2.44 Chosen Encryption Algorithm
  */
 static guint16
-be_chosen_enc_alg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len)
+be_chosen_enc_alg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string, int string_len)
 {
     guint8  oct;
     guint32 curr_offset;
@@ -2595,7 +2595,7 @@ be_chosen_enc_alg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
  * [2] 3.2.2.45 Circuit Pool
  */
 static guint16
-be_cct_pool(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len)
+be_cct_pool(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string, int string_len)
 {
     guint8  oct;
     guint32 curr_offset;
@@ -2642,7 +2642,7 @@ be_cct_pool(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gcha
  * [2] 3.2.2.49 Current Channel Type 1
  */
 static guint16
-be_curr_chan_1(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_curr_chan_1(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint8  oct;
     guint32 curr_offset;
@@ -2667,7 +2667,7 @@ be_curr_chan_1(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
  * [2] 3.2.2.50 Queuing Indicator
  */
 static guint16
-be_que_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_que_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint8  oct;
     guint32 curr_offset;
@@ -2698,7 +2698,7 @@ be_que_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar
  * [2] 3.2.2.51 Speech Version
  */
 static guint16
-be_speech_ver(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len)
+be_speech_ver(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string, int string_len)
 {
     guint8  oct;
     guint32 curr_offset;
@@ -2757,7 +2757,7 @@ be_speech_ver(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc
  * 3.2.2.52 Assignment Requirement
  */
 static guint16
-be_ass_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_ass_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -2799,7 +2799,7 @@ static const value_string gsm_a_bssmap_call_priority_vals[] = {
 };
 
 guint16
-be_emlpp_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_emlpp_prio(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree_add_bits_item(tree, hf_gsm_a_bssmap_spare_bits, tvb, offset << 3, 5, ENC_BIG_ENDIAN);
     proto_tree_add_item(tree, hf_gsm_a_bssmap_emlpp_prio, tvb, offset, 1, ENC_BIG_ENDIAN);
@@ -2823,7 +2823,7 @@ static const value_string gsm_a_bssmap_smi_vals[] = {
 };
 
 static guint16
-be_conf_evo_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_conf_evo_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -2853,7 +2853,7 @@ bssmap_old_bss_to_new_bss_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pin
     g_tree = tree;
 
     len = tvb_length(tvb);
-    be_field_element_dissect(tvb, tree, 0, len, NULL, 0);
+    be_field_element_dissect(tvb, tree, pinfo, 0, len, NULL, 0);
 
     g_pinfo = NULL;
     g_tree = NULL;
@@ -2881,7 +2881,7 @@ static const value_string lcs_priority_vals[] = {
 };
 
 static guint16
-be_lcs_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_lcs_prio(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -2898,7 +2898,7 @@ be_lcs_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gcha
  * 3.2.2.63 Location Type (Location Type element of 3GPP TS 49.031 BSSAP-LE.)
  */
 static guint16
-be_loc_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_loc_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
     guint8 location_information;
@@ -2926,7 +2926,7 @@ be_loc_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gcha
  * according to 3GPP TS 23.032.
  */
 static guint16
-be_loc_est(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_loc_est(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     tvbuff_t *data_tvb;
     guint32 curr_offset;
@@ -2943,7 +2943,7 @@ be_loc_est(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar
  * Positioning Data element of 3GPP TS 49.031 BSSAP-LE.
  */
 static guint16
-be_pos_data(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_pos_data(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
     guint8 i;
@@ -3009,7 +3009,7 @@ static const value_string gsm_a_apdu_protocol_id_strings[] = {
 };
 
 static guint16
-be_apdu(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+be_apdu(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
     guint8  apdu_protocol_id;
@@ -3071,7 +3071,7 @@ be_apdu(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_s
  * Requested GPS Data element of 3GPP TS 49.031 BSSAP-LE.
  */
 static guint16
-be_gps_assist_data(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_gps_assist_data(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -3092,7 +3092,7 @@ be_gps_assist_data(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U
   * Return Error Request element of 3GPP TS 49.031 BSSAP-LE.
   */
 static guint16
-be_ret_err_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_ret_err_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -3107,7 +3107,7 @@ be_ret_err_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
  * Return Error Cause element of 3GPP TS 49.031 BSSAP-LE.
  */
 static guint16
-be_ret_err_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_ret_err_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -3122,7 +3122,7 @@ be_ret_err_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * Segmentation element of 3GPP TS 49.031 BSSAP-LE.
  */
 static guint16
-be_seg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_seg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -3147,7 +3147,7 @@ static const value_string gsm_a_bssmap_serv_ho_inf_vals[] = {
     { 0, NULL },
 };
 static guint16
-be_serv_ho(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_serv_ho(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -3165,7 +3165,7 @@ be_serv_ho(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar
  */
 
 static guint16
-be_src_rnc_to_tar_rnc_umts(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_src_rnc_to_tar_rnc_umts(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     tvbuff_t    *container_tvb;
     guint32 curr_offset;
@@ -3185,7 +3185,7 @@ be_src_rnc_to_tar_rnc_umts(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guin
  * 3.2.2.77 Source RNC to target RNC transparent information (cdma2000)
  */
 static guint16
-be_src_rnc_to_tar_rnc_cdma(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_src_rnc_to_tar_rnc_cdma(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -3203,7 +3203,7 @@ be_src_rnc_to_tar_rnc_cdma(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guin
  */
 
 static guint16
-be_geran_cls_m(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_geran_cls_m(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -3234,7 +3234,7 @@ bssmap_new_bss_to_old_bss_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pin
     g_tree = tree;
 
     len = tvb_length(tvb);
-    be_field_element_dissect(tvb, tree, 0, len, NULL, 0);
+    be_field_element_dissect(tvb, tree, pinfo, 0, len, NULL, 0);
 
     g_pinfo = NULL;
     g_tree = NULL;
@@ -3245,7 +3245,7 @@ bssmap_new_bss_to_old_bss_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pin
  * 3.2.2.81 Inter-System Information
  */
 static guint16
-be_inter_sys_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_inter_sys_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -3259,7 +3259,7 @@ be_inter_sys_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * 3.2.2.82 SNA Access Information
  */
 static guint16
-be_sna_acc_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_sna_acc_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -3297,7 +3297,7 @@ static const value_string gsm_a_bssmap_paging_cause_vals[] = {
 };
 
 static guint16
-be_paging_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_paging_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -3319,7 +3319,7 @@ be_paging_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc
  * 3.2.2.87 Velocity Estimate
  */
 static guint16
-be_vel_est(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_vel_est(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -3362,7 +3362,7 @@ static const true_false_string gsm_bssmap_bss_tcp_vals = {
 };
 
 static guint16
-be_vgcs_feat_flg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_vgcs_feat_flg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -3391,7 +3391,7 @@ static const value_string gsm_a_bssmap_talker_pri_vals[] = {
 };
 
 static guint16
-be_talker_pri(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_talker_pri(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -3413,7 +3413,7 @@ be_talker_pri(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc
  * 3.2.2.91 Talker Identity
  */
 static guint16
-be_talker_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_talker_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -3430,7 +3430,7 @@ be_talker_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gch
  * 3.2.2.92 SMS to VGCS
  */
 static guint16
-be_sms_to_vgcs(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_sms_to_vgcs(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -3448,7 +3448,7 @@ be_sms_to_vgcs(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
  * 3.2.2.93 VGCS talker mode
  */
 static guint16
-be_vgcs_talker_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_vgcs_talker_mode(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -3467,7 +3467,7 @@ be_vgcs_talker_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _
  * XXX move to packet-gsm_bssmap_le.c
  */
 guint16
-be_ganss_ass_dta(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_ganss_ass_dta(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -3509,7 +3509,7 @@ static const value_string gsm_a_bssmap_usage_vals[] = {
 };
 
 guint16
-be_ganss_pos_dta(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_ganss_pos_dta(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -3526,7 +3526,7 @@ be_ganss_pos_dta(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * 3.2.2.97 GANSS Location Type
  */
 guint16
-be_ganss_loc_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_ganss_loc_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -3546,7 +3546,7 @@ be_ganss_loc_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
  * 3.2.2.100    Application Data Information
  */
 static guint16
-be_app_data_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_app_data_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -3564,7 +3564,7 @@ be_app_data_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
   * 3.2.2.102   AoIP Transport Layer Address
   */
 static guint16
-be_aoip_trans_lay_add(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_aoip_trans_lay_add(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -3664,7 +3664,7 @@ static const value_string bssap_extended_codec_values[] = {
 };
 
 static guint16
-be_speech_codec_lst(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_speech_codec_lst(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset, consumed = 0;
     guint8 codec;
@@ -3780,7 +3780,7 @@ static const true_false_string bssmap_pt2_vals = {
     "PCM over A-Interface with TDM as transport is not selected for this Codec Type"
 };
 static guint16
-be_speech_codec(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_speech_codec(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset, consumed = 0;
     guint8 codec;
@@ -3879,7 +3879,7 @@ be_speech_codec(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * 3.2.2.105    Call Identifier
  */
 static guint16
-be_call_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_call_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -3899,7 +3899,7 @@ be_call_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar
  * 3.2.2.106    Call Identifier List
  */
 static guint16
-be_call_id_lst(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_call_id_lst(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
     curr_offset = offset;
@@ -3915,7 +3915,7 @@ be_call_id_lst(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
     return(len);
 }
 
-guint16 (*bssmap_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len) = {
+guint16 (*bssmap_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len) = {
     be_cic,             /* Circuit Identity Code */
     NULL,               /* Reserved */
     be_res_avail,       /* Resource Available */
@@ -4053,7 +4053,7 @@ static const value_string fe_extra_info_ue_prob_vals[] = {
 };
 
 static guint16
-be_fe_extra_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_fe_extra_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -4069,7 +4069,7 @@ be_fe_extra_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
 
 /* 3.2.3.2  Current Channel type 2 */
 static guint16
-be_fe_cur_chan_type2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_fe_cur_chan_type2(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -4086,7 +4086,7 @@ be_fe_cur_chan_type2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
 
 /* 3.2.3.3  Target cell radio information */
 static guint16
-be_fe_target_radio_cell_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_fe_target_radio_cell_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -4100,7 +4100,7 @@ be_fe_target_radio_cell_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, gu
 
 /* 3.2.3.4  GPRS Suspend Information */
 static guint16
-be_fe_gprs_suspend_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_fe_gprs_suspend_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset = offset;
 
@@ -4136,7 +4136,7 @@ static const value_string gsm_a_bssmap_dtm_info_egprs_ind_vals[] = {
 };
 
 static guint16
-be_fe_dual_transfer_mode_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_fe_dual_transfer_mode_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -4152,7 +4152,7 @@ be_fe_dual_transfer_mode_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, g
 
 /* 3.2.3.7  Inter RAT Handover Info */
 static guint16
-be_fe_inter_rat_handover_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_fe_inter_rat_handover_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     tvbuff_t    *container_tvb;
 
@@ -4180,20 +4180,20 @@ static const value_string gsm_a_bssmap_cell_load_nrt_vals[] = {
 
 /* 3.2.3.11 Cell Load Information Group */
 static guint16
-be_fe_cell_load_info_group(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_fe_cell_load_info_group(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
     curr_offset = offset;
-    curr_offset += be_cell_id(tvb, tree, curr_offset, len, NULL, 0);
-    curr_offset += be_field_element_dissect(tvb, tree, curr_offset, len + offset - curr_offset, NULL, 0);
+    curr_offset += be_cell_id(tvb, tree, pinfo, curr_offset, len, NULL, 0);
+    curr_offset += be_field_element_dissect(tvb, tree, pinfo, curr_offset, len + offset - curr_offset, NULL, 0);
 
     return(curr_offset - offset);
 }
 
 /* 3.2.3.12 Cell Load Information */
 static guint16
-be_fe_cell_load_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_fe_cell_load_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -4212,7 +4212,7 @@ be_fe_cell_load_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
 
 /* 3.2.3.13 PS Indication */
 static guint16
-be_fe_ps_indication(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_fe_ps_indication(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -4225,7 +4225,7 @@ be_fe_ps_indication(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _
 
 /* 3.2.3.14 DTM Handover Command Indication */
 static guint16
-be_fe_dtm_ho_command_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_fe_dtm_ho_command_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -4236,7 +4236,7 @@ be_fe_dtm_ho_command_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
     return(curr_offset - offset);
 }
 
-static guint16 (*bssmap_bss_to_bss_element_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_) = {
+static guint16 (*bssmap_bss_to_bss_element_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_) = {
     be_fe_extra_info,              /* { 0x01,       "Extra information" }, */
     be_fe_cur_chan_type2,          /* { 0x02,       "Current Channel Type 2" }, */
     be_fe_target_radio_cell_info,  /* { 0x03,       "Target cell radio information" }, */
@@ -4257,7 +4257,7 @@ static guint16 (*bssmap_bss_to_bss_element_fcn[])(tvbuff_t *tvb, proto_tree *tre
 };
 
 static guint16
-be_field_element_dissect(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+be_field_element_dissect(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset, ie_len, fe_start_offset;
     gint idx;
@@ -4303,7 +4303,7 @@ be_field_element_dissect(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
         else
         {
             /* dissect the field element */
-            curr_offset += (*bssmap_bss_to_bss_element_fcn[idx])(tvb, bss_to_bss_tree, curr_offset, ie_len, NULL, 0);
+            curr_offset += (*bssmap_bss_to_bss_element_fcn[idx])(tvb, bss_to_bss_tree, pinfo, curr_offset, ie_len, NULL, 0);
 
             EXTRANEOUS_DATA_CHECK(ie_len, curr_offset - fe_start_offset);
         }
index 2c7ee83c8e2e65d392111e4a2e328e0afdd513bd..8aa6e0de859c5bd4ef28bcff65be765129dd67a1 100644 (file)
@@ -948,7 +948,7 @@ static const value_string gsm_a_dir_of_ver_speed_vals[] = {
 };
 
 guint16
-dissect_description_of_velocity(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+dissect_description_of_velocity(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_item *velocity_item;
        guint32 curr_offset;
@@ -1171,7 +1171,7 @@ static int get_hf_elem_id(int pdu_type)
 /*
  * Type Length Value (TLV) element dissector
  */
-guint16 elem_tlv(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int idx, guint32 offset, guint len _U_, const gchar *name_add)
+guint16 elem_tlv(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint8 iei, gint pdu_type, int idx, guint32 offset, guint len _U_, const gchar *name_add)
 {
        guint8          oct;
        guint16         parm_len;
@@ -1182,7 +1182,7 @@ guint16 elem_tlv(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int
        proto_item              *item;
        const value_string      *elem_names;
        gint            *elem_ett;
-       guint16 (**elem_funcs)(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
+       guint16 (**elem_funcs)(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len);
 
        curr_offset = offset;
        consumed = 0;
@@ -1227,7 +1227,7 @@ guint16 elem_tlv(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int
                                a_add_string=ep_alloc(1024);
                                a_add_string[0] = '\0';
                                consumed =
-                               (*elem_funcs[idx])(tvb, subtree, curr_offset + 2,
+                               (*elem_funcs[idx])(tvb, subtree, pinfo, curr_offset + 2,
                                        parm_len, a_add_string, 1024);
 
                                if (a_add_string[0] != '\0')
@@ -1251,7 +1251,7 @@ guint16 elem_tlv(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int
  * octet 2 0/1 ext  length
  * octet 2a length
  */
-guint16 elem_telv(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int idx, guint32 offset, guint len _U_, const gchar *name_add)
+guint16 elem_telv(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint8 iei, gint pdu_type, int idx, guint32 offset, guint len _U_, const gchar *name_add)
 {
        guint8          oct;
        guint16         parm_len;
@@ -1262,7 +1262,7 @@ guint16 elem_telv(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, in
        proto_item              *item;
        const value_string      *elem_names;
        gint            *elem_ett;
-       guint16 (**elem_funcs)(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
+       guint16 (**elem_funcs)(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len);
 
        curr_offset = offset;
        consumed = 0;
@@ -1316,7 +1316,7 @@ guint16 elem_telv(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, in
                                a_add_string=ep_alloc(1024);
                                a_add_string[0] = '\0';
                                consumed =
-                               (*elem_funcs[idx])(tvb, subtree, curr_offset + 1 + lengt_length,
+                               (*elem_funcs[idx])(tvb, subtree, pinfo, curr_offset + 1 + lengt_length,
                                        parm_len, a_add_string, 1024);
 
                                if (a_add_string[0] != '\0')
@@ -1338,7 +1338,7 @@ guint16 elem_telv(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, in
  * information elements of format LV-E or TLV-E with value part consisting of zero,
  * one or more octets and a maximum of 65535 octets (type 6). This category is used in EPS only.
  */
-guint16 elem_tlv_e(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int idx, guint32 offset, guint len _U_, const gchar *name_add)
+guint16 elem_tlv_e(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint8 iei, gint pdu_type, int idx, guint32 offset, guint len _U_, const gchar *name_add)
 {
        guint8          oct;
        guint16         parm_len;
@@ -1348,7 +1348,7 @@ guint16 elem_tlv_e(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, i
        proto_item              *item;
        const value_string      *elem_names;
        gint            *elem_ett;
-       guint16 (**elem_funcs)(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
+       guint16 (**elem_funcs)(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
 
        curr_offset = offset;
        consumed = 0;
@@ -1391,7 +1391,7 @@ guint16 elem_tlv_e(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, i
                                a_add_string=ep_alloc(1024);
                                a_add_string[0] = '\0';
                                consumed =
-                               (*elem_funcs[idx])(tvb, subtree, curr_offset + 1 + 2,
+                               (*elem_funcs[idx])(tvb, subtree, pinfo, curr_offset + 1 + 2,
                                        parm_len, a_add_string, 1024);
 
                                if (a_add_string[0] != '\0')
@@ -1413,7 +1413,7 @@ guint16 elem_tlv_e(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, i
  * Length cannot be used in these functions, big problem if a element dissector
  * is not defined for these.
  */
-guint16 elem_tv(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int idx, guint32 offset, const gchar *name_add)
+guint16 elem_tv(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint8 iei, gint pdu_type, int idx, guint32 offset, const gchar *name_add)
 {
        guint8          oct;
        guint16         consumed;
@@ -1422,7 +1422,7 @@ guint16 elem_tv(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int
        proto_item              *item;
        const value_string      *elem_names;
        gint            *elem_ett;
-       guint16 (**elem_funcs)(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
+       guint16 (**elem_funcs)(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
 
        curr_offset = offset;
        consumed = 0;
@@ -1462,7 +1462,7 @@ guint16 elem_tv(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int
 
                        a_add_string=ep_alloc(1024);
                        a_add_string[0] = '\0';
-                       consumed = (*elem_funcs[idx])(tvb, subtree, curr_offset + 1, -1, a_add_string, 1024);
+                       consumed = (*elem_funcs[idx])(tvb, subtree, pinfo, curr_offset + 1, -1, a_add_string, 1024);
 
                        if (a_add_string[0] != '\0')
                        {
@@ -1485,7 +1485,7 @@ guint16 elem_tv(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int
  * Length cannot be used in these functions, big problem if a element dissector
  * is not defined for these.
  */
-guint16 elem_tv_short(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int idx, guint32 offset, const gchar *name_add)
+guint16 elem_tv_short(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint8 iei, gint pdu_type, int idx, guint32 offset, const gchar *name_add)
 {
        guint8          oct;
        guint16         consumed;
@@ -1494,7 +1494,7 @@ guint16 elem_tv_short(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type
        proto_item              *item;
        const value_string      *elem_names;
        gint            *elem_ett;
-       guint16 (**elem_funcs)(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
+       guint16 (**elem_funcs)(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
        char buf[10+1];
 
        curr_offset = offset;
@@ -1537,7 +1537,7 @@ guint16 elem_tv_short(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type
 
                        a_add_string=ep_alloc(1024);
                        a_add_string[0] = '\0';
-                       consumed = (*elem_funcs[idx])(tvb, subtree, curr_offset, -1, a_add_string, 1024);
+                       consumed = (*elem_funcs[idx])(tvb, subtree, pinfo, curr_offset, -1, a_add_string, 1024);
 
                        if (a_add_string[0] != '\0')
                        {
@@ -1554,14 +1554,14 @@ guint16 elem_tv_short(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type
 /*
  * Type (T) element dissector
  */
-guint16 elem_t(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int idx, guint32 offset, const gchar *name_add)
+guint16 elem_t(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint8 iei, gint pdu_type, int idx, guint32 offset, const gchar *name_add)
 {
        guint8          oct;
        guint32         curr_offset;
        guint16         consumed;
        const value_string      *elem_names;
        gint            *elem_ett;
-       guint16 (**elem_funcs)(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
+       guint16 (**elem_funcs)(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
 
        curr_offset = offset;
        consumed = 0;
@@ -1589,7 +1589,7 @@ guint16 elem_t(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int i
  * Length Value (LV) element dissector
  */
 guint16
-elem_lv(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint32 offset, guint len _U_, const gchar *name_add)
+elem_lv(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gint pdu_type, int idx, guint32 offset, guint len _U_, const gchar *name_add)
 {
        guint8          parm_len;
        guint16         consumed;
@@ -1598,7 +1598,7 @@ elem_lv(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint32 offset,
        proto_item              *item;
        const value_string      *elem_names;
        gint            *elem_ett;
-       guint16 (**elem_funcs)(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
+       guint16 (**elem_funcs)(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
 
        curr_offset = offset;
        consumed = 0;
@@ -1636,7 +1636,7 @@ elem_lv(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint32 offset,
                        a_add_string=ep_alloc(1024);
                        a_add_string[0] = '\0';
                        consumed =
-                               (*elem_funcs[idx])(tvb, subtree, curr_offset + 1,
+                               (*elem_funcs[idx])(tvb, subtree, pinfo, curr_offset + 1,
                                        parm_len, a_add_string, 1024);
 
                        if (a_add_string[0] != '\0')
@@ -1652,7 +1652,7 @@ elem_lv(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint32 offset,
 /*
  * Length Value Extended(LV-E) element dissector
  */
-guint16 elem_lv_e(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint32 offset, guint len _U_, const gchar *name_add)
+guint16 elem_lv_e(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gint pdu_type, int idx, guint32 offset, guint len _U_, const gchar *name_add)
 {
        guint16         parm_len;
        guint16         consumed;
@@ -1661,7 +1661,7 @@ guint16 elem_lv_e(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint
        proto_item              *item;
        const value_string      *elem_names;
        gint            *elem_ett;
-       guint16 (**elem_funcs)(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
+       guint16 (**elem_funcs)(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
 
        curr_offset = offset;
        consumed = 0;
@@ -1697,7 +1697,7 @@ guint16 elem_lv_e(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint
                        a_add_string=ep_alloc(1024);
                        a_add_string[0] = '\0';
                        consumed =
-                               (*elem_funcs[idx])(tvb, subtree, curr_offset + 2,
+                               (*elem_funcs[idx])(tvb, subtree, pinfo, curr_offset + 2,
                                        parm_len, a_add_string, 1024);
 
                        if (a_add_string[0] != '\0')
@@ -1715,7 +1715,7 @@ guint16 elem_lv_e(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint
  * Length cannot be used in these functions, big problem if a element dissector
  * is not defined for these.
  */
-guint16 elem_v(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint32 offset, const gchar *name_add)
+guint16 elem_v(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gint pdu_type, int idx, guint32 offset, const gchar *name_add)
 {
        guint16         consumed;
        guint32         curr_offset;
@@ -1723,7 +1723,7 @@ guint16 elem_v(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint32
        proto_item              *item;
        const value_string      *elem_names;
        gint            *elem_ett;
-       guint16 (**elem_funcs)(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
+       guint16 (**elem_funcs)(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len);
 
        curr_offset = offset;
        consumed = 0;
@@ -1755,7 +1755,7 @@ guint16 elem_v(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint32
 
                a_add_string=ep_alloc(1024);
                a_add_string[0] = '\0';
-               consumed = (*elem_funcs[idx])(tvb, subtree, curr_offset, -1, a_add_string, 1024);
+               consumed = (*elem_funcs[idx])(tvb, subtree, pinfo, curr_offset, -1, a_add_string, 1024);
                if (a_add_string[0] != '\0')
                {
                        proto_item_append_text(item, "%s", a_add_string);
@@ -1774,13 +1774,13 @@ guint16 elem_v(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint32
  * This is expected to be used upper nibble first, as the tables of 24.008.
  */
 
-guint16 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint32 offset)
+guint16 elem_v_short(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gint pdu_type, int idx, guint32 offset)
 {
        guint16         consumed;
        guint32         curr_offset;
        const value_string      *elem_names;
        gint            *elem_ett;
-       guint16 (**elem_funcs)(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
+       guint16 (**elem_funcs)(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
 
        curr_offset = offset;
        consumed = 0;
@@ -1803,7 +1803,7 @@ guint16 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, gu
 
                a_add_string=ep_alloc(1024);
                a_add_string[0] = '\0';
-               consumed = (*elem_funcs[idx])(tvb, tree, curr_offset, (lower_nibble?LOWER_NIBBLE:UPPER_NIBBLE), a_add_string, 1024);
+               consumed = (*elem_funcs[idx])(tvb, tree, pinfo, curr_offset, (lower_nibble?LOWER_NIBBLE:UPPER_NIBBLE), a_add_string, 1024);
        }
        if (!lower_nibble)      /* is this the first (upper) nibble ? */
        {
@@ -1964,7 +1964,7 @@ mcc_mnc_aux(guint8 *octs, gchar *mcc, gchar *mnc)
  * [3] 10.5.1.1 Cell Identity
  */
 guint16
-de_cell_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+de_cell_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len)
 {
        guint32 curr_offset;
 
@@ -1972,7 +1972,7 @@ de_cell_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
 
        curr_offset +=
        /* 0x02 CI */
-       be_cell_id_aux(tvb, tree, offset, len, add_string, string_len, 0x02);
+       be_cell_id_aux(tvb, tree, pinfo, offset, len, add_string, string_len, 0x02);
 
        /* no length check possible */
 
@@ -2007,7 +2007,7 @@ static const value_string gsm_a_key_seq_vals[] = {
 };
 
 guint16
-de_ciph_key_seq_num( tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_ciph_key_seq_num( tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -2026,7 +2026,7 @@ de_ciph_key_seq_num( tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
  */
 
 guint16
-de_lai(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_lai(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  octs[3];
        guint16 value;
@@ -2076,7 +2076,7 @@ static const true_false_string gsm_a_present_vals = {
 };
 
 guint16
-de_mid(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+de_mid(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len)
 {
        guint8  oct;
        guint32 curr_offset;
@@ -2284,7 +2284,7 @@ de_mid(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_st
  * [3] 10.5.1.5
  */
 guint16
-de_ms_cm_1(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_ms_cm_1(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
@@ -2324,7 +2324,7 @@ de_ms_cm_1(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar
  * 3GPP TS 24.008 version 7.8.0 Release 7
  */
 guint16
-de_ms_cm_2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_ms_cm_2(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        curr_offset = offset;
@@ -2399,7 +2399,7 @@ de_ms_cm_2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
        }
 
 guint16
-de_ms_cm_3(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_ms_cm_3(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint32 bit_offset; /* Offset in bits */
@@ -3031,7 +3031,7 @@ de_ms_cm_3(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
  * [3] 10.5.1.8
  */
 static guint16
-de_spare_nibble(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_spare_nibble(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -3052,7 +3052,7 @@ de_spare_nibble(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * [3] 10.5.1.9 Descriptive group or broadcast call reference
  */
 guint16
-de_d_gb_call_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_d_gb_call_ref(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 value;
@@ -3124,7 +3124,7 @@ de_d_gb_call_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * [3] 10.5.1.10a PD and SAPI $(CCBS)$
  */
 static guint16
-de_pd_sapi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_pd_sapi(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
@@ -3185,7 +3185,7 @@ static const value_string gsm_a_call_prio_vals[] = {
 };
 
 static guint16
-de_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_prio(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -3204,7 +3204,7 @@ de_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *a
  * [3] 10.5.1.13 PLMN list
  */
 guint16
-de_plmn_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+de_plmn_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len)
 {
        guint8  octs[3];
        guint32 curr_offset;
@@ -3254,7 +3254,7 @@ static const value_string gsm_a_pld_xid_vals[] = {
        { 0,                    NULL }
 };
 guint16
-de_nas_cont_for_ps_ho(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_nas_cont_for_ps_ho(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -3281,7 +3281,7 @@ de_nas_cont_for_ps_ho(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
 }
 
 
-guint16 (*common_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len) = {
+guint16 (*common_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len) = {
        /* Common Information Elements 10.5.1 */
        de_cell_id,                             /* Cell Identity */
        de_ciph_key_seq_num,    /* Ciphering Key Sequence Number */
index aa46613274061cf20917a5f4a92da80777418212..b911fde5c84c161b68b39ad543b6dc39697f1303 100644 (file)
@@ -54,7 +54,7 @@
 #include "packet-sccp.h"
 
 /* PROTOTYPES/FORWARDS */
-typedef guint16 (*elem_fcn)(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
+typedef guint16 (*elem_fcn)(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
 typedef void (*msg_fcn)(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len);
 #if 0
 /* XXX moved to tvbuff.h, clean up later */
@@ -79,7 +79,7 @@ int my_dgt_tbcd_unpack(
 extern const value_string protocol_discriminator_vals[];
 extern const value_string gsm_a_pd_short_str_vals[];
 
-extern guint16 de_cld_party_bcd_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
+extern guint16 de_cld_party_bcd_num(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
 
 /* Needed to share the packet-gsm_a_common.c functions */
 extern const value_string gsm_bssmap_elem_strings[];
@@ -160,7 +160,7 @@ extern packet_info *gsm_a_dtap_pinfo;
 
 /* TS 23 032 */
 void dissect_geographical_description(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
-guint16 dissect_description_of_velocity(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_);
+guint16 dissect_description_of_velocity(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
 
 
 /* common field values */
@@ -333,17 +333,17 @@ extern const char* get_gsm_a_msg_string(int pdu_type, int idx);
 /*
  * Type Length Value (TLV) element dissector
  */
-extern guint16 elem_tlv(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int idx, guint32 offset, guint len, const gchar *name_add);
+extern guint16 elem_tlv(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint8 iei, gint pdu_type, int idx, guint32 offset, guint len, const gchar *name_add);
 
 /*
  * Type Extendable Length Value (TLVE) element dissector
  */
-extern guint16 elem_telv(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int idx, guint32 offset, guint len, const gchar *name_add);
+extern guint16 elem_telv(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint8 iei, gint pdu_type, int idx, guint32 offset, guint len, const gchar *name_add);
 
 /*
  * Type Length Value (TLV-E) element dissector
  */
-extern guint16 elem_tlv_e(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int idx, guint32 offset, guint len, const gchar *name_add);
+extern guint16 elem_tlv_e(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint8 iei, gint pdu_type, int idx, guint32 offset, guint len, const gchar *name_add);
 
 /*
  * Type Value (TV) element dissector
@@ -351,7 +351,7 @@ extern guint16 elem_tlv_e(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_
  * Length cannot be used in these functions, big problem if a element dissector
  * is not defined for these.
  */
-extern guint16 elem_tv(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int idx, guint32 offset, const gchar *name_add);
+extern guint16 elem_tv(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint8 iei, gint pdu_type, int idx, guint32 offset, const gchar *name_add);
 
 /*
  * Type Value (TV) element dissector
@@ -360,22 +360,22 @@ extern guint16 elem_tv(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_typ
  * Length cannot be used in these functions, big problem if a element dissector
  * is not defined for these.
  */
-extern guint16 elem_tv_short(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int idx, guint32 offset, const gchar *name_add);
+extern guint16 elem_tv_short(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint8 iei, gint pdu_type, int idx, guint32 offset, const gchar *name_add);
 
 /*
  * Type (T) element dissector
  */
-extern guint16 elem_t(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, int idx, guint32 offset, const gchar *name_add);
+extern guint16 elem_t(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint8 iei, gint pdu_type, int idx, guint32 offset, const gchar *name_add);
 
 /*
  * Length Value (LV) element dissector
  */
-extern guint16 elem_lv(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint32 offset, guint len, const gchar *name_add);
+extern guint16 elem_lv(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gint pdu_type, int idx, guint32 offset, guint len, const gchar *name_add);
 
 /*
  * Length Value (LV-E) element dissector
  */
-extern guint16 elem_lv_e(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint32 offset, guint len, const gchar *name_add);
+extern guint16 elem_lv_e(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gint pdu_type, int idx, guint32 offset, guint len, const gchar *name_add);
 
 /*
  * Value (V) element dissector
@@ -383,7 +383,7 @@ extern guint16 elem_lv_e(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx
  * Length cannot be used in these functions, big problem if a element dissector
  * is not defined for these.
  */
-extern guint16 elem_v(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint32 offset, const gchar *name_add);
+extern guint16 elem_v(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gint pdu_type, int idx, guint32 offset, const gchar *name_add);
 
 /*
  * Short Value (V_SHORT) element dissector
@@ -393,7 +393,7 @@ extern guint16 elem_v(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, g
  * This is expected to be used upper nibble first, as the tables of 24.008.
  */
 
-extern guint16 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint32 offset);
+extern guint16 elem_v_short(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gint pdu_type, int idx, guint32 offset);
 
 
 /* XXX: Most (if not all) the functions which make use of the following macros have the variables 'consumed',
@@ -406,7 +406,7 @@ extern guint16 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int
 
 #define ELEM_MAND_TLV(EMT_iei, EMT_pdu_type, EMT_elem_idx, EMT_elem_name_addition) \
 {\
-       if ((consumed = elem_tlv(tvb, tree, (guint8) EMT_iei, EMT_pdu_type, EMT_elem_idx, curr_offset, curr_len, EMT_elem_name_addition)) > 0) \
+       if ((consumed = elem_tlv(tvb, tree, pinfo, (guint8) EMT_iei, EMT_pdu_type, EMT_elem_idx, curr_offset, curr_len, EMT_elem_name_addition)) > 0) \
        { \
                curr_offset += consumed; \
                curr_len -= consumed; \
@@ -431,7 +431,7 @@ extern guint16 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int
  */
 #define ELEM_MAND_TELV(EMT_iei, EMT_pdu_type, EMT_elem_idx, EMT_elem_name_addition) \
 {\
-       if ((consumed = elem_telv(tvb, tree, (guint8) EMT_iei, EMT_pdu_type, EMT_elem_idx, curr_offset, curr_len, EMT_elem_name_addition)) > 0) \
+       if ((consumed = elem_telv(tvb, tree, pinfo, (guint8) EMT_iei, EMT_pdu_type, EMT_elem_idx, curr_offset, curr_len, EMT_elem_name_addition)) > 0) \
        { \
                curr_offset += consumed; \
                curr_len -= consumed; \
@@ -451,7 +451,7 @@ extern guint16 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int
 
 #define ELEM_MAND_TLV_E(EMT_iei, EMT_pdu_type, EMT_elem_idx, EMT_elem_name_addition) \
 {\
-       if ((consumed = elem_tlv_e(tvb, tree, (guint8) EMT_iei, EMT_pdu_type, EMT_elem_idx, curr_offset, curr_len, EMT_elem_name_addition)) > 0) \
+       if ((consumed = elem_tlv_e(tvb, tree, pinfo, (guint8) EMT_iei, EMT_pdu_type, EMT_elem_idx, curr_offset, curr_len, EMT_elem_name_addition)) > 0) \
        { \
                curr_offset += consumed; \
                curr_len -= consumed; \
@@ -470,7 +470,7 @@ extern guint16 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int
 }
 #define ELEM_OPT_TLV(EOT_iei, EOT_pdu_type, EOT_elem_idx, EOT_elem_name_addition) \
 {\
-       if ((consumed = elem_tlv(tvb, tree, (guint8) EOT_iei, EOT_pdu_type, EOT_elem_idx, curr_offset, curr_len, EOT_elem_name_addition)) > 0) \
+       if ((consumed = elem_tlv(tvb, tree, pinfo, (guint8) EOT_iei, EOT_pdu_type, EOT_elem_idx, curr_offset, curr_len, EOT_elem_name_addition)) > 0) \
        { \
                curr_offset += consumed; \
                curr_len -= consumed; \
@@ -480,7 +480,7 @@ extern guint16 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int
 
 #define ELEM_OPT_TELV(EOT_iei, EOT_pdu_type, EOT_elem_idx, EOT_elem_name_addition) \
 {\
-       if ((consumed = elem_telv(tvb, tree, (guint8) EOT_iei, EOT_pdu_type, EOT_elem_idx, curr_offset, curr_len, EOT_elem_name_addition)) > 0) \
+       if ((consumed = elem_telv(tvb, tree, pinfo, (guint8) EOT_iei, EOT_pdu_type, EOT_elem_idx, curr_offset, curr_len, EOT_elem_name_addition)) > 0) \
        { \
                curr_offset += consumed; \
                curr_len -= consumed; \
@@ -490,7 +490,7 @@ extern guint16 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int
 
 #define ELEM_OPT_TLV_E(EOT_iei, EOT_pdu_type, EOT_elem_idx, EOT_elem_name_addition) \
 {\
-       if ((consumed = elem_tlv_e(tvb, tree, (guint8) EOT_iei, EOT_pdu_type, EOT_elem_idx, curr_offset, curr_len, EOT_elem_name_addition)) > 0) \
+       if ((consumed = elem_tlv_e(tvb, tree, pinfo, (guint8) EOT_iei, EOT_pdu_type, EOT_elem_idx, curr_offset, curr_len, EOT_elem_name_addition)) > 0) \
        { \
                curr_offset += consumed; \
                curr_len -= consumed; \
@@ -500,7 +500,7 @@ extern guint16 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int
 
 #define ELEM_MAND_TV(EMT_iei, EMT_pdu_type, EMT_elem_idx, EMT_elem_name_addition) \
 {\
-       if ((consumed = elem_tv(tvb, tree, (guint8) EMT_iei, EMT_pdu_type, EMT_elem_idx, curr_offset, EMT_elem_name_addition)) > 0) \
+       if ((consumed = elem_tv(tvb, tree, pinfo, (guint8) EMT_iei, EMT_pdu_type, EMT_elem_idx, curr_offset, EMT_elem_name_addition)) > 0) \
        { \
                curr_offset += consumed; \
                curr_len -= consumed; \
@@ -520,7 +520,7 @@ extern guint16 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int
 
 #define ELEM_OPT_TV(EOT_iei, EOT_pdu_type, EOT_elem_idx, EOT_elem_name_addition) \
 {\
-       if ((consumed = elem_tv(tvb, tree, (guint8) EOT_iei, EOT_pdu_type, EOT_elem_idx, curr_offset, EOT_elem_name_addition)) > 0) \
+       if ((consumed = elem_tv(tvb, tree, pinfo, (guint8) EOT_iei, EOT_pdu_type, EOT_elem_idx, curr_offset, EOT_elem_name_addition)) > 0) \
        { \
                curr_offset += consumed; \
                curr_len -= consumed; \
@@ -530,7 +530,7 @@ extern guint16 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int
 
 #define ELEM_OPT_TV_SHORT(EOT_iei, EOT_pdu_type, EOT_elem_idx, EOT_elem_name_addition) \
 {\
-       if ((consumed = elem_tv_short(tvb, tree, EOT_iei, EOT_pdu_type, EOT_elem_idx, curr_offset, EOT_elem_name_addition)) > 0) \
+       if ((consumed = elem_tv_short(tvb, tree, pinfo, EOT_iei, EOT_pdu_type, EOT_elem_idx, curr_offset, EOT_elem_name_addition)) > 0) \
        { \
                curr_offset += consumed; \
                curr_len -= consumed; \
@@ -540,7 +540,7 @@ extern guint16 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int
 
 #define ELEM_OPT_T(EOT_iei, EOT_pdu_type, EOT_elem_idx, EOT_elem_name_addition) \
 {\
-       if ((consumed = elem_t(tvb, tree, (guint8) EOT_iei, EOT_pdu_type, EOT_elem_idx, curr_offset, EOT_elem_name_addition)) > 0) \
+       if ((consumed = elem_t(tvb, tree, pinfo, (guint8) EOT_iei, EOT_pdu_type, EOT_elem_idx, curr_offset, EOT_elem_name_addition)) > 0) \
        { \
                curr_offset += consumed; \
                curr_len -= consumed; \
@@ -550,7 +550,7 @@ extern guint16 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int
 
 #define ELEM_MAND_LV(EML_pdu_type, EML_elem_idx, EML_elem_name_addition) \
 {\
-       if ((consumed = elem_lv(tvb, tree, EML_pdu_type, EML_elem_idx, curr_offset, curr_len, EML_elem_name_addition)) > 0) \
+       if ((consumed = elem_lv(tvb, tree, pinfo, EML_pdu_type, EML_elem_idx, curr_offset, curr_len, EML_elem_name_addition)) > 0) \
        { \
                curr_offset += consumed; \
                curr_len -= consumed; \
@@ -564,7 +564,7 @@ extern guint16 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int
 
 #define ELEM_MAND_LV_E(EML_pdu_type, EML_elem_idx, EML_elem_name_addition) \
 {\
-       if ((consumed = elem_lv_e(tvb, tree, EML_pdu_type, EML_elem_idx, curr_offset, curr_len, EML_elem_name_addition)) > 0) \
+       if ((consumed = elem_lv_e(tvb, tree, pinfo, EML_pdu_type, EML_elem_idx, curr_offset, curr_len, EML_elem_name_addition)) > 0) \
        { \
                curr_offset += consumed; \
                curr_len -= consumed; \
@@ -578,7 +578,7 @@ extern guint16 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int
 
 #define ELEM_MAND_V(EMV_pdu_type, EMV_elem_idx, EMV_elem_name_addition) \
 {\
-       if ((consumed = elem_v(tvb, tree, EMV_pdu_type, EMV_elem_idx, curr_offset, EMV_elem_name_addition)) > 0) \
+       if ((consumed = elem_v(tvb, tree, pinfo, EMV_pdu_type, EMV_elem_idx, curr_offset, EMV_elem_name_addition)) > 0) \
        { \
                curr_offset += consumed; \
                curr_len -= consumed; \
@@ -592,7 +592,7 @@ extern guint16 elem_v_short(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int
 
 #define ELEM_MAND_V_SHORT(EMV_pdu_type, EMV_elem_idx) \
 {\
-       if ((consumed = elem_v_short(tvb, tree, EMV_pdu_type, EMV_elem_idx, curr_offset)) > 0) \
+       if ((consumed = elem_v_short(tvb, tree, pinfo, EMV_pdu_type, EMV_elem_idx, curr_offset)) > 0) \
        { \
                curr_offset += consumed; \
                curr_len -= consumed; \
@@ -647,53 +647,53 @@ void bssmap_new_bss_to_old_bss_info(tvbuff_t *tvb, proto_tree *tree, packet_info
 
 void dtap_mm_mm_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len);
 
-guint16 be_cell_id_aux(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len, guint8 disc);
-guint16 be_cell_id_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 be_chan_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 be_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len);
-
-guint16 de_lai(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 de_mid(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 de_cell_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 de_bearer_cap_uplink(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 be_emlpp_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 be_ganss_loc_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 be_ganss_pos_dta(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 be_ganss_ass_dta(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 de_plmn_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 de_ms_cm_1(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_);
-guint16 de_ms_cm_2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 de_ms_cm_3(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 de_serv_cat(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 de_sm_apn(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 de_sm_pco(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_);
-guint16 de_sm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 de_sm_pflow_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 de_sm_tflow_temp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 de_time_zone(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_);
-guint16 de_gmm_drx_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 de_gmm_ms_net_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 de_gmm_rai(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-
-guint16 de_rr_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 de_rr_cell_dsc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 de_rr_ch_dsc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_);
-guint16 de_rr_ch_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 de_rr_chnl_needed(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_);
-guint16 de_rr_cip_mode_set(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 de_rr_cm_enq_mask(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 de_rr_meas_res(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_);
-guint16 de_rr_multirate_conf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_);
-guint16 de_rr_sus_cau(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-guint16 de_rr_tlli(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
-
-guint16 de_rej_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_);
-guint16 de_d_gb_call_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_);
-
-guint16 de_emm_ue_net_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_);
-guint16 de_emm_trac_area_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_);
+guint16 be_cell_id_aux(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len, guint8 disc);
+guint16 be_cell_id_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 be_chan_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 be_prio(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+
+guint16 de_lai(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_mid(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_cell_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_bearer_cap_uplink(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 be_emlpp_prio(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 be_ganss_loc_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 be_ganss_pos_dta(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 be_ganss_ass_dta(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_plmn_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_ms_cm_1(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_ms_cm_2(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_ms_cm_3(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_serv_cat(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_sm_apn(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_sm_pco(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_sm_qos(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_sm_pflow_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_sm_tflow_temp(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_time_zone(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_gmm_drx_param(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_gmm_ms_net_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_gmm_rai(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+
+guint16 de_rr_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_rr_cell_dsc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_rr_ch_dsc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_rr_ch_mode(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_rr_chnl_needed(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_rr_cip_mode_set(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_rr_cm_enq_mask(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_rr_meas_res(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_rr_multirate_conf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_rr_sus_cau(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_rr_tlli(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+
+guint16 de_rej_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_d_gb_call_ref(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+
+guint16 de_emm_ue_net_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
+guint16 de_emm_trac_area_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len);
 
 void dtap_rr_ho_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len);
 void dtap_rr_cip_mode_cpte(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len);
index 2a574984a2e80986dc653c017e09053b0f6b6263..09a2c904f2d69166ee0bb125b9fe0d39f30047d0 100644 (file)
@@ -523,7 +523,7 @@ static dgt_set_t Dgt_mbcd = {
  * [9] 10.5.3.1 Authentication parameter RAND
  */
 static guint16
-de_auth_param_rand(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_auth_param_rand(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        /* The RAND value is 16 octets long */
        proto_tree_add_item(tree, hf_gsm_a_dtap_rand, tvb, offset, 16, FALSE);
@@ -536,7 +536,7 @@ de_auth_param_rand(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U
  * [9] 10.5.3.1.1 Authentication Parameter AUTN (UMTS and EPS authentication challenge)
  */
 static guint16
-de_auth_param_autn(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_auth_param_autn(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        proto_item      *item;
        proto_tree      *subtree;
@@ -551,7 +551,7 @@ de_auth_param_autn(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
                proto_tree_add_item(subtree, hf_gsm_a_dtap_autn_mac, tvb, offset + 8, 8, FALSE);
        }
        else
-               expert_add_info_format(gsm_a_dtap_pinfo, item, PI_MALFORMED, PI_WARN,
+               expert_add_info_format(pinfo, item, PI_MALFORMED, PI_WARN,
                        "AUTN length not equal to 16");
        
        return(len);
@@ -561,7 +561,7 @@ de_auth_param_autn(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
  * [9] 10.5.3.2 Authentication Response parameter
  */
 static guint16
-de_auth_resp_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_auth_resp_param(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     /* This IE contains either the SRES or the 4 most significant octets of the RES */
        proto_tree_add_item(tree, hf_gsm_a_dtap_sres, tvb, offset, 4, FALSE);
@@ -574,7 +574,7 @@ de_auth_resp_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U
  * [9] 10.5.3.2.1 Authentication Response Parameter (extension) (UMTS authentication challenge only)
  */
 static guint16
-de_auth_resp_param_ext(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_auth_resp_param_ext(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        /* This IE contains all but 4 most significant octets of RES */
        proto_tree_add_item(tree, hf_gsm_a_dtap_xres, tvb, offset, len, FALSE);
@@ -586,7 +586,7 @@ de_auth_resp_param_ext(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
  * [9] 10.5.3.2.2 Authentication Failure parameter (UMTS and EPS authentication challenge)
  */
 static guint16
-de_auth_fail_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_auth_fail_param(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        proto_item      *item;
        proto_tree      *subtree;
@@ -600,7 +600,7 @@ de_auth_fail_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
                proto_tree_add_item(subtree, hf_gsm_a_dtap_auts_mac_s, tvb, offset + 6, 8, FALSE);
        }
        else
-               expert_add_info_format(gsm_a_dtap_pinfo, item, PI_MALFORMED, PI_WARN,
+               expert_add_info_format(pinfo, item, PI_MALFORMED, PI_WARN,
                        "AUTS length not equal to 14");
        
        return(len);
@@ -622,7 +622,7 @@ de_auth_fail_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
  * [3] 10.5.3.5a Network Name
  */
 static guint16
-de_network_name(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_network_name(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
@@ -701,7 +701,7 @@ de_network_name(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
                num_text_bits = ((len - 1) << 3) - num_spare_bits;
                if (num_spare_bits && (num_text_bits % 7))
                {
-                       expert_add_info_format(gsm_a_dtap_pinfo, item, PI_MALFORMED, PI_WARN, "Value leads to a Text String whose length is not a multiple of 7 bits");
+                       expert_add_info_format(pinfo, item, PI_MALFORMED, PI_WARN, "Value leads to a Text String whose length is not a multiple of 7 bits");
                }
                /* 
                 * If the number of spare bits is 7, then we have unpacked one extra
@@ -778,7 +778,7 @@ static const range_string gsm_a_dtap_rej_cause_vals[] = {
 };
 
 guint16
-de_rej_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rej_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        const gchar *str;
@@ -810,7 +810,7 @@ de_rej_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gch
  * [3] 10.5.3.8 Time Zone
  */
 guint16
-de_time_zone(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_time_zone(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
@@ -846,7 +846,7 @@ de_time_zone(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gch
  * [3] 10.5.3.9 Time Zone and Time
  */
 static guint16
-de_time_zone_time(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_time_zone_time(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct, oct2, oct3;
        guint32 curr_offset;
@@ -919,7 +919,7 @@ de_time_zone_time(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
  * 3GPP TS 24.008 version 6.8.0 Release 6
  */
 static guint16
-de_lsa_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_lsa_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -942,7 +942,7 @@ de_lsa_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
  * [3] 10.5.3.12 Daylight Saving Time
  */
 static guint16
-de_day_saving_time(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_day_saving_time(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
@@ -981,7 +981,7 @@ de_day_saving_time(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
  * 10.5.3.13 Emergency Number List 
  */
 static guint16
-de_emerg_num_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emerg_num_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint8 en_len, oct, i;
@@ -1047,7 +1047,7 @@ de_emerg_num_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
                        malformed_number = TRUE;
 
                if(malformed_number)
-                       expert_add_info_format(gsm_a_dtap_pinfo, item, PI_MALFORMED, PI_WARN, "\'f\' end mark present in unexpected position"); 
+                       expert_add_info_format(pinfo, item, PI_MALFORMED, PI_WARN, "\'f\' end mark present in unexpected position");    
 
                curr_offset = curr_offset + en_len;
                count++;
@@ -1061,7 +1061,7 @@ de_emerg_num_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
  * [3] 10.5.4.4 Auxiliary states
  */
 static guint16
-de_aux_states(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_aux_states(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
@@ -1159,7 +1159,7 @@ static const value_string gsm_a_itc_values[] = {
 };
 
 guint16
-de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+de_bearer_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len)
 {
        guint8  oct;
        guint8  itc;
@@ -2155,10 +2155,10 @@ bc_octet_7:
 
 
 guint16
-de_bearer_cap_uplink(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+de_bearer_cap_uplink(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len)
 {
        is_uplink = IS_UPLINK_TRUE;
-       return de_bearer_cap(tvb, tree, offset, len, add_string, string_len);
+       return de_bearer_cap(tvb, tree, pinfo, offset, len, add_string, string_len);
 
 }
 
@@ -2176,8 +2176,7 @@ const true_false_string gsm_a_dtap_enicm_value = {
 };
 
 static guint16
-de_cc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
-{
+de_cc_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_){
        guint8  oct;
        guint32 curr_offset;
 
@@ -2283,7 +2282,7 @@ static const value_string gsm_a_dtap_call_state_vals[] = {
 };
 
 static guint16
-de_call_state(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_call_state(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct, coding_standard, call_state;
        proto_tree      *subtree;
@@ -2376,7 +2375,7 @@ const value_string gsm_a_screening_ind_values[] = {
 };
 
 static guint16
-de_bcd_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, int header_field, gboolean *address_extracted)
+de_bcd_num(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, int header_field, gboolean *address_extracted)
 {
        guint8  *poctets;
        guint8  extension, oct;
@@ -2433,7 +2432,7 @@ de_bcd_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, int heade
                malformed_number = TRUE;
 
        if(malformed_number)
-               expert_add_info_format(gsm_a_dtap_pinfo, item, PI_MALFORMED, PI_WARN, "\'f\' end mark present in unexpected position"); 
+               expert_add_info_format(pinfo, item, PI_MALFORMED, PI_WARN, "\'f\' end mark present in unexpected position");    
 
        return(len);
 }
@@ -2455,7 +2454,7 @@ const value_string gsm_a_odd_even_ind_values[] = {
 
 
 static guint16
-de_sub_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gboolean *address_extracted)
+de_sub_addr(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gboolean *address_extracted)
 {
        guint32 curr_offset, ia5_string_len, i;
        guint8 type_of_sub_addr, afi, dig1, dig2, oct;
@@ -2508,7 +2507,7 @@ de_sub_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gboolean
                                "Subaddress: %s", a_bigbuf);
 
                        if(invalid_ia5_char)
-                               expert_add_info_format(gsm_a_dtap_pinfo, item, PI_MALFORMED, PI_WARN, "Invalid IA5 character(s) in string (value > 127)");
+                               expert_add_info_format(pinfo, item, PI_MALFORMED, PI_WARN, "Invalid IA5 character(s) in string (value > 127)");
 
                        return(len);
                }       
@@ -2525,11 +2524,11 @@ de_sub_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gboolean
  * [3] 10.5.4.7 Called party BCD number
  */
 guint16
-de_cld_party_bcd_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+de_cld_party_bcd_num(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len)
 {
        gboolean        addr_extr;
 
-       de_bcd_num(tvb, tree, offset, len, hf_gsm_a_cld_party_bcd_num, &addr_extr);
+       de_bcd_num(tvb, tree, pinfo, offset, len, hf_gsm_a_cld_party_bcd_num, &addr_extr);
 
        if(addr_extr) {
                if (sccp_assoc && ! sccp_assoc->called_party) {
@@ -2547,11 +2546,11 @@ de_cld_party_bcd_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
  * [3] 10.5.4.8 Called party subaddress
  */
 static guint16
-de_cld_party_sub_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_cld_party_sub_addr(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        gboolean        addr_extr;
 
-       de_sub_addr(tvb, tree, offset, len, &addr_extr);
+       de_sub_addr(tvb, tree, pinfo, offset, len, &addr_extr);
 
        if (addr_extr && add_string)
                g_snprintf(add_string, string_len, " - (%s)", a_bigbuf);
@@ -2563,11 +2562,11 @@ de_cld_party_sub_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
  * [3] 10.5.4.9 Calling party BCD number
  */
 static guint16
-de_clg_party_bcd_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+de_clg_party_bcd_num(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len)
 {
        gboolean        addr_extr;
 
-       de_bcd_num(tvb, tree, offset, len, hf_gsm_a_clg_party_bcd_num, &addr_extr);
+       de_bcd_num(tvb, tree, pinfo, offset, len, hf_gsm_a_clg_party_bcd_num, &addr_extr);
 
        if (addr_extr && add_string)
                g_snprintf(add_string, string_len, " - (%s)", a_bigbuf);
@@ -2579,11 +2578,11 @@ de_clg_party_bcd_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
  * [3] 10.5.4.10 Calling party subaddress
  */
 static guint16
-de_clg_party_sub_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_clg_party_sub_addr(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        gboolean        addr_extr;
 
-       de_sub_addr(tvb, tree, offset, len, &addr_extr);
+       de_sub_addr(tvb, tree, pinfo, offset, len, &addr_extr);
 
        if (addr_extr && add_string)
                g_snprintf(add_string, string_len, " - (%s)", a_bigbuf);
@@ -2607,7 +2606,7 @@ static const value_string gsm_a_dtap_cause_ss_diagnostics_vals[] = {
 };
 
 static guint16
-de_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+de_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len)
 {
        guint8  oct;
        guint8  cause;
@@ -2812,11 +2811,11 @@ de_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_
  * 10.5.4.13 Connected number
  */
 static guint16
-de_conn_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+de_conn_num(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len)
 {
        gboolean        addr_extr;
 
-       de_bcd_num(tvb, tree, offset, len, hf_gsm_a_conn_num, &addr_extr);
+       de_bcd_num(tvb, tree, pinfo, offset, len, hf_gsm_a_conn_num, &addr_extr);
 
        if (addr_extr && add_string)
                g_snprintf(add_string, string_len, " - (%s)", a_bigbuf);
@@ -2828,11 +2827,11 @@ de_conn_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *a
  * 10.5.4.14 Connected subaddress
  */
 static guint16
-de_conn_sub_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_conn_sub_addr(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        gboolean        addr_extr;
 
-       de_sub_addr(tvb, tree, offset, len, &addr_extr);
+       de_sub_addr(tvb, tree, pinfo, offset, len, &addr_extr);
 
        if (addr_extr && add_string)
                g_snprintf(add_string, string_len, " - (%s)", a_bigbuf);
@@ -2845,7 +2844,7 @@ de_conn_sub_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
  */
 
 static guint16
-de_facility(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint fac_len, gchar *add_string _U_, int string_len _U_)
+de_facility(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint fac_len, gchar *add_string _U_, int string_len _U_)
 {
        guint   saved_offset;
        gint8 class;
@@ -2859,13 +2858,13 @@ de_facility(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint fac_len, gcha
        void *save_private_data;
        static gint comp_type_tag;
 
-       asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, gsm_a_dtap_pinfo);
+       asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
 
-       save_private_data= gsm_a_dtap_pinfo->private_data;
+       save_private_data= pinfo->private_data;
        saved_offset = offset;
-       gsm_a_dtap_pinfo->private_data = NULL;
-       col_append_str(gsm_a_dtap_pinfo->cinfo, COL_PROTOCOL,"/");
-       col_set_fence(gsm_a_dtap_pinfo->cinfo, COL_PROTOCOL);
+       pinfo->private_data = NULL;
+       col_append_str(pinfo->cinfo, COL_PROTOCOL,"/");
+       col_set_fence(pinfo->cinfo, COL_PROTOCOL);
        while ( fac_len > (offset - saved_offset)){
 
                /* Get the length of the component there can be more than one component in a facility message */
@@ -2879,19 +2878,19 @@ de_facility(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint fac_len, gcha
                TODO Call gsm map here
                */
                SS_tvb = tvb_new_subset(tvb, offset, component_len, component_len);
-               col_append_str(gsm_a_dtap_pinfo->cinfo, COL_INFO,"(GSM MAP) ");
-               col_set_fence(gsm_a_dtap_pinfo->cinfo, COL_INFO);
-               call_dissector(gsm_map_handle, SS_tvb, gsm_a_dtap_pinfo, tree);
+               col_append_str(pinfo->cinfo, COL_INFO,"(GSM MAP) ");
+               col_set_fence(pinfo->cinfo, COL_INFO);
+               call_dissector(gsm_map_handle, SS_tvb, pinfo, tree);
                offset = offset + component_len;
        }
-       gsm_a_dtap_pinfo->private_data = save_private_data;
+       pinfo->private_data = save_private_data;
        return(fac_len);
 }
 /*
  * 10.5.4.16 High layer compatibility
  */
 static guint16
-de_hlc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_hlc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -2907,7 +2906,7 @@ de_hlc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_st
  * [3] 10.5.4.17 Keypad facility
  */
 static guint16
-de_keypad_facility(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len)
+de_keypad_facility(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string, int string_len)
 {
        guint8  oct, keypad_char;
        guint32 curr_offset;
@@ -2930,7 +2929,7 @@ de_keypad_facility(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U
        if (((keypad_char < '0') || (keypad_char > '9')) &&
                ((keypad_char < 'A') || (keypad_char > 'D')) &&
                (keypad_char != '*') && (keypad_char != '#'))
-               expert_add_info_format(gsm_a_dtap_pinfo, item, PI_MALFORMED, PI_WARN, "Keypad information contains character that is not a DTMF digit");
+               expert_add_info_format(pinfo, item, PI_MALFORMED, PI_WARN, "Keypad information contains character that is not a DTMF digit");
        curr_offset++;
 
        if (add_string)
@@ -2945,7 +2944,7 @@ de_keypad_facility(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U
  * 10.5.4.18 Low layer compatibility
  */
 static guint16
-de_llc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_llc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -2972,7 +2971,7 @@ static const value_string gsm_a_dtap_notification_description_vals[] = {
 };
 
 static guint16
-de_notif_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_notif_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree_add_item(tree, hf_gsm_a_extension, tvb, offset, 1, FALSE);
        proto_tree_add_item(tree, hf_gsm_a_notification_description, tvb, offset, 1, FALSE);
@@ -3005,7 +3004,7 @@ static const value_string gsm_a_dtap_progress_description_vals[] = {
 };
 
 static guint16
-de_prog_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_prog_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct, coding_standard, progress_description;
        guint32 curr_offset;
@@ -3060,7 +3059,7 @@ static const range_string gsm_a_dtap_recall_type_vals[] = {
 };
 
 static guint16
-de_recall_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_recall_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree_add_bits_item(tree, hf_gsm_a_spare_bits, tvb, (offset<<3), 5, FALSE);
        proto_tree_add_item(tree, hf_gsm_a_dtap_recall_type, tvb, offset, 1, FALSE);
@@ -3072,11 +3071,11 @@ de_recall_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
  * 10.5.4.21b Redirecting party BCD number
  */
 static guint16
-de_red_party_bcd_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+de_red_party_bcd_num(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len)
 {
        gboolean        addr_extr;
 
-       de_bcd_num(tvb, tree, offset, len, hf_gsm_a_red_party_bcd_num, &addr_extr);
+       de_bcd_num(tvb, tree, pinfo, offset, len, hf_gsm_a_red_party_bcd_num, &addr_extr);
 
        if (addr_extr && add_string)
                g_snprintf(add_string, string_len, " - (%s)", a_bigbuf);
@@ -3088,11 +3087,11 @@ de_red_party_bcd_num(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
  * 10.5.4.21c Redirecting party subaddress
  */
 static guint16
-de_red_party_sub_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_red_party_sub_addr(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        gboolean        addr_extr;
 
-       de_sub_addr(tvb, tree, offset, len, &addr_extr);
+       de_sub_addr(tvb, tree, pinfo, offset, len, &addr_extr);
 
        if (addr_extr && add_string)
                g_snprintf(add_string, string_len, " - (%s)", a_bigbuf);
@@ -3104,7 +3103,7 @@ de_red_party_sub_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
  * [3] 10.5.4.22 Repeat indicator
  */
 static guint16
-de_repeat_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_repeat_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
@@ -3148,9 +3147,9 @@ static void
 dtap_cc_setup(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len);
 
 static guint16
-de_setup_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_setup_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
-       dtap_cc_setup(tvb, tree, gsm_a_dtap_pinfo, offset, len);
+       dtap_cc_setup(tvb, tree, pinfo, offset, len);
 
        return (len);
 }
@@ -3174,7 +3173,7 @@ static const value_string gsm_a_dtap_signal_value_vals[] = {
 };
 
 static guint16
-de_signal(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_signal(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree_add_item(tree, hf_gsm_a_dtap_signal_value, tvb, offset, 1, FALSE);
        
@@ -3185,7 +3184,7 @@ de_signal(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar
  * 10.5.4.24 SS Version Indicator
  */
 static guint16
-de_ss_ver_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_ss_ver_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
@@ -3261,7 +3260,7 @@ static const range_string gsm_a_dtap_u2u_prot_discr_vals[] = {
 };
 
 static guint16
-de_u2u(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_u2u(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        proto_tree      *subtree;
@@ -3294,7 +3293,7 @@ static const value_string gsm_a_alerting_pattern_vals[] = {
 };
 
 static guint16
-de_alert_pat(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_alert_pat(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -3316,7 +3315,7 @@ const true_false_string gsm_a_ccbs_activation_value = {
        "Activation of CCBS not possible"
 };
 static guint16
-de_allowed_act(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_allowed_act(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -3335,7 +3334,7 @@ de_allowed_act(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
  * 10.5.4.28 Stream Identifier
  */
 static guint16
-de_stream_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len)
+de_stream_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string, int string_len)
 {
        guint32 curr_offset;
        guint8 oct;
@@ -3375,7 +3374,7 @@ static const true_false_string gsm_a_mcs_value = {
        "This value indicates that the network does not support the multicall"
 };
 static guint16
-de_nw_call_ctrl_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_nw_call_ctrl_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -3401,7 +3400,7 @@ static const value_string gsm_a_cause_of_no_cli_values[] = {
        { 0, NULL }
 };
 static guint16
-de_ca_of_no_cli(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len)
+de_ca_of_no_cli(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string, int string_len)
 {
        guint32 curr_offset;
        guint8 oct;
@@ -3442,7 +3441,7 @@ static const value_string gsm_a_sysid_values[] = {
        { 0, NULL }
 };
 static guint16
-de_sup_codec_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sup_codec_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint8 length;
@@ -3541,7 +3540,7 @@ Bit 7 automatically initiated eCall
 Bit 8 is spare and set to "0"
 */
 guint16
-de_serv_cat(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_serv_cat(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -3571,7 +3570,7 @@ de_serv_cat(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gcha
  * [5] 8.1.4.1 3GPP TS 24.011 version 6.1.0 Release 6
  */
 static guint16
-de_cp_user_data(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_cp_user_data(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        tvbuff_t        *rp_tvb;
@@ -3586,7 +3585,7 @@ de_cp_user_data(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
         */
        rp_tvb = tvb_new_subset(tvb, curr_offset, len, len);
 
-       call_dissector(rp_handle, rp_tvb, gsm_a_dtap_pinfo, g_tree);
+       call_dissector(rp_handle, rp_tvb, pinfo, g_tree);
 
        curr_offset += len;
 
@@ -3599,7 +3598,7 @@ de_cp_user_data(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
  * [5] 8.1.4.2
  */
 static guint16
-de_cp_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len)
+de_cp_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string, int string_len)
 {
        guint8  oct;
        guint32 curr_offset;
@@ -3642,7 +3641,7 @@ de_cp_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gcha
 }
 
 static guint16
-de_tp_sub_channel(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_tp_sub_channel(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guchar  oct;
@@ -3687,7 +3686,7 @@ de_tp_sub_channel(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
 }
 
 static guint16
-de_tp_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_tp_ack(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guchar  oct;
@@ -3707,7 +3706,7 @@ de_tp_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar
 }
 
 static guint16
-de_tp_loop_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_tp_loop_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guchar  oct;
@@ -3749,7 +3748,7 @@ de_tp_loop_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
 }
 
 static guint16
-de_tp_loop_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_tp_loop_ack(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guchar  oct;
@@ -3795,7 +3794,7 @@ de_tp_loop_ack(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
 }
 
 static guint16
-de_tp_tested_device(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_tp_tested_device(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guchar  oct;
@@ -3829,7 +3828,7 @@ de_tp_tested_device(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _
 }
 
 static guint16
-de_tp_pdu_description(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_tp_pdu_description(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint16 value;
@@ -3853,7 +3852,7 @@ de_tp_pdu_description(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
 }
 
 static guint16
-de_tp_mode_flag(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_tp_mode_flag(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guchar  oct;
@@ -3875,7 +3874,7 @@ de_tp_mode_flag(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
 }
 
 static guint16
-de_tp_egprs_mode_flag(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_tp_egprs_mode_flag(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guchar  oct;
@@ -3897,7 +3896,7 @@ de_tp_egprs_mode_flag(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
 }
 
 static guint16
-de_tp_ue_test_loop_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_tp_ue_test_loop_mode(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guchar  oct;
@@ -3946,7 +3945,7 @@ de_tp_ue_test_loop_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
 }
 
 static guint16
-de_tp_ue_positioning_technology(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_tp_ue_positioning_technology(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guchar  oct;
@@ -3971,7 +3970,7 @@ de_tp_ue_positioning_technology(tvbuff_t *tvb, proto_tree *tree, guint32 offset,
 }
 
 static guint16
-de_tp_rlc_sdu_counter_value(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_tp_rlc_sdu_counter_value(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint32 value;
@@ -3994,7 +3993,7 @@ static const value_string epc_ue_test_loop_mode_vals[] = {
        { 0, NULL }
 };
 static guint16
-de_tp_epc_ue_test_loop_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_tp_epc_ue_test_loop_mode(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint32 bit_offset;
@@ -4014,7 +4013,7 @@ de_tp_epc_ue_test_loop_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, gui
 }
 
 static guint16
-de_tp_epc_ue_tl_a_lb_setup(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_tp_epc_ue_tl_a_lb_setup(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint32 count, nb_lb;
@@ -4043,7 +4042,7 @@ de_tp_epc_ue_tl_a_lb_setup(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guin
 }
 
 static guint16
-de_tp_epc_ue_tl_b_lb_setup(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_tp_epc_ue_tl_b_lb_setup(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -4055,7 +4054,7 @@ de_tp_epc_ue_tl_b_lb_setup(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guin
        return(curr_offset - offset);
 }
 
-guint16 (*dtap_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len) = {
+guint16 (*dtap_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len) = {
        /* Mobility Management Information Elements 10.5.3 */
        de_auth_param_rand,     /* Authentication Parameter RAND */
        de_auth_param_autn,     /* Authentication Parameter AUTN (UMTS and EPS authentication challenge) */
index 6a1d166bd192d3bb23ea4472f47ab8f7361158fe..98f3a1c0b21a755388ab07794262b6d98a648814 100644 (file)
@@ -367,7 +367,7 @@ static const value_string gsm_a_gm_res_of_attach_vals[] = {
 };
 
 static guint16
-de_gmm_attach_res(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gmm_attach_res(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree_add_item(tree, hf_gsm_a_gm_fop, tvb, offset, 1, FALSE);
        proto_tree_add_item(tree, hf_gsm_a_gm_res_of_attach, tvb, offset, 1, FALSE);
@@ -387,7 +387,7 @@ static const value_string gsm_a_gm_type_of_attach_vals[] = {
 };
 
 static guint16
-de_gmm_attach_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gmm_attach_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_item   *tf = NULL;
        proto_tree   *tf_tree = NULL;
@@ -423,7 +423,7 @@ const value_string gsm_a_gm_type_of_ciph_alg_vals[] = {
 };
 
 static guint16
-de_gmm_ciph_alg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gmm_ciph_alg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree_add_bits_item(tree, hf_gsm_a_spare_bits, tvb, (offset << 3) + 4, 1, FALSE);
        proto_tree_add_item(tree, hf_gsm_a_gm_type_of_ciph_alg, tvb, offset, 1, FALSE);
@@ -441,7 +441,7 @@ const true_false_string gsm_a_gm_tmsi_flag_value = {
 };
 
 static guint16
-de_gmm_tmsi_stat(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gmm_tmsi_stat(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree_add_bits_item(tree, hf_gsm_a_spare_bits, tvb, (offset << 3) + 4, 3, FALSE);
        proto_tree_add_item(tree, hf_gsm_a_gm_tmsi_flag, tvb, offset, 1, FALSE);
@@ -454,7 +454,7 @@ de_gmm_tmsi_stat(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * [7] 10.5.5.5
  */
 static guint16
-de_gmm_detach_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gmm_detach_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8        oct;
        guint32       curr_offset;
@@ -559,7 +559,7 @@ static const range_string gsm_a_gmm_cn_spec_drs_cycle_len_coef_strings[] = {
        { 0, 0, NULL },
 };
 guint16
-de_gmm_drx_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gmm_drx_param(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8        oct;
        guint32       curr_offset;
@@ -646,7 +646,7 @@ static const range_string gsm_a_gm_force_to_standby_vals[] = {
 };
 
 static guint16
-de_gmm_ftostby(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gmm_ftostby(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 bit_offset;
 
@@ -663,7 +663,7 @@ de_gmm_ftostby(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
  * [9] 10.5.5.7 Force to standby (higher nibble)
  */
 static guint16
-de_gmm_ftostby_h(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gmm_ftostby_h(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 bit_offset;
 
@@ -680,7 +680,7 @@ de_gmm_ftostby_h(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * [7] 10.5.5.8
  */
 static guint16
-de_gmm_ptmsi_sig(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gmm_ptmsi_sig(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32       curr_offset;
        proto_item   *curr_item;
@@ -701,7 +701,7 @@ de_gmm_ptmsi_sig(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * [7] 10.5.5.8a
  */
 static guint16
-de_gmm_ptmsi_sig2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len _U_)
+de_gmm_ptmsi_sig2(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len _U_)
 {
        guint32       curr_offset;
        proto_item   *curr_item;
@@ -712,7 +712,7 @@ de_gmm_ptmsi_sig2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
        proto_item_append_text(curr_item,"%s",add_string ? add_string : "");
        curr_offset+=3;
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, pinfo);
 
        return(curr_offset - offset);
 }
@@ -729,7 +729,7 @@ static const value_string gsm_a_gm_type_of_identity_vals[] = {
 };
 
 static guint16
-de_gmm_ident_type2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gmm_ident_type2(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree_add_bits_item(tree, hf_gsm_a_spare_bits, tvb, (offset << 3) + 4, 1, FALSE);
        proto_tree_add_item(tree, hf_gsm_a_gm_type_of_identity, tvb, offset, 1, FALSE);
@@ -749,7 +749,7 @@ static const range_string gsm_a_gm_imeisv_req_vals[] = {
 };
 
 static guint16
-de_gmm_imeisv_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gmm_imeisv_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 bit_offset;
 
@@ -766,7 +766,7 @@ de_gmm_imeisv_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
  * [7] 10.5.5.11
  */
 static guint16
-de_gmm_rec_npdu_lst(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_rec_npdu_lst(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint   curr_len;
@@ -810,7 +810,7 @@ de_gmm_rec_npdu_lst(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
 
        } while ( curr_len > 1 );
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, pinfo);
 
        return(curr_offset - offset);
 }
@@ -897,7 +897,7 @@ static const true_false_string gsm_a_gmm_net_cap_epc_vals = {
 };
 
 guint16
-de_gmm_ms_net_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_ms_net_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        proto_tree      *subtree;
@@ -970,7 +970,7 @@ de_gmm_ms_net_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
        proto_tree_add_bits_item(tree, hf_gsm_a_spare_bits, tvb, (curr_offset<<3)+6, 2, FALSE);
 
        curr_offset++;
-       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, pinfo);
 
        return(curr_offset - offset);
 }
@@ -1032,7 +1032,7 @@ static const value_string gsm_a_gm_revision_level_indicator_vals[] = {
        { 0, NULL }
 };
 guint16
-de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32      curr_offset;
        guint        curr_len;
@@ -2332,7 +2332,7 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
 
        curr_offset+= curr_len;
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, pinfo);
 
        return(curr_offset - offset);
 }
@@ -2402,7 +2402,7 @@ static const range_string gmm_cause_vals[] = {
 /* NOTE: The listed reject cause values are defined in annex G. */
 
 static guint16
-de_gmm_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gmm_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32       curr_offset;
 
@@ -2421,7 +2421,7 @@ de_gmm_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gch
  * [7] 10.5.5.15 Routing area identification
  */
 guint16
-de_gmm_rai(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gmm_rai(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree   *subtree;
        proto_item   *item;
@@ -2451,7 +2451,7 @@ de_gmm_rai(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar
                mcc,mnc,lac,rac);
 
        subtree = proto_item_add_subtree(item, ett_gmm_rai);
-       dissect_e212_mcc_mnc(tvb, gsm_a_dtap_pinfo, subtree, offset, TRUE);
+       dissect_e212_mcc_mnc(tvb, pinfo, subtree, offset, TRUE);
 
        proto_tree_add_item(subtree, hf_gsm_a_lac, tvb, curr_offset+3, 2, FALSE);
        proto_tree_add_item(subtree, hf_gsm_a_gm_rac, tvb, curr_offset+5, 1, FALSE);
@@ -2475,7 +2475,7 @@ de_gmm_rai(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar
  * [7] 10.5.5.17
  */
 static guint16
-de_gmm_update_res(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gmm_update_res(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8        oct;
        guint32       curr_offset;
@@ -2520,7 +2520,7 @@ static const value_string gsm_a_gm_update_type_vals[] = {
 };
 
 static guint16
-de_gmm_update_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gmm_update_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_item   *tf = NULL;
        proto_tree   *tf_tree = NULL;
@@ -2544,7 +2544,7 @@ de_gmm_update_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U
  * [9] 10.5.5.19 A&C reference number (lower nibble)
  */
 static guint16
-de_gmm_ac_ref_nr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gmm_ac_ref_nr(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        /* IMPORTANT - IT'S ASSUMED THAT THE INFORMATION IS IN THE LOWER NIBBLE */
        proto_tree_add_bits_item(tree, hf_gsm_a_gm_ac_ref_nr, tvb, (offset << 3) + 4, 4, FALSE);
@@ -2557,7 +2557,7 @@ de_gmm_ac_ref_nr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * [9] 10.5.5.19 A&C reference number (higher nibble)
  */
 static guint16
-de_gmm_ac_ref_nr_h(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gmm_ac_ref_nr_h(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        /* IMPORTANT - IT'S ASSUMED THAT THE INFORMATION IS IN THE HIGHER NIBBLE */
        proto_tree_add_bits_item(tree, hf_gsm_a_gm_ac_ref_nr, tvb, offset << 3, 4, FALSE);
@@ -2579,7 +2579,7 @@ static const value_string gsm_a_gm_serv_type_vals[] = {
 };
 
 static guint16
-de_gmm_service_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gmm_service_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 bit_offset;
 
@@ -2635,7 +2635,7 @@ static const true_false_string gsm_a_gm_gps_c_vals = {
 };
 
 static guint16
-de_gmm_ps_lcs_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gmm_ps_lcs_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -2650,7 +2650,7 @@ de_gmm_ps_lcs_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
 
        curr_offset++;
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, pinfo);
 
        return(curr_offset - offset);
 }
@@ -2659,7 +2659,7 @@ de_gmm_ps_lcs_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
  * [7] 10.5.5.23
  */
 static guint16
-de_gmm_net_feat_supp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gmm_net_feat_supp(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
@@ -2690,7 +2690,7 @@ de_gmm_net_feat_supp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
 
 /* [7] 10.5.5.24 Inter RAT information container */
 static guint16
-de_gmm_rat_info_container(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gmm_rat_info_container(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        tvbuff_t *rrc_irat_ho_info_tvb;
@@ -2701,7 +2701,7 @@ de_gmm_rat_info_container(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
 defined in 3GPP TS 25.331 [23c]. If this field includes padding bits, they are defined in 3GPP TS 25.331 [23c].*/
        rrc_irat_ho_info_tvb = tvb_new_subset(tvb, curr_offset, len, len);
        if (rrc_irat_ho_info_handle)
-               call_dissector(rrc_irat_ho_info_handle, rrc_irat_ho_info_tvb, gsm_a_dtap_pinfo , tree);
+               call_dissector(rrc_irat_ho_info_handle, rrc_irat_ho_info_tvb,pinfo , tree);
        else
                proto_tree_add_text(tree, tvb, curr_offset, len,"INTER RAT HANDOVER INFO - Not decoded");
 
@@ -2713,7 +2713,7 @@ defined in 3GPP TS 25.331 [23c]. If this field includes padding bits, they are d
  * [7] 10.5.7.1
  */
 static guint16
-de_gc_context_stat(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gc_context_stat(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint16 pdp_nr;
@@ -2750,7 +2750,7 @@ de_gc_context_stat(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U
 
        curr_offset++;
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, pinfo);
 
        return(curr_offset - offset);
 }
@@ -2759,7 +2759,7 @@ de_gc_context_stat(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U
  * [7] 10.5.7.2
  */
 static guint16
-de_gc_radio_prio(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gc_radio_prio(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
@@ -2801,7 +2801,7 @@ static const value_string gsm_a_gm_gprs_timer_unit_vals[] = {
 };
 
 static guint16
-de_gc_timer(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gc_timer(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint16 val;
@@ -2843,7 +2843,7 @@ de_gc_timer(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gcha
  * [7] 10.5.7.4
  */
 static guint16
-de_gc_timer2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len _U_)
+de_gc_timer2(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string, int string_len _U_)
 {
        guint8  oct;
        guint16 val;
@@ -2884,7 +2884,7 @@ de_gc_timer2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gch
  * [7] 10.5.7.5
  */
 static guint16
-de_gc_radio_prio2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_gc_radio_prio2(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
@@ -2921,7 +2921,7 @@ de_gc_radio_prio2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
  * [8] 10.5.7.6 MBMS context status
  */
 static guint16
-de_gc_mbms_context_stat(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_gc_mbms_context_stat(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
         guint   i;
@@ -2963,7 +2963,7 @@ de_gc_mbms_context_stat(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
 #define MAX_APN_LENGTH         50
 
 guint16
-de_sm_apn(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len _U_)
+de_sm_apn(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len _U_)
 {
        guint32 curr_offset;
        guint   curr_len;
@@ -2989,7 +2989,7 @@ de_sm_apn(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
 
        curr_offset+= len;
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, pinfo);
 
        return(curr_offset - offset);
 }
@@ -2998,7 +2998,7 @@ de_sm_apn(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
  * [7] 10.5.6.2
  */
 static guint16
-de_sm_nsapi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string, int string_len _U_)
+de_sm_nsapi(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
@@ -3063,7 +3063,7 @@ static const value_string gsm_a_gm_link_dir_vals[] = {
 };
 
 guint16
-de_sm_pco(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_sm_pco(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        proto_item   *generated_item = NULL;
        guint32 curr_offset;
@@ -3077,7 +3077,7 @@ de_sm_pco(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
 
        oct = tvb_get_guint8(tvb, curr_offset);
 
-       link_dir = gsm_a_dtap_pinfo->link_dir;
+       link_dir = pinfo->link_dir;
        generated_item =proto_tree_add_int(tree, hf_gsm_a_gm_link_dir, tvb, curr_offset, 0, link_dir);
        PROTO_ITEM_SET_GENERATED(generated_item);
 
@@ -3161,7 +3161,7 @@ de_sm_pco(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
                                         * dissect the embedded message
                                         */
                                        l3_tvb = tvb_new_subset(tvb, curr_offset, e_len, e_len);
-                                       call_dissector(handle, l3_tvb ,  gsm_a_dtap_pinfo  , tree );
+                                       call_dissector(handle, l3_tvb , pinfo  , tree );
                                }
                                else
                                {
@@ -3169,7 +3169,7 @@ de_sm_pco(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
                                        * dissect the embedded DATA message
                                        */
                                        l3_tvb = tvb_new_subset(tvb, curr_offset, e_len, e_len);
-                                       call_dissector(data_handle, l3_tvb, gsm_a_dtap_pinfo , tree);
+                                       call_dissector(data_handle, l3_tvb, pinfo , tree);
                                }
                        }
                }
@@ -3179,7 +3179,7 @@ de_sm_pco(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
        }
        curr_offset+= curr_len;
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, pinfo);
 
        return(curr_offset - offset);
 }
@@ -3195,7 +3195,7 @@ static const value_string gsm_a_sm_pdp_type_org_vals[] = {
 };
 
 static guint16
-de_sm_pdp_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_sm_pdp_addr(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint   curr_len;
@@ -3280,7 +3280,7 @@ de_sm_pdp_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
                        curr_offset+=4;
        }
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, pinfo);
 
        return(curr_offset - offset);
 }
@@ -3458,7 +3458,7 @@ qos_calc_ext_bitrate(guint8 oct)
 }
 
 guint16
-de_sm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_sm_qos(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guchar     oct, tmp_oct;
@@ -3717,7 +3717,7 @@ de_sm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add
 
        curr_offset+= 1;
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, pinfo);
 
        return(curr_offset - offset);
 }
@@ -3771,7 +3771,7 @@ static const value_string gsm_a_sm_cause_vals[] = {
 };
 
 static guint16
-de_sm_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sm_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        const gchar     *str;
@@ -3794,7 +3794,7 @@ de_sm_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gcha
  * [9] 10.5.6.6a SM cause 2
  */
 static guint16
-de_sm_cause_2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sm_cause_2(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        const gchar     *str;
@@ -3816,7 +3816,7 @@ de_sm_cause_2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc
  * [7] 10.5.6.7
  */
 static guint16
-de_sm_linked_ti(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_sm_linked_ti(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint   curr_len;
@@ -3857,7 +3857,7 @@ de_sm_linked_ti(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
 
        curr_offset+= curr_len;
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, pinfo);
 
        return(curr_offset - offset);
 }
@@ -3875,7 +3875,7 @@ static const value_string gsm_a_sm_llc_sapi_vals[] = {
 };
 
 static guint16
-de_sm_sapi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sm_sapi(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree_add_bits_item(tree, hf_gsm_a_spare_bits, tvb, offset << 3, 4, FALSE);
        proto_tree_add_item(tree, hf_gsm_a_sm_llc_sapi, tvb, offset, 1, FALSE);
@@ -3893,7 +3893,7 @@ const true_false_string gsm_a_sm_tdi_value = {
 };
 
 static guint16
-de_sm_tear_down(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sm_tear_down(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree_add_bits_item(tree, hf_gsm_a_spare_bits, tvb, (offset << 3) + 4, 3, FALSE);
        proto_tree_add_item(tree, hf_gsm_a_sm_tdi, tvb, offset, 1, FALSE);
@@ -3916,7 +3916,7 @@ static const range_string gsm_a_sm_packet_flow_id_vals[] = {
 };
 
 guint16
-de_sm_pflow_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_sm_pflow_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint value;
@@ -3930,7 +3930,7 @@ de_sm_pflow_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
     if (add_string)
         g_snprintf(add_string, string_len, " - %s", rval_to_str(value, gsm_a_sm_packet_flow_id_vals, "Unknown"));
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, pinfo);
 
        return(curr_offset - offset);
 }
@@ -3972,7 +3972,7 @@ static const value_string gsm_a_tft_param_id_vals[] = {
 };
 
 guint16
-de_sm_tflow_temp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_sm_tflow_temp(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32       curr_offset;
        guint         curr_len;
@@ -4239,7 +4239,7 @@ de_sm_tflow_temp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
                }
        }
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, pinfo);
 
        return(len);
 }
@@ -4248,7 +4248,7 @@ de_sm_tflow_temp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
  * [9] 10.5.6.13 Temporary Mobile Group Identity (TMGI)
  */
 static guint16
-de_sm_tmgi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_sm_tmgi(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -4260,7 +4260,7 @@ de_sm_tmgi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
        NO_MORE_DATA_CHECK(len);
        curr_offset = dissect_e212_mcc_mnc(tvb, gsm_a_dtap_pinfo, tree, curr_offset, TRUE);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, pinfo);
 
        return(curr_offset - offset);
 }
@@ -4269,7 +4269,7 @@ de_sm_tmgi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *ad
  * [9] 10.5.6.14 MBMS bearer capabilities
  */
 static guint16
-de_sm_mbms_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_sm_mbms_bearer_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset, temp32;
        guint8 oct;
@@ -4309,7 +4309,7 @@ de_sm_mbms_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
 
        curr_offset+= 1;
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, pinfo);
 
        return(curr_offset - offset);
 }
@@ -4318,7 +4318,7 @@ de_sm_mbms_bearer_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
  * [9] 10.5.6.15 MBMS protocol configuration options
  */
 static guint16
-de_sm_mbms_prot_conf_opt(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_sm_mbms_prot_conf_opt(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -4326,7 +4326,7 @@ de_sm_mbms_prot_conf_opt(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
        proto_tree_add_bits_item(tree, hf_gsm_a_spare_bits, tvb, (curr_offset<<3), 8, FALSE);
        curr_offset++;
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(len, curr_offset - offset, pinfo);
 
        return(curr_offset - offset);
 }
@@ -4335,7 +4335,7 @@ de_sm_mbms_prot_conf_opt(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
  * [9] 10.5.6.16 Enhanced network service access point identifier
  */
 static guint16
-de_sm_enh_nsapi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sm_enh_nsapi(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        const gchar *str;
@@ -4368,7 +4368,7 @@ static const value_string gsm_a_sm_req_type_vals[] = {
 };
 
 static guint16
-de_sm_req_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sm_req_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_tree_add_bits_item(tree, hf_gsm_a_spare_bits, tvb, (offset<<3) + 4, 1, FALSE);
        proto_tree_add_item(tree, hf_gsm_a_sm_req_type, tvb, offset, 1, FALSE);
@@ -4377,7 +4377,7 @@ de_sm_req_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
        return(1);
 }
 
-guint16 (*gm_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len) = {
+guint16 (*gm_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len) = {
        /* GPRS Mobility Management Information Elements 10.5.5 */
        de_gmm_attach_res,      /* Attach Result */
        de_gmm_attach_type,     /* Attach Type */
@@ -4439,7 +4439,7 @@ guint16 (*gm_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
  * [7] 9.4.1
  */
 static void
-dtap_gmm_attach_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_attach_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -4448,7 +4448,7 @@ dtap_gmm_attach_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_RECV;
+       pinfo->p2p_dir = P2P_DIR_RECV;
 
        ELEM_MAND_LV(GSM_A_PDU_TYPE_GM, DE_MS_NET_CAP, NULL);
 
@@ -4477,14 +4477,14 @@ dtap_gmm_attach_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
 
        ELEM_OPT_TLV( 0x33 , GSM_A_PDU_TYPE_GM, DE_PS_LCS_CAP , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
  * [7] 9.4.2
  */
 static void
-dtap_gmm_attach_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_attach_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -4493,7 +4493,7 @@ dtap_gmm_attach_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_SENT;
+       pinfo->p2p_dir = P2P_DIR_SENT;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_FORCE_TO_STAND_H, NULL);
        curr_len++;
@@ -4531,14 +4531,14 @@ dtap_gmm_attach_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
 
        ELEM_OPT_TLV( 0x34 , GSM_A_PDU_TYPE_DTAP, DE_EMERGENCY_NUM_LIST , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
  * [7] 9.4.3
  */
 static void
-dtap_gmm_attach_com(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_attach_com(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
 
        guint32 curr_offset;
@@ -4548,16 +4548,16 @@ dtap_gmm_attach_com(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_RECV;
+       pinfo->p2p_dir = P2P_DIR_RECV;
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
  * [7] 9.4.4
  */
 static void
-dtap_gmm_attach_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_attach_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -4566,20 +4566,20 @@ dtap_gmm_attach_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_SENT;
+       pinfo->p2p_dir = P2P_DIR_SENT;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_GMM_CAUSE, NULL);
 
        ELEM_OPT_TLV( 0x2A , GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_2 , " - T3302" );
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
  * [7] 9.4.5
  */
 static void
-dtap_gmm_detach_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_detach_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -4588,7 +4588,7 @@ dtap_gmm_detach_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_SENT;
+       pinfo->p2p_dir = P2P_DIR_SENT;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_FORCE_TO_STAND_H, NULL);
        /* Force to standy might be wrong - To decode it correct, we need the direction */
@@ -4603,14 +4603,14 @@ dtap_gmm_detach_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
 
        ELEM_OPT_TLV( 0x19 , GSM_A_PDU_TYPE_GM, DE_P_TMSI_SIG , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
  * [7] 9.4.6
  */
 static void
-dtap_gmm_detach_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_detach_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -4619,7 +4619,7 @@ dtap_gmm_detach_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_RECV;
+       pinfo->p2p_dir = P2P_DIR_RECV;
 
        if ( curr_len != 0 )
        {
@@ -4630,14 +4630,14 @@ dtap_gmm_detach_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
                ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_FORCE_TO_STAND, NULL);
        }
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
  * [7] 9.4.7
  */
 static void
-dtap_gmm_ptmsi_realloc_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_ptmsi_realloc_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -4646,7 +4646,7 @@ dtap_gmm_ptmsi_realloc_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_SENT;
+       pinfo->p2p_dir = P2P_DIR_SENT;
 
        ELEM_MAND_LV(GSM_A_PDU_TYPE_COMMON, DE_MID , " - Allocated P-TMSI" );
 
@@ -4660,14 +4660,14 @@ dtap_gmm_ptmsi_realloc_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
 
        ELEM_OPT_TV( 0x19 , GSM_A_PDU_TYPE_COMMON, DE_MID , " - P-TMSI Signature" );
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
  * [7] 9.4.8
  */
 static void
-dtap_gmm_ptmsi_realloc_com(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_ptmsi_realloc_com(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
 /*    guint32  consumed; */
@@ -4676,16 +4676,16 @@ dtap_gmm_ptmsi_realloc_com(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_RECV;
+       pinfo->p2p_dir = P2P_DIR_RECV;
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
  * [7] 9.4.9
  */
 static void
-dtap_gmm_auth_ciph_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_auth_ciph_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -4695,7 +4695,7 @@ dtap_gmm_auth_ciph_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_SENT;
+       pinfo->p2p_dir = P2P_DIR_SENT;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_IMEISV_REQ, NULL);
        curr_offset--;
@@ -4733,20 +4733,20 @@ dtap_gmm_auth_ciph_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
 
        if ( curr_len == 0  )
        {
-               EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+               EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
        return;
        }
 
        ELEM_OPT_TLV( 0x28 , GSM_A_PDU_TYPE_DTAP, DE_AUTH_PARAM_AUTN , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
  * [7] 9.4.10
  */
 static void
-dtap_gmm_auth_ciph_resp(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_auth_ciph_resp(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -4755,7 +4755,7 @@ dtap_gmm_auth_ciph_resp(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_RECV;
+       pinfo->p2p_dir = P2P_DIR_RECV;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_COMMON, DE_SPARE_NIBBLE, NULL);
        curr_offset--;
@@ -4769,14 +4769,14 @@ dtap_gmm_auth_ciph_resp(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
 
        ELEM_OPT_TLV( 0x29 , GSM_A_PDU_TYPE_DTAP, DE_AUTH_RESP_PARAM_EXT , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
  * [7] 9.4.11
  */
 static void
-dtap_gmm_auth_ciph_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_auth_ciph_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint   curr_len;
@@ -4784,16 +4784,16 @@ dtap_gmm_auth_ciph_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_SENT;
+       pinfo->p2p_dir = P2P_DIR_SENT;
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
  * [7] 9.4.10a
  */
 static void
-dtap_gmm_auth_ciph_fail(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_auth_ciph_fail(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -4802,20 +4802,20 @@ dtap_gmm_auth_ciph_fail(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_RECV;
+       pinfo->p2p_dir = P2P_DIR_RECV;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_GMM_CAUSE, NULL);
 
        ELEM_OPT_TLV( 0x30 , GSM_A_PDU_TYPE_DTAP, DE_AUTH_FAIL_PARAM , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
  * [7] 9.4.12
  */
 static void
-dtap_gmm_ident_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_ident_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint   curr_len;
@@ -4823,7 +4823,7 @@ dtap_gmm_ident_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_SENT;
+       pinfo->p2p_dir = P2P_DIR_SENT;
 
 /*  If the half octect that are about to get decoded is the LAST in the octetstream, the macro will call return BEFORE we get a chance to fix the index. The end result will be that the first half-octet will be decoded but not the last. */
 #if 0
@@ -4833,20 +4833,20 @@ dtap_gmm_ident_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_FORCE_TO_STAND_H, NULL);
 #endif
 
-       elem_v(tvb, tree, GSM_A_PDU_TYPE_GM, DE_FORCE_TO_STAND_H, curr_offset, NULL);
-       elem_v(tvb, tree, GSM_A_PDU_TYPE_GM, DE_ID_TYPE_2, curr_offset, NULL);
+       elem_v(tvb, tree, pinfo, GSM_A_PDU_TYPE_GM, DE_FORCE_TO_STAND_H, curr_offset, NULL);
+       elem_v(tvb, tree, pinfo, GSM_A_PDU_TYPE_GM, DE_ID_TYPE_2, curr_offset, NULL);
 
        curr_offset+=1;
        curr_len-=1;
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
  * [7] 9.4.13
  */
 static void
-dtap_gmm_ident_res(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_ident_res(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -4855,18 +4855,18 @@ dtap_gmm_ident_res(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_RECV;
+       pinfo->p2p_dir = P2P_DIR_RECV;
 
        ELEM_MAND_LV(GSM_A_PDU_TYPE_COMMON, DE_MID , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
  * [7] 9.4.14
  */
 static void
-dtap_gmm_rau_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_rau_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -4875,7 +4875,7 @@ dtap_gmm_rau_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_RECV;
+       pinfo->p2p_dir = P2P_DIR_RECV;
 
        /* is included in update type
        ELEM_MAND_V(GSM_A_PDU_TYPE_COMMON, DE_CIPH_KEY_SEQ_NUM, NULL);
@@ -4905,14 +4905,14 @@ dtap_gmm_rau_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
 
        ELEM_OPT_TLV( 0x33 , GSM_A_PDU_TYPE_GM, DE_PS_LCS_CAP , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
  * [7] 9.4.15
  */
 static void
-dtap_gmm_rau_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_rau_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -4921,7 +4921,7 @@ dtap_gmm_rau_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_SENT;
+       pinfo->p2p_dir = P2P_DIR_SENT;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_UPD_RES, NULL);
        curr_offset--;
@@ -4957,14 +4957,14 @@ dtap_gmm_rau_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
 
        ELEM_OPT_TLV( 0x34 , GSM_A_PDU_TYPE_DTAP, DE_EMERGENCY_NUM_LIST , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
  * [7] 9.4.16
  */
 static void
-dtap_gmm_rau_com(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_rau_com(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -4973,21 +4973,21 @@ dtap_gmm_rau_com(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_RECV;
+       pinfo->p2p_dir = P2P_DIR_RECV;
        /* [7] 10.5.5.11 */
        ELEM_OPT_TLV( 0x26 , GSM_A_PDU_TYPE_GM, DE_REC_N_PDU_NUM_LIST , NULL);
        /* Inter RAT information container 10.5.5.24 TS 24.008 version 6.8.0 Release 6 */
        /*TO DO: Implement */
        ELEM_OPT_TLV( 0x27 , GSM_A_PDU_TYPE_GM, DE_RAT_INFO_CONTAINER , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
  * [7] 9.4.17
  */
 static void
-dtap_gmm_rau_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_rau_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -4996,7 +4996,7 @@ dtap_gmm_rau_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_SENT;
+       pinfo->p2p_dir = P2P_DIR_SENT;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_GMM_CAUSE, NULL);
 
@@ -5008,14 +5008,14 @@ dtap_gmm_rau_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
 
        ELEM_OPT_TLV( 0x26 , GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_2 , " - T3302" );
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
  * [7] 9.4.18
  */
 static void
-dtap_gmm_status(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_status(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5024,18 +5024,18 @@ dtap_gmm_status(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_UNKNOWN;
+       pinfo->p2p_dir = P2P_DIR_UNKNOWN;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_GMM_CAUSE, NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
  * [8] 9.4.19 GMM Information
  */
 static void
-dtap_gmm_information(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_information(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5044,7 +5044,7 @@ dtap_gmm_information(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_SENT;
+       pinfo->p2p_dir = P2P_DIR_SENT;
 
        ELEM_OPT_TLV( 0x43 , GSM_A_PDU_TYPE_DTAP, DE_NETWORK_NAME , " - Full Name" );
 
@@ -5058,14 +5058,14 @@ dtap_gmm_information(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
 
        ELEM_OPT_TLV( 0x49 , GSM_A_PDU_TYPE_DTAP, DE_DAY_SAVING_TIME , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
  * [7] 9.4.20
  */
 static void
-dtap_gmm_service_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_service_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5074,7 +5074,7 @@ dtap_gmm_service_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_RECV;
+       pinfo->p2p_dir = P2P_DIR_RECV;
 
        /* Is included in SRVC TYPE
        ELEM_MAND_V(GSM_A_PDU_TYPE_COMMON, DE_CIPH_KEY_SEQ_NUM, NULL);
@@ -5092,14 +5092,14 @@ dtap_gmm_service_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
        /* MBMS context status 10.5.7.6 TLV 2 - 18 */
        ELEM_OPT_TLV( 0x35 , GSM_A_PDU_TYPE_GM, DE_MBMS_CTX_STATUS , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
  * [7] 9.4.21
  */
 static void
-dtap_gmm_service_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_service_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5108,21 +5108,21 @@ dtap_gmm_service_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_SENT;
+       pinfo->p2p_dir = P2P_DIR_SENT;
 
        ELEM_OPT_TLV( 0x32 , GSM_A_PDU_TYPE_GM, DE_PDP_CONTEXT_STAT , NULL);
 
        /* MBMS context status 10.5.7.6 TLV 2 - 18 */
        ELEM_OPT_TLV( 0x35 , GSM_A_PDU_TYPE_GM, DE_MBMS_CTX_STATUS , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
  * [7] 9.4.22
  */
 static void
-dtap_gmm_service_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_gmm_service_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5131,11 +5131,11 @@ dtap_gmm_service_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_SENT;
+       pinfo->p2p_dir = P2P_DIR_SENT;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_GMM_CAUSE, NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
@@ -5143,7 +5143,7 @@ dtap_gmm_service_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
  * Direction:                  MS to network
  */
 static void
-dtap_sm_act_pdp_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_sm_act_pdp_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5152,9 +5152,9 @@ dtap_sm_act_pdp_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_UNKNOWN;
+       pinfo->p2p_dir = P2P_DIR_UNKNOWN;
        /* MS to network */
-       gsm_a_dtap_pinfo->link_dir = P2P_DIR_UL;
+       pinfo->link_dir = P2P_DIR_UL;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_NET_SAPI, " - Requested NSAPI");
 
@@ -5170,7 +5170,7 @@ dtap_sm_act_pdp_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
 
        ELEM_OPT_TV_SHORT(0xA0, GSM_A_PDU_TYPE_GM, DE_REQ_TYPE, NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
@@ -5178,7 +5178,7 @@ dtap_sm_act_pdp_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
  * Direction:                  network to MS
  */
 static void
-dtap_sm_act_pdp_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_sm_act_pdp_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5187,9 +5187,9 @@ dtap_sm_act_pdp_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_UNKNOWN;
+       pinfo->p2p_dir = P2P_DIR_UNKNOWN;
        /* Network to MS*/
-       gsm_a_dtap_pinfo->link_dir = P2P_DIR_DL;
+       pinfo->link_dir = P2P_DIR_DL;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_LLC_SAPI, " - Negotiated LLC SAPI");
 
@@ -5212,7 +5212,7 @@ dtap_sm_act_pdp_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
 
        ELEM_OPT_TLV( 0x39 , GSM_A_PDU_TYPE_GM, DE_SM_CAUSE_2, NULL );
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
@@ -5220,7 +5220,7 @@ dtap_sm_act_pdp_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
  * Direction:                  network to MS
  */
 static void
-dtap_sm_act_pdp_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_sm_act_pdp_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5229,15 +5229,15 @@ dtap_sm_act_pdp_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_UNKNOWN;
+       pinfo->p2p_dir = P2P_DIR_UNKNOWN;
        /* Network to MS*/
-       gsm_a_dtap_pinfo->link_dir = P2P_DIR_DL;
+       pinfo->link_dir = P2P_DIR_DL;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_SM_CAUSE, NULL);
 
        ELEM_OPT_TLV( 0x27 , GSM_A_PDU_TYPE_GM, DE_PRO_CONF_OPT , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
@@ -5245,7 +5245,7 @@ dtap_sm_act_pdp_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
  * Direction:                  MS to network
  */
 static void
-dtap_sm_act_sec_pdp_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_sm_act_sec_pdp_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5254,9 +5254,9 @@ dtap_sm_act_sec_pdp_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_UNKNOWN;
+       pinfo->p2p_dir = P2P_DIR_UNKNOWN;
        /* MS to Network */
-       gsm_a_dtap_pinfo->link_dir = P2P_DIR_UL;
+       pinfo->link_dir = P2P_DIR_UL;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_NET_SAPI, " - Requested NSAPI");
 
@@ -5271,7 +5271,7 @@ dtap_sm_act_sec_pdp_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
 
        ELEM_OPT_TLV( 0x27 , GSM_A_PDU_TYPE_GM, DE_PRO_CONF_OPT , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
@@ -5279,7 +5279,7 @@ dtap_sm_act_sec_pdp_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
  * Direction:                  network to MS
  */
 static void
-dtap_sm_act_sec_pdp_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_sm_act_sec_pdp_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5288,9 +5288,9 @@ dtap_sm_act_sec_pdp_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_UNKNOWN;
+       pinfo->p2p_dir = P2P_DIR_UNKNOWN;
        /* Network to MS*/
-       gsm_a_dtap_pinfo->link_dir = P2P_DIR_DL;
+       pinfo->link_dir = P2P_DIR_DL;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_LLC_SAPI, " - Negotiated LLC SAPI");
 
@@ -5309,7 +5309,7 @@ dtap_sm_act_sec_pdp_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
 
        ELEM_OPT_TLV( 0x27 , GSM_A_PDU_TYPE_GM, DE_PRO_CONF_OPT , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
@@ -5317,7 +5317,7 @@ dtap_sm_act_sec_pdp_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
  * Direction:                  network to MS
  */
 static void
-dtap_sm_act_sec_pdp_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_sm_act_sec_pdp_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5326,15 +5326,15 @@ dtap_sm_act_sec_pdp_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_UNKNOWN;
+       pinfo->p2p_dir = P2P_DIR_UNKNOWN;
        /* Network to MS*/
-       gsm_a_dtap_pinfo->link_dir = P2P_DIR_DL;
+       pinfo->link_dir = P2P_DIR_DL;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_SM_CAUSE, NULL);
 
        ELEM_OPT_TLV( 0x27 , GSM_A_PDU_TYPE_GM, DE_PRO_CONF_OPT , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
@@ -5342,7 +5342,7 @@ dtap_sm_act_sec_pdp_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
  * Direction:                  network to MS
  */
 static void
-dtap_sm_req_pdp_act(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_sm_req_pdp_act(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5351,9 +5351,9 @@ dtap_sm_req_pdp_act(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_UNKNOWN;
+       pinfo->p2p_dir = P2P_DIR_UNKNOWN;
        /* Network to MS*/
-       gsm_a_dtap_pinfo->link_dir = P2P_DIR_DL;
+       pinfo->link_dir = P2P_DIR_DL;
 
        ELEM_MAND_LV(GSM_A_PDU_TYPE_GM, DE_PD_PRO_ADDR , " - Offered PDP address" );
 
@@ -5361,7 +5361,7 @@ dtap_sm_req_pdp_act(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
 
        ELEM_OPT_TLV( 0x27 , GSM_A_PDU_TYPE_GM, DE_PRO_CONF_OPT , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
@@ -5369,7 +5369,7 @@ dtap_sm_req_pdp_act(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
  * Direction:                  MS to network
  */
 static void
-dtap_sm_req_pdp_act_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_sm_req_pdp_act_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5378,15 +5378,15 @@ dtap_sm_req_pdp_act_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_UNKNOWN;
+       pinfo->p2p_dir = P2P_DIR_UNKNOWN;
        /* MS to  Network */
-       gsm_a_dtap_pinfo->link_dir = P2P_DIR_UL;
+       pinfo->link_dir = P2P_DIR_UL;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_SM_CAUSE, NULL);
 
        ELEM_OPT_TLV( 0x27 , GSM_A_PDU_TYPE_GM, DE_PRO_CONF_OPT , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
@@ -5394,7 +5394,7 @@ dtap_sm_req_pdp_act_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
  * Direction:                  network to MS
  */
 static void
-dtap_sm_mod_pdp_req_net(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_sm_mod_pdp_req_net(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5403,9 +5403,9 @@ dtap_sm_mod_pdp_req_net(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_UNKNOWN;
+       pinfo->p2p_dir = P2P_DIR_UNKNOWN;
        /* Network to MS */
-       gsm_a_dtap_pinfo->link_dir = P2P_DIR_DL;
+       pinfo->link_dir = P2P_DIR_DL;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM,DE_RAD_PRIO, NULL);
 #if 0
@@ -5425,7 +5425,7 @@ dtap_sm_mod_pdp_req_net(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
 
        ELEM_OPT_TLV( 0x27 , GSM_A_PDU_TYPE_GM, DE_PRO_CONF_OPT , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
@@ -5433,7 +5433,7 @@ dtap_sm_mod_pdp_req_net(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
  * Direction:                  MS to network
  */
 static void
-dtap_sm_mod_pdp_req_ms(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_sm_mod_pdp_req_ms(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5442,9 +5442,9 @@ dtap_sm_mod_pdp_req_ms(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_UNKNOWN;
+       pinfo->p2p_dir = P2P_DIR_UNKNOWN;
        /* MS to Network */
-       gsm_a_dtap_pinfo->link_dir = P2P_DIR_UL;
+       pinfo->link_dir = P2P_DIR_UL;
 
        ELEM_OPT_TV( 0x32 , GSM_A_PDU_TYPE_GM, DE_LLC_SAPI , " - Requested LLC SAPI" );
 
@@ -5454,7 +5454,7 @@ dtap_sm_mod_pdp_req_ms(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
 
        ELEM_OPT_TLV( 0x27 , GSM_A_PDU_TYPE_GM, DE_PRO_CONF_OPT , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
@@ -5462,7 +5462,7 @@ dtap_sm_mod_pdp_req_ms(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
  * Direction:                  MS to network
  */
 static void
-dtap_sm_mod_pdp_acc_ms(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_sm_mod_pdp_acc_ms(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5471,13 +5471,13 @@ dtap_sm_mod_pdp_acc_ms(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_UNKNOWN;
+       pinfo->p2p_dir = P2P_DIR_UNKNOWN;
        /* MS to Network */
-       gsm_a_dtap_pinfo->link_dir = P2P_DIR_UL;
+       pinfo->link_dir = P2P_DIR_UL;
 
        ELEM_OPT_TLV( 0x27 , GSM_A_PDU_TYPE_GM, DE_PRO_CONF_OPT , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
@@ -5485,7 +5485,7 @@ dtap_sm_mod_pdp_acc_ms(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
  * Direction:                  Network to MS
  */
 static void
-dtap_sm_mod_pdp_acc_net(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_sm_mod_pdp_acc_net(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5494,9 +5494,9 @@ dtap_sm_mod_pdp_acc_net(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_UNKNOWN;
+       pinfo->p2p_dir = P2P_DIR_UNKNOWN;
        /* Network to MS */
-       gsm_a_dtap_pinfo->link_dir = P2P_DIR_DL;
+       pinfo->link_dir = P2P_DIR_DL;
 
        ELEM_OPT_TLV( 0x30 , GSM_A_PDU_TYPE_GM, DE_QOS , " - Negotiated QoS" );
 
@@ -5508,7 +5508,7 @@ dtap_sm_mod_pdp_acc_net(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
 
        ELEM_OPT_TLV( 0x27 , GSM_A_PDU_TYPE_GM, DE_PRO_CONF_OPT , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
@@ -5516,7 +5516,7 @@ dtap_sm_mod_pdp_acc_net(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
  * Direction:                  both
  */
 static void
-dtap_sm_mod_pdp_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_sm_mod_pdp_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5525,16 +5525,16 @@ dtap_sm_mod_pdp_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_UNKNOWN;
+       pinfo->p2p_dir = P2P_DIR_UNKNOWN;
        /* Network or the MS */
-       gsm_a_dtap_pinfo->link_dir = LINK_DIR_UNKNOWN;
+       pinfo->link_dir = LINK_DIR_UNKNOWN;
 
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_SM_CAUSE, NULL);
 
        ELEM_OPT_TLV( 0x27 , GSM_A_PDU_TYPE_GM, DE_PRO_CONF_OPT , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
@@ -5542,7 +5542,7 @@ dtap_sm_mod_pdp_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
  * Direction:                  both
  */
 static void
-dtap_sm_deact_pdp_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_sm_deact_pdp_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5551,8 +5551,8 @@ dtap_sm_deact_pdp_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, g
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_UNKNOWN;
-       gsm_a_dtap_pinfo->link_dir = LINK_DIR_UNKNOWN;
+       pinfo->p2p_dir = P2P_DIR_UNKNOWN;
+       pinfo->link_dir = LINK_DIR_UNKNOWN;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_SM_CAUSE, NULL);
 
@@ -5563,7 +5563,7 @@ dtap_sm_deact_pdp_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, g
        /* MBMS context status 10.5.7.6 TLV 2 - 18 */
        ELEM_OPT_TLV( 0x35 , GSM_A_PDU_TYPE_GM, DE_MBMS_CTX_STATUS , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
@@ -5571,7 +5571,7 @@ dtap_sm_deact_pdp_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, g
  * Direction:                  both
  */
 static void
-dtap_sm_deact_pdp_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_sm_deact_pdp_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5580,15 +5580,15 @@ dtap_sm_deact_pdp_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, g
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_UNKNOWN;
-       gsm_a_dtap_pinfo->link_dir = LINK_DIR_UNKNOWN;
+       pinfo->p2p_dir = P2P_DIR_UNKNOWN;
+       pinfo->link_dir = LINK_DIR_UNKNOWN;
 
        ELEM_OPT_TLV( 0x27 , GSM_A_PDU_TYPE_GM, DE_PRO_CONF_OPT , NULL);
 
        /* MBMS context status 10.5.7.6 TLV 2 - 18 */
        ELEM_OPT_TLV( 0x35 , GSM_A_PDU_TYPE_GM, DE_MBMS_CTX_STATUS , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
@@ -5596,7 +5596,7 @@ dtap_sm_deact_pdp_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, g
  * Direction:                  both
  */
 static void
-dtap_sm_status(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_sm_status(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5605,12 +5605,12 @@ dtap_sm_status(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_UNKNOWN;
-       gsm_a_dtap_pinfo->link_dir = LINK_DIR_UNKNOWN;
+       pinfo->p2p_dir = P2P_DIR_UNKNOWN;
+       pinfo->link_dir = LINK_DIR_UNKNOWN;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_SM_CAUSE, NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
@@ -5618,7 +5618,7 @@ dtap_sm_status(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
  * Direction:                  MS to network
  */
 static void
-dtap_sm_act_mbms_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_sm_act_mbms_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5627,7 +5627,7 @@ dtap_sm_act_mbms_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_RECV;
+       pinfo->p2p_dir = P2P_DIR_RECV;
 
        /* Requested MBMS NSAPI Enhanced Network service access point identifier 10.5.6.16 M V */
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_ENH_NSAPI, " - Requested MBMS NSAPI");
@@ -5647,7 +5647,7 @@ dtap_sm_act_mbms_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
        /* 35 MBMS protocol configuration options MBMS protocol configuration options 10.5.6.15 O TLV 3 - 253 */
        ELEM_OPT_TLV( 0x35 , GSM_A_PDU_TYPE_GM, DE_MBMS_PROT_CONF_OPT , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
@@ -5655,7 +5655,7 @@ dtap_sm_act_mbms_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
  * Direction:                  network to MS
  */
 static void
-dtap_sm_act_mbms_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_sm_act_mbms_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5664,7 +5664,7 @@ dtap_sm_act_mbms_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_SENT;
+       pinfo->p2p_dir = P2P_DIR_SENT;
 
        ELEM_MAND_LV(GSM_A_PDU_TYPE_GM, DE_TMGI, NULL);
 
@@ -5672,7 +5672,7 @@ dtap_sm_act_mbms_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
 
        ELEM_OPT_TLV( 0x35 , GSM_A_PDU_TYPE_GM, DE_MBMS_PROT_CONF_OPT , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
@@ -5680,7 +5680,7 @@ dtap_sm_act_mbms_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
  * Direction:                  network to MS
  */
 static void
-dtap_sm_act_mbms_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_sm_act_mbms_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5689,13 +5689,13 @@ dtap_sm_act_mbms_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_SENT;
+       pinfo->p2p_dir = P2P_DIR_SENT;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_SM_CAUSE, NULL);
 
        ELEM_OPT_TLV( 0x35 , GSM_A_PDU_TYPE_GM, DE_MBMS_PROT_CONF_OPT , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
@@ -5703,7 +5703,7 @@ dtap_sm_act_mbms_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
  * Direction:                  network to MS
  */
 static void
-dtap_sm_req_mbms_act(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_sm_req_mbms_act(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5712,7 +5712,7 @@ dtap_sm_req_mbms_act(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_SENT;
+       pinfo->p2p_dir = P2P_DIR_SENT;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_NET_SAPI, " - Linked NSAPI");
 
@@ -5722,7 +5722,7 @@ dtap_sm_req_mbms_act(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
 
        ELEM_OPT_TLV( 0x35 , GSM_A_PDU_TYPE_GM, DE_MBMS_PROT_CONF_OPT , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 /*
@@ -5730,7 +5730,7 @@ dtap_sm_req_mbms_act(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
  * Direction:                  MS to network
  */
 static void
-dtap_sm_req_mbms_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+dtap_sm_req_mbms_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -5739,18 +5739,18 @@ dtap_sm_req_mbms_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
        curr_offset = offset;
        curr_len = len;
 
-       gsm_a_dtap_pinfo->p2p_dir = P2P_DIR_RECV;
+       pinfo->p2p_dir = P2P_DIR_RECV;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_GM, DE_SM_CAUSE, NULL);
 
        ELEM_OPT_TLV( 0x35 , GSM_A_PDU_TYPE_GM, DE_MBMS_PROT_CONF_OPT , NULL);
 
-       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, gsm_a_dtap_pinfo);
+       EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo);
 }
 
 #define        NUM_GSM_DTAP_MSG_GMM (sizeof(gsm_a_dtap_msg_gmm_strings)/sizeof(value_string))
 static gint ett_gsm_dtap_msg_gmm[NUM_GSM_DTAP_MSG_GMM];
-static void (*dtap_msg_gmm_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len) = {
+static void (*dtap_msg_gmm_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len) = {
        dtap_gmm_attach_req,            /* Attach Request */
        dtap_gmm_attach_acc,            /* Attach Accept */
        dtap_gmm_attach_com,            /* Attach Complete */
@@ -5779,7 +5779,7 @@ static void (*dtap_msg_gmm_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *
 
 #define        NUM_GSM_DTAP_MSG_SM (sizeof(gsm_a_dtap_msg_sm_strings)/sizeof(value_string))
 static gint ett_gsm_dtap_msg_sm[NUM_GSM_DTAP_MSG_SM];
-static void (*dtap_msg_sm_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len) = {
+static void (*dtap_msg_sm_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len) = {
        dtap_sm_act_pdp_req,            /* Activate PDP Context Request */
        dtap_sm_act_pdp_acc,            /* Activate PDP Context Accept */
        dtap_sm_act_pdp_rej,            /* Activate PDP Context Reject */
index 362962de08d21a15b52ad5b55f1ad4e01808ae7c..e6811dd798891b66b711e38c5a0f09d09fafd1e7 100644 (file)
@@ -80,7 +80,6 @@ static char a_bigbuf[1024];
 
 static dissector_table_t sms_dissector_table;  /* SMS TPDU */
 
-static packet_info *g_pinfo;
 static proto_tree *g_tree;
 
 typedef enum
@@ -102,7 +101,7 @@ gint ett_gsm_rp_elem[NUM_GSM_RP_ELEM];
  * [5] 8.2.3
  */
 static guint16
-de_rp_message_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rp_message_ref(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint8  oct;
        guint32 curr_offset;
@@ -128,25 +127,25 @@ de_rp_message_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
  * [5] 8.2.5.1
  */
 static guint16
-de_rp_orig_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+de_rp_orig_addr(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len)
 {
-       return(de_cld_party_bcd_num(tvb, tree, offset, len, add_string, string_len));
+       return(de_cld_party_bcd_num(tvb, tree, pinfo, offset, len, add_string, string_len));
 }
 
 /*
  * [5] 8.2.5.2
  */
 static guint16
-de_rp_dest_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+de_rp_dest_addr(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len)
 {
-       return(de_cld_party_bcd_num(tvb, tree, offset, len, add_string, string_len));
+       return(de_cld_party_bcd_num(tvb, tree, pinfo, offset, len, add_string, string_len));
 }
 
 /*
  * [5] 8.2.5.3
  */
 static guint16
-de_rp_user_data(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rp_user_data(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        tvbuff_t        *tpdu_tvb;
@@ -161,7 +160,7 @@ de_rp_user_data(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
         */
        tpdu_tvb = tvb_new_subset(tvb, curr_offset, len, len);
 
-       dissector_try_uint(sms_dissector_table, 0, tpdu_tvb, g_pinfo, g_tree);
+       dissector_try_uint(sms_dissector_table, 0, tpdu_tvb, pinfo, g_tree);
 
        curr_offset += len;
 
@@ -174,7 +173,7 @@ de_rp_user_data(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
  * [5] 8.2.5.4
  */
 static guint16
-de_rp_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len)
+de_rp_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len)
 {
        guint8  oct;
        guint32 curr_offset;
@@ -248,7 +247,7 @@ de_rp_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *a
        return(curr_offset - offset);
 }
 
-guint16 (*rp_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len) = {
+guint16 (*rp_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len) = {
        /* Short Message Service Information Elements [5] 8.2 */
        de_rp_message_ref,      /* RP-Message Reference */
        de_rp_orig_addr,        /* RP-Origination Address */
@@ -264,7 +263,7 @@ guint16 (*rp_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
  * [5] 7.3.1.1
  */
 static void
-rp_data_n_ms(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+rp_data_n_ms(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -273,7 +272,7 @@ rp_data_n_ms(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
        curr_offset = offset;
        curr_len = len;
 
-       g_pinfo->p2p_dir = P2P_DIR_SENT;
+       pinfo->p2p_dir = P2P_DIR_SENT;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_RP, DE_RP_MESSAGE_REF, NULL);
 
@@ -290,7 +289,7 @@ rp_data_n_ms(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
  * [5] 7.3.1.2
  */
 static void
-rp_data_ms_n(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+rp_data_ms_n(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -299,7 +298,7 @@ rp_data_ms_n(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
        curr_offset = offset;
        curr_len = len;
 
-       g_pinfo->p2p_dir = P2P_DIR_RECV;
+       pinfo->p2p_dir = P2P_DIR_RECV;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_RP, DE_RP_MESSAGE_REF, NULL);
 
@@ -316,7 +315,7 @@ rp_data_ms_n(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
  * [5] 7.3.2
  */
 static void
-rp_smma(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+rp_smma(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -334,7 +333,7 @@ rp_smma(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
  * [5] 7.3.3
  */
 static void
-rp_ack_n_ms(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+rp_ack_n_ms(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -343,7 +342,7 @@ rp_ack_n_ms(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
        curr_offset = offset;
        curr_len = len;
 
-       g_pinfo->p2p_dir = P2P_DIR_SENT;
+       pinfo->p2p_dir = P2P_DIR_SENT;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_RP, DE_RP_MESSAGE_REF, NULL);
 
@@ -356,7 +355,7 @@ rp_ack_n_ms(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
  * [5] 7.3.3
  */
 static void
-rp_ack_ms_n(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+rp_ack_ms_n(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -365,7 +364,7 @@ rp_ack_ms_n(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
        curr_offset = offset;
        curr_len = len;
 
-       g_pinfo->p2p_dir = P2P_DIR_RECV;
+       pinfo->p2p_dir = P2P_DIR_RECV;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_RP, DE_RP_MESSAGE_REF, NULL);
 
@@ -378,7 +377,7 @@ rp_ack_ms_n(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
  * [5] 7.3.4
  */
 static void
-rp_error_n_ms(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+rp_error_n_ms(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -387,7 +386,7 @@ rp_error_n_ms(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
        curr_offset = offset;
        curr_len = len;
 
-       g_pinfo->p2p_dir = P2P_DIR_SENT;
+       pinfo->p2p_dir = P2P_DIR_SENT;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_RP, DE_RP_MESSAGE_REF, NULL);
 
@@ -402,7 +401,7 @@ rp_error_n_ms(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
  * [5] 7.3.4
  */
 static void
-rp_error_ms_n(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
+rp_error_ms_n(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -411,7 +410,7 @@ rp_error_ms_n(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
        curr_offset = offset;
        curr_len = len;
 
-       g_pinfo->p2p_dir = P2P_DIR_RECV;
+       pinfo->p2p_dir = P2P_DIR_RECV;
 
        ELEM_MAND_V(GSM_A_PDU_TYPE_RP, DE_RP_MESSAGE_REF, NULL);
 
@@ -424,7 +423,7 @@ rp_error_ms_n(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len)
 
 #define        NUM_GSM_RP_MSG (sizeof(gsm_rp_msg_strings)/sizeof(value_string))
 static gint ett_gsm_rp_msg[NUM_GSM_RP_MSG];
-static void (*rp_msg_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len) = {
+static void (*rp_msg_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len) = {
        rp_data_ms_n,   /* RP-DATA (MS to Network) */
        rp_data_n_ms,   /* RP-DATA (Network to MS */
        rp_ack_ms_n,    /* RP-ACK (MS to Network) */
@@ -462,7 +461,6 @@ dissect_rp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        offset = 0;
        saved_offset = offset;
 
-       g_pinfo = pinfo;
        g_tree = tree;
 
        len = tvb_length(tvb);
@@ -495,10 +493,7 @@ dissect_rp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
                rp_tree = proto_item_add_subtree(rp_item, ett_gsm_rp_msg[idx]);
 
-               if (check_col(pinfo->cinfo, COL_INFO))
-               {
-                       col_append_fstr(pinfo->cinfo, COL_INFO, "%s ", str);
-               }
+               col_append_fstr(pinfo->cinfo, COL_INFO, "%s ", str);
        }
 
        /*
@@ -522,7 +517,7 @@ dissect_rp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        }
        else
        {
-               (*rp_msg_fcn[idx])(tvb, rp_tree, offset, len - offset);
+               (*rp_msg_fcn[idx])(tvb, rp_tree, pinfo, offset, len - offset);
        }
 }
 
index 042b2793b1e22a9fff4692de69fbea7f767682fe..91e9a4469f9bf668364d2736618ea97453ef18a5 100644 (file)
@@ -832,7 +832,7 @@ gint ett_gsm_rr_rest_octets_elem[NUM_GSM_RR_REST_OCTETS_ELEM];
  * [3] 10.5.2.1a BA Range
  */
 guint16
-de_rr_ba_range(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_ba_range(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
     gint bit_offset;
@@ -911,7 +911,7 @@ static gint f_k(gint k, gint *w, gint range)
     return (n+1)%1024;
 }
 
-static void dissect_channel_list_n_range(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gint range)
+static void dissect_channel_list_n_range(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gint range)
 {
     gint curr_offset=offset, f0, arfcn_orig, bits, w[64], wsize, i, wi;
     gint octet, nwi=1, jwi=0, wbits, imax, iused, arfcn;
@@ -999,7 +999,7 @@ static void dissect_channel_list_n_range(tvbuff_t *tvb, proto_tree *tree, guint3
 }
 
 static guint16
-dissect_arfcn_list_core(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_, guint8 format)
+dissect_arfcn_list_core(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_, guint8 format)
 {
     guint32 curr_offset,byte;
     guint8  oct,bit;
@@ -1032,25 +1032,25 @@ dissect_arfcn_list_core(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
     else if ((format & 0xc8) == 0x80)
     {
         /* 1024 range */
-        dissect_channel_list_n_range(tvb, tree, curr_offset, len, 1024);
+        dissect_channel_list_n_range(tvb, tree, pinfo, curr_offset, len, 1024);
         curr_offset = curr_offset + len;
     }
     else if ((format & 0xce) == 0x88)
     {
         /* 512 range */
-        dissect_channel_list_n_range(tvb, tree, curr_offset, len, 512);
+        dissect_channel_list_n_range(tvb, tree, pinfo, curr_offset, len, 512);
         curr_offset = curr_offset + len;
     }
     else if ((format & 0xce) == 0x8a)
     {
         /* 256 range */
-        dissect_channel_list_n_range(tvb, tree, curr_offset, len, 256);
+        dissect_channel_list_n_range(tvb, tree, pinfo, curr_offset, len, 256);
         curr_offset = curr_offset + len;
     }
     else if ((format & 0xce) == 0x8c)
     {
         /* 128 range */
-        dissect_channel_list_n_range(tvb, tree, curr_offset, len, 128);
+        dissect_channel_list_n_range(tvb, tree, pinfo, curr_offset, len, 128);
         curr_offset = curr_offset + len;
     }
     else if ((format & 0xce) == 0x8e)
@@ -1084,7 +1084,7 @@ dissect_arfcn_list_core(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
  * 128 127 124 123 122 (hf_gsm_a_rr_format_id)
  */
 static guint16
-dissect_arfcn_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+dissect_arfcn_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
     guint8  oct;
@@ -1096,7 +1096,7 @@ dissect_arfcn_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
     /* FORMAT-ID, Format Identifier (part of octet 3)*/
     proto_tree_add_item(tree, hf_gsm_a_rr_format_id, tvb, curr_offset, 1, FALSE);
 
-    curr_offset += dissect_arfcn_list_core(tvb, tree, offset, len, add_string, string_len, oct);
+    curr_offset += dissect_arfcn_list_core(tvb, tree, pinfo, offset, len, add_string, string_len, oct);
 
     return(curr_offset - offset);
 }
@@ -1106,7 +1106,7 @@ dissect_arfcn_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
  * 128 124 123 122 (hf_gsm_a_rr_format_id2)
  */
 static guint16
-dissect_arfcn_list2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+dissect_arfcn_list2(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
     guint8  oct;
@@ -1119,21 +1119,21 @@ dissect_arfcn_list2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
     /* FORMAT-ID, Format Identifier (part of octet 3)*/
     proto_tree_add_item(tree, hf_gsm_a_rr_format_id2, tvb, curr_offset, 1, FALSE);
 
-    curr_offset += dissect_arfcn_list_core(tvb, tree, offset, len, add_string, string_len, oct);
+    curr_offset += dissect_arfcn_list_core(tvb, tree, pinfo, offset, len, add_string, string_len, oct);
 
     return(curr_offset - offset);
 }
 
 guint16
-de_rr_cell_ch_dsc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_cell_ch_dsc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
-    return dissect_arfcn_list(tvb, tree, offset, 16, add_string, string_len);
+    return dissect_arfcn_list(tvb, tree, pinfo, offset, 16, add_string, string_len);
 }
 /*
  * [3] 10.5.2.1c BA List Pref
  */
 guint16
-de_rr_ba_list_pref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_ba_list_pref(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
     gint bit_offset;
@@ -1171,7 +1171,7 @@ de_rr_ba_list_pref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
  * [3] 10.5.2.1d UTRAN Frequency List
  */
 guint16
-de_rr_utran_freq_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_utran_freq_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
     gint bit_offset;
@@ -1215,7 +1215,7 @@ convert_n_to_q[32] = {   0,   9,  17,  25,  32, 39, 46, 53, 59, 65, 71, 77, 83,
                        106, 111, 116, 121, 126,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0};
 
 guint16
-de_rr_cell_select_indic(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_cell_select_indic(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree, *subtree2;
     proto_item *item, *item2;
@@ -1437,7 +1437,7 @@ de_rr_cell_select_indic(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
  * [3] 10.5.2.2 Cell Description
  */
 guint16
-de_rr_cell_dsc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_cell_dsc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -1496,7 +1496,7 @@ static const value_string gsm_a_rr_radio_link_timeout_vals[] = {
     {    0, NULL } };
 
 static guint16
-de_rr_cell_opt_bcch(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_cell_opt_bcch(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -1533,7 +1533,7 @@ static const value_string gsm_a_rr_dtx_sacch_vals[] = {
     {    0, NULL } };
 
 static guint16
-de_rr_cell_opt_sacch(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_cell_opt_sacch(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -1563,7 +1563,7 @@ de_rr_cell_opt_sacch(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
  * [3] 10.5.2.4 Cell Selection Parameters
  */
 static guint16
-de_rr_cell_sel_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_cell_sel_param(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -1597,7 +1597,7 @@ de_rr_cell_sel_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
  * [3] 10.5.2.5 Channel Description
  */
 guint16
-de_rr_ch_dsc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_ch_dsc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
     guint8     oct8,subchannel;
@@ -1690,7 +1690,7 @@ de_rr_ch_dsc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gch
  * [3] 10.5.2.5a Channel Description 2
  */
 static guint16
-de_rr_ch_dsc2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_ch_dsc2(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
     guint8     oct8,subchannel;
@@ -1804,7 +1804,7 @@ de_rr_ch_dsc2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc
  * [3] 10.5.2.5c Channel Description 3
  */
 static guint16
-de_rr_ch_dsc3(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_ch_dsc3(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
     guint8     oct8;
@@ -1883,7 +1883,7 @@ static const value_string gsm_a_rr_channel_mode_vals[] = {
 };
 
 guint16
-de_rr_ch_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_ch_mode(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
 
@@ -1912,7 +1912,7 @@ static const value_string gsm_a_rr_channel_mode2_vals[] = {
 };
 
 static guint16
-de_rr_ch_mode2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_ch_mode2(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
 
@@ -1928,7 +1928,7 @@ de_rr_ch_mode2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
  * [3] 10.5.2.7a UTRAN Classmark information element
  */
 static guint16
-de_rr_utran_cm(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_utran_cm(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
     tvbuff_t *rrc_irat_ho_info_tvb;
@@ -1937,9 +1937,8 @@ de_rr_utran_cm(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
     if (len)
     {
         rrc_irat_ho_info_tvb = tvb_new_subset(tvb, curr_offset, len, len);
-        if (rrc_irat_ho_info_handle && gsm_a_dtap_pinfo)
-                       /* gsm_a_dtap_pinfo MUST be set by any dissector calling de_rr_utran_cm */
-            call_dissector(rrc_irat_ho_info_handle, rrc_irat_ho_info_tvb, gsm_a_dtap_pinfo, tree);
+        if (rrc_irat_ho_info_handle)
+            call_dissector(rrc_irat_ho_info_handle, rrc_irat_ho_info_tvb, pinfo, tree);
     }
 
     curr_offset += len;
@@ -1984,7 +1983,7 @@ static const value_string gsm_a_rr_utran_cm_cng_msg_req_vals[] = {
     {   0, NULL }
 };
 guint16
-de_rr_cm_enq_mask(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_cm_enq_mask(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
 
@@ -2010,7 +2009,7 @@ static const value_string gsm_a_rr_channel_needed_vals[] = {
     {    0, NULL }
 };
 guint16
-de_rr_chnl_needed(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_chnl_needed(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -2054,7 +2053,7 @@ static const value_string gsm_a_rr_sc_vals[] = {
  * 4 3 2
  */
 guint16
-de_rr_cip_mode_set(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_cip_mode_set(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
     gint bit_offset;
@@ -2091,7 +2090,7 @@ static const value_string gsm_a_rr_cr_vals[] = {
 };
 
 static guint16
-de_rr_cip_mode_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_cip_mode_resp(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
     gint bit_offset;
@@ -2146,7 +2145,7 @@ static const value_string gsm_a_rr_cbq3_vals[] = {
 };
 
 static guint16
-de_rr_ctrl_ch_desc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_ctrl_ch_desc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -2207,7 +2206,7 @@ static const value_string gsm_a_rr_gsm_band_vals[] = {
 
 
 static guint16
-de_rr_dyn_arfcn_map(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_dyn_arfcn_map(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
     gint bit_offset;
@@ -2243,7 +2242,7 @@ de_rr_dyn_arfcn_map(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _
  * [3] 10.5.2.12 Frequency Channel Sequence
  */
 static guint16
-de_rr_freq_ch_seq(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_freq_ch_seq(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
     gint bit_offset, i;
@@ -2301,9 +2300,9 @@ static const value_string gsm_a_rr_freq_list_format_id_vals[] = {
 };
 
 static guint16
-de_rr_freq_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_freq_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
-    return dissect_arfcn_list(tvb, tree, offset, len, add_string, string_len);
+    return dissect_arfcn_list(tvb, tree, pinfo, offset, len, add_string, string_len);
 }
 /*
  * [3] 10.5.2.14 Frequency Short List
@@ -2316,9 +2315,9 @@ de_rr_freq_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
  */
 
  static guint16
-de_rr_freq_short_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_freq_short_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
  {
-     return dissect_arfcn_list(tvb, tree, offset, 9, add_string, string_len);
+     return dissect_arfcn_list(tvb, tree, pinfo, offset, 9, add_string, string_len);
  }
 
 /*
@@ -2331,9 +2330,9 @@ de_rr_freq_short_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
  * not contain a length indicator and that it shall not be encoded in bitmap 0 format.
  */
 static guint16
-de_rr_freq_short_list2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_freq_short_list2(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
-    return dissect_arfcn_list(tvb, tree, offset, 8, add_string, string_len);
+    return dissect_arfcn_list(tvb, tree, pinfo, offset, 8, add_string, string_len);
 }
 /*
  * [3] 10.5.2.14b Group Channel Description
@@ -2348,7 +2347,7 @@ static const true_false_string gsm_a_rr_gprs_resumption_ack_value  = {
 };
 
 static guint16
-de_rr_gprs_resumption(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_gprs_resumption(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -2504,7 +2503,7 @@ de_rr_rest_oct_gprs_power_control_parameters(tvbuff_t *tvb, proto_tree *tree, gi
 }
 
 static guint16
-de_rr_gprs_broadcast_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len , gchar *add_string _U_, int string_len _U_)
+de_rr_gprs_broadcast_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len , gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
     gint bit_offset;
@@ -2523,7 +2522,7 @@ de_rr_gprs_broadcast_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
  * [3] 10.5.2.15 Handover Reference
  */
 static guint16
-de_rr_ho_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_ho_ref(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -2550,7 +2549,7 @@ de_rr_ho_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gch
  */
 
 static guint16
-de_rr_ia_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_ia_rest_oct(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -2581,7 +2580,7 @@ de_rr_ia_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
  */
 
 static guint16
-de_rr_iar_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_iar_rest_oct(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -2608,7 +2607,7 @@ de_rr_iar_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
  * [3] 10.5.2.18 IAX Rest Octets
  */
 static guint16
-de_rr_iax_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_iax_rest_oct(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -2638,7 +2637,7 @@ de_rr_iax_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
  * [3] 10.5.2.19 L2 Pseudo Length
  */
 static guint16
-de_rr_l2_pseudo_len(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_l2_pseudo_len(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -2697,7 +2696,7 @@ static const value_string gsm_a_rr_ncell_vals [] = {
 };
 
 guint16
-de_rr_meas_res(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_meas_res(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -2765,7 +2764,7 @@ de_rr_meas_res(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
  * [3] 10.5.2.21 Mobile Allocation
  */
 static guint16
-de_rr_mob_all(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_mob_all(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
     proto_item *item;
@@ -2792,7 +2791,7 @@ de_rr_mob_all(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
  * [3] 10.5.2.21a Mobile Time Difference
  */
 static guint16
-de_rr_mob_time_diff(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_mob_time_diff(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
 
@@ -2925,7 +2924,7 @@ static const value_string gsm_a_rr_amr_hysteresis_vals[] = {
 };
 
 guint16
-de_rr_multirate_conf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_multirate_conf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
     guint8 oct;
@@ -2996,7 +2995,7 @@ de_rr_multirate_conf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
  * [3] 10.5.2.21b Multislot Allocation
  */
 static guint16
-de_rr_mult_all(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_mult_all(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
 
@@ -3021,7 +3020,7 @@ static const value_string gsm_a_rr_ext_ind_vals[] = {
     { 0, NULL }
 };
 static guint16
-de_rr_neigh_cell_desc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_neigh_cell_desc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
 
@@ -3030,14 +3029,14 @@ de_rr_neigh_cell_desc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
     proto_tree_add_item(tree, hf_gsm_a_rr_ext_ind, tvb, curr_offset, 1, FALSE);
     proto_tree_add_bits_item(tree, hf_gsm_a_rr_ba_ind, tvb, (curr_offset<<3)+3, 1, FALSE);
 
-    return dissect_arfcn_list(tvb, tree, offset, 16, add_string, string_len);
+    return dissect_arfcn_list(tvb, tree, pinfo, offset, 16, add_string, string_len);
 }
 
  /*
  * [3] 10.5.2.22a Neighbour Cell Description 2
  */
 static guint16
-de_rr_neigh_cell_desc2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_neigh_cell_desc2(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
 
@@ -3046,7 +3045,7 @@ de_rr_neigh_cell_desc2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
     proto_tree_add_bits_item(tree, hf_gsm_a_rr_multiband_reporting, tvb, (curr_offset<<3)+1, 2, FALSE);
     proto_tree_add_bits_item(tree, hf_gsm_a_rr_ba_ind, tvb, (curr_offset<<3)+3, 1, FALSE);
 
-    return dissect_arfcn_list2(tvb, tree, offset, 16, add_string, string_len);
+    return dissect_arfcn_list2(tvb, tree, pinfo, offset, 16, add_string, string_len);
 }
 
 /*
@@ -3058,7 +3057,7 @@ de_rr_neigh_cell_desc2(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint le
  * [3] 10.5.2.23 P1 Rest Octets
  */
 static guint16
-de_rr_p1_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_p1_rest_oct(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item, *item2;
@@ -3157,7 +3156,7 @@ de_rr_p1_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
  * [3] 10.5.2.24 P2 Rest Octets
  */
 static guint16
-de_rr_p2_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_p2_rest_oct(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 
 {
     proto_tree *subtree;
@@ -3231,7 +3230,7 @@ de_rr_p2_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
  * [3] 10.5.2.25 P3 Rest Octets
  */
 static guint16
-de_rr_p3_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_p3_rest_oct(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item, *item2;
@@ -3289,7 +3288,7 @@ de_rr_p3_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
  * [3] 10.5.2.25a Packet Channel Description C V 3
  */
 static guint16
-de_rr_packet_ch_desc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_packet_ch_desc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
     guint8     oct8;
@@ -3364,7 +3363,7 @@ static const value_string gsm_a_rr_dedicated_mode_or_tbf_vals[] = {
     { 0, NULL }
 };
 static guint16
-de_rr_ded_mod_or_tbf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_ded_mod_or_tbf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -3401,7 +3400,7 @@ static const value_string gsm_a_rr_page_mode_vals[] = {
     { 0, NULL }
 };
 static guint16
-de_rr_page_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_page_mode(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -3432,7 +3431,7 @@ de_rr_page_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * [3] 10.5.2.27 NCC Permitted
  */
 static guint16
-de_rr_ncc_perm(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_ncc_perm(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -3503,7 +3502,7 @@ static const true_false_string gsm_a_rr_pow_cmd_fpcepc_value  = {
  */
 
 static guint16
-de_rr_pow_cmd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_pow_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -3535,7 +3534,7 @@ de_rr_pow_cmd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc
  * [3] 10.5.2.28a Power Command and access type
  */
 static guint16
-de_rr_pow_cmd_and_acc_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_pow_cmd_and_acc_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -3606,7 +3605,7 @@ static const value_string gsm_a_rr_re_vals[] = {
 };
 
 static guint16
-de_rr_rach_ctrl_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_rach_ctrl_param(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -3654,7 +3653,7 @@ static guint16 reduced_frame_number(guint16 fn)
 }
 
 static guint16
-de_rr_req_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_req_ref(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -3689,7 +3688,7 @@ de_rr_req_ref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc
  * [3] 10.5.2.31
  */
 guint16
-de_rr_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
 
@@ -3742,7 +3741,7 @@ static const value_string gsm_a_rr_nch_position_vals[] = {
 };
 
 static guint16
-de_rr_si1_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_si1_rest_oct(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -3872,7 +3871,7 @@ static const value_string gsm_a_rr_fdd_rscpmin_vals[] = {
 };
 
 static guint16
-de_rr_si2ter_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_si2ter_rest_oct(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree, *subtree2;
     proto_item *item, *item2;
@@ -5697,7 +5696,7 @@ de_rr_3g_supplementary_param_desc_mi(tvbuff_t *tvb, proto_tree *tree, gint bit_o
 }
 
 static guint16
-de_rr_si2quater_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_si2quater_rest_oct(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree, *subtree2, *subtree3;
     proto_item *item, *item2, *item3;
@@ -6245,7 +6244,7 @@ static const true_false_string gsm_a_rr_si13alt_position_value = {
 };
 
 static guint16
-de_rr_si3_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_si3_rest_oct(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -6350,7 +6349,7 @@ static const value_string gsm_a_rr_lsa_offset_vals[] = {
 };
 
 static guint16
-de_rr_si4_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_si4_rest_oct(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree, *subtree2, *subtree3;
     proto_item *item, *item2, *item3;
@@ -6529,7 +6528,7 @@ static const true_false_string gsm_a_rr_mnci_support_value = {
 };
 
 static guint16
-de_rr_si6_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_si6_rest_oct(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree, *subtree2;
     proto_item *item, *item2;
@@ -7049,7 +7048,7 @@ static const value_string gsm_a_rr_si2n_support_vals[] = {
 };
 
 static guint16
-de_rr_si13_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_si13_rest_oct(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree, *subtree2;
     proto_item *item, *item2;
@@ -7185,7 +7184,7 @@ de_rr_si13_rest_oct(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len,
  * [3] 10.5.2.38 Starting Time
  */
 static guint16
-de_rr_starting_time(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_starting_time(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_item *item;
     guint32    curr_offset;
@@ -7231,7 +7230,7 @@ static const true_false_string gsm_a_rr_sync_ind_nci_value  = {
     "Out of range timing advance is ignored"
 };
 static guint16
-de_rr_sync_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_sync_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
 
@@ -7253,7 +7252,7 @@ de_rr_sync_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
  * [3] 10.5.2.40 Timing Advance
  */
 static guint16
-de_rr_timing_adv(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_timing_adv(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
 
@@ -7269,7 +7268,7 @@ de_rr_timing_adv(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * [3] 10.5.2.41 Time Difference
  */
 static guint16
-de_rr_time_diff(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_time_diff(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
 
@@ -7285,7 +7284,7 @@ de_rr_time_diff(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * The TLLI is encoded as a binary number with a length of 4 octets. TLLI is defined in 3GPP TS 23.003
  */
 guint16
-de_rr_tlli(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_tlli(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset, tlli;
 
@@ -7304,7 +7303,7 @@ de_rr_tlli(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar
  * [3] 10.5.2.42 TMSI/P-TMSI
  */
 guint16
-de_rr_tmsi_ptmsi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_tmsi_ptmsi(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -7339,7 +7338,7 @@ static const value_string gsm_a_rr_target_mode_vals[] _U_ = {
     { 0,       NULL }
 };
 static guint16
-de_rr_vgcs_tar_mode_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_vgcs_tar_mode_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
 
@@ -7356,7 +7355,7 @@ de_rr_vgcs_tar_mode_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint l
  * [3] 10.5.2.42b      VGCS Ciphering Parameters
  */
 static guint16
-de_rr_vgcs_cip_par(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_vgcs_cip_par(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
 
@@ -7372,7 +7371,7 @@ de_rr_vgcs_cip_par(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U
  * [3] 10.5.2.43 Wait Indication
  */
 static guint16
-de_rr_wait_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_wait_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
 
@@ -7393,7 +7392,7 @@ de_rr_wait_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
  * [3] 10.5.2.45 Extended Measurement Results
  */
 static guint16
-de_rr_ext_meas_result(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_ext_meas_result(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
     gint bit_offset, i;
@@ -7423,7 +7422,7 @@ de_rr_ext_meas_result(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
  * [3] 10.5.2.46 Extended Measurement Frequency List
  */
 static guint16
-de_rr_ext_meas_freq_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_ext_meas_freq_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
    guint32 curr_offset;
 
@@ -7431,7 +7430,7 @@ de_rr_ext_meas_freq_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
 
    proto_tree_add_bits_item(tree, hf_gsm_a_rr_seq_code, tvb,(curr_offset<<3)+3, 1, FALSE);
 
-   return dissect_arfcn_list(tvb, tree, offset, 16, add_string, string_len);
+   return dissect_arfcn_list(tvb, tree, pinfo, offset, 16, add_string, string_len);
 }
 
 /*
@@ -7449,7 +7448,7 @@ static const value_string gsm_a_rr_suspension_cause_vals[] = {
     { 0, NULL }
 };
 guint16
-de_rr_sus_cau(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_sus_cau(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
 
@@ -7469,7 +7468,7 @@ static const value_string gsm_a_rr_apdu_id_vals[] = {
     { 0, NULL },
 };
 static guint16
-de_rr_apdu_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_apdu_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree_add_item(tree, hf_gsm_a_rr_apdu_id, tvb, offset, 1, FALSE);
 
@@ -7485,7 +7484,7 @@ static const value_string gsm_a_rr_apdu_flags_vals[] = {
     { 0, NULL },
 };
 static guint16
-de_rr_apdu_flags(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_apdu_flags(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree_add_item(tree, hf_gsm_a_rr_apdu_flags, tvb, offset, 1, FALSE);
 
@@ -7496,16 +7495,14 @@ de_rr_apdu_flags(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * [3] 10.5.2.50 APDU Data
  */
 static guint16
-de_rr_apdu_data(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_apdu_data(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     tvbuff_t *sub_tvb;
 
     sub_tvb = tvb_new_subset(tvb, offset, len, len);
 
-    /* gsm_a_dtap_pinfo MUST be set by any dissector calling de_rr_apdu_data      */
-    /* XXX: test added to match de_rr_ho_to_utran_cmd & etc (and to fix a crash)  */
-    if (rrlp_dissector && gsm_a_dtap_pinfo)
-        call_dissector(rrlp_dissector, sub_tvb, gsm_a_dtap_pinfo, tree);
+    if (rrlp_dissector)
+        call_dissector(rrlp_dissector, sub_tvb,pinfo, tree);
 
     return len;
 }
@@ -7514,7 +7511,7 @@ de_rr_apdu_data(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
  * [3] 10.5.2.51 Handover To UTRAN Command
  */
 static guint16
-de_rr_ho_to_utran_cmd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_rr_ho_to_utran_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
     tvbuff_t *rrc_irat_ho_to_utran_cmd_tvb;
@@ -7523,9 +7520,8 @@ de_rr_ho_to_utran_cmd(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
     if (len)
     {
         rrc_irat_ho_to_utran_cmd_tvb = tvb_new_subset(tvb, curr_offset, len, len);
-        if (rrc_irat_ho_to_utran_cmd_handle && gsm_a_dtap_pinfo)
-            /* gsm_a_dtap_pinfo MUST be set by any dissector calling de_rr_ho_to_utran_cmd */
-            call_dissector(rrc_irat_ho_to_utran_cmd_handle, rrc_irat_ho_to_utran_cmd_tvb, gsm_a_dtap_pinfo, tree);
+        if (rrc_irat_ho_to_utran_cmd_handle)
+            call_dissector(rrc_irat_ho_to_utran_cmd_handle, rrc_irat_ho_to_utran_cmd_tvb, pinfo, tree);
     }
 
     curr_offset += len;
@@ -7552,7 +7548,7 @@ static const true_false_string gsm_a_rr_MBMS_broadcast_value  = {
     "mobile station does not require notification of broadcast MBMS services"
 };
 static guint16
-de_rr_serv_sup(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_serv_sup(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
 
@@ -7588,7 +7584,7 @@ static const true_false_string gsm_a_rr_last_segment_value  = {
     "mobile station shall not perform Service Information Sending procedure on new cell."
 };
 static guint16
-de_rr_ded_serv_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_ded_serv_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
 
@@ -7610,7 +7606,7 @@ static const true_false_string gsm_a_rr_carrier_ind_value  = {
 };
 
 static guint16
-de_rr_carrier_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rr_carrier_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     proto_tree *subtree;
     proto_item *item;
@@ -7630,7 +7626,7 @@ de_rr_carrier_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
     return(curr_offset - offset);
 }
 
-guint16 (*rr_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len) = {
+guint16 (*rr_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len) = {
     /* Radio Resource Management  Information Elements 10.5.2, most are from 10.5.1 */
 
     de_rr_ba_range,                            /* [3]  10.5.2.1a       BA Range */
index d0841f8702980a096d942c8472bceeb11ad38915..4fe5d36179a871f971fa41209b4ffb51278dde52 100644 (file)
@@ -109,20 +109,20 @@ const value_string gsm_bsslap_elem_strings[] = {
        {  BSSLAP_PARAM_RRLP_IE,                                "RRLP IE" },
        {  BSSLAP_PARAM_CELL_IDENTITY_LIST,             "Cell Identity List" },
        {  BSSLAP_PARAM_ENHANCED_MEASUREMENT_REPORT,    "Enhanced Measurement Report" },
-       {  BSSLAP_PARAM_LOCATION_AREA_CODE,             "Location Area Code" },
-       {  BSSLAP_PARAM_FREQUENCY_LIST,                 "Frequency List" },
-       {  BSSLAP_PARAM_MS_POWER,                               "MS Power" },
-       {  BSSLAP_PARAM_DELTA_TIMER,                    "Delta Timer" },
-       {  BSSLAP_PARAM_SERVING_CELL_IDENTIFIER,        "Serving Cell Identifier" },
-       {  BSSLAP_PARAM_ENCRYPTION_KEY,                 "Encryption Key (Kc)" },
-       {  BSSLAP_PARAM_CIPHER_MODE_SETTING,    "Cipher Mode Setting" },
-       {  BSSLAP_PARAM_CHANNEL_MODE,                   "Channel Mode" },
-       {  BSSLAP_PARAM_MULTIRATE_CONFIGURATION,        "MultiRate Configuration" },
-       {  BSSLAP_PARAM_POLLING_REPETITION,             "Polling Repetition" },
-       {  BSSLAP_PARAM_PACKET_CHANNEL_DESCRIPTION,     "Packet Channel Description" },
-       {  BSSLAP_PARAM_TLLI,                                   "TLLI" },
-       {  BSSLAP_PARAM_TFI,                                    "TFI" },
-       {  BSSLAP_PARAM_STARTING_TIME,                  "Starting Time" },
+       {  BSSLAP_PARAM_LOCATION_AREA_CODE,                             "Location Area Code" },
+       {  BSSLAP_PARAM_FREQUENCY_LIST,                                 "Frequency List" },
+       {  BSSLAP_PARAM_MS_POWER,                                               "MS Power" },
+       {  BSSLAP_PARAM_DELTA_TIMER,                                    "Delta Timer" },
+       {  BSSLAP_PARAM_SERVING_CELL_IDENTIFIER,                "Serving Cell Identifier" },
+       {  BSSLAP_PARAM_ENCRYPTION_KEY,                                 "Encryption Key (Kc)" },
+       {  BSSLAP_PARAM_CIPHER_MODE_SETTING,                    "Cipher Mode Setting" },
+       {  BSSLAP_PARAM_CHANNEL_MODE,                                   "Channel Mode" },
+       {  BSSLAP_PARAM_MULTIRATE_CONFIGURATION,                "MultiRate Configuration" },
+       {  BSSLAP_PARAM_POLLING_REPETITION,                             "Polling Repetition" },
+       {  BSSLAP_PARAM_PACKET_CHANNEL_DESCRIPTION,             "Packet Channel Description" },
+       {  BSSLAP_PARAM_TLLI,                                                   "TLLI" },
+       {  BSSLAP_PARAM_TFI,                                                    "TFI" },
+       {  BSSLAP_PARAM_STARTING_TIME,                                  "Starting Time" },
        { 0,            NULL },
 };
 
@@ -169,7 +169,7 @@ gint ett_gsm_bsslap_elem[NUM_GSM_BSSLAP_ELEM];
  * 5.2 Timing Advance IE
  */
 static guint16
-de_ta(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_ta(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -184,7 +184,7 @@ de_ta(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add
  */
 #if 0
 static guint16
-de_meas_rep(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_meas_rep(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -213,7 +213,7 @@ static const value_string gsm_bsslap_cause_vals[] = {
 };
 
 static guint16
-de_bsslap_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bsslap_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -231,7 +231,7 @@ static const true_false_string gsm_bsslap_rrlp_flg_vals = {
        "Position Command (SMLC to BSC) or final response (BSC to SMLC)"
 };
 static guint16
-de_rrlp_flg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rrlp_flg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -242,7 +242,7 @@ de_rrlp_flg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gcha
        return(curr_offset - offset);
 }
 static guint16
-de_rrlp_ie(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_rrlp_ie(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
    guint32 curr_offset;
    tvbuff_t *rrlp_tvb;
@@ -255,7 +255,7 @@ de_rrlp_ie(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar
    {
       rrlp_tvb = tvb_new_subset(tvb, curr_offset, length, length);
       if (bsslap_rrlp_handle)
-         call_dissector(bsslap_rrlp_handle, rrlp_tvb, gsm_a_dtap_pinfo, tree);
+         call_dissector(bsslap_rrlp_handle, rrlp_tvb, pinfo, tree);
    }
 
    curr_offset += length;
@@ -278,7 +278,7 @@ static const value_string gsm_a_bsslap_cell_id_disc_vals[] = {
 
 
 static guint16
-de_cell_id_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_cell_id_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint8  consumed;
@@ -305,11 +305,11 @@ de_cell_id_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
                switch(cell_id_disc){
                        case 0:
                                /* The whole Cell Global Identification, CGI, is used to identify the 2G cells. */
-                               consumed+= be_cell_id_aux(tvb, subtree, curr_offset, len, NULL, 0, 0);
+                               consumed+= be_cell_id_aux(tvb, subtree, pinfo, curr_offset, len, NULL, 0, 0);
                                break;
                        case 1:
                                /* Location Area Code, LAC, and Cell Identify, CI, are used to identify the 2G cells. */
-                               consumed+= be_cell_id_aux(tvb, subtree, curr_offset, len, NULL, 0, 1);
+                               consumed+= be_cell_id_aux(tvb, subtree, pinfo, curr_offset, len, NULL, 0, 1);
                                break;
                        case 2:
                                /* 3G Cell identification container 1 */
@@ -338,7 +338,7 @@ de_cell_id_list(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
  * "RR short PD", "Message type" and "Short layer 2 header")...
  */
 static guint16
-de_enh_meas_rep(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_enh_meas_rep(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -352,7 +352,7 @@ de_enh_meas_rep(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gcha
  * 5.19 Location Area Code IE
  */
 static guint16
-de_lac(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_lac(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -366,7 +366,7 @@ de_lac(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *ad
  * 5.21 MS Power IE
  */
 static guint16
-de_ms_pow(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_ms_pow(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -381,7 +381,7 @@ de_ms_pow(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar
  * 5.22 Delta Timer IE
  */
 static guint16
-de_delta_time(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_delta_time(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -399,7 +399,7 @@ de_delta_time(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc
  * 5.24 Encryption Key
  */
 static guint16
-de_blap_enc_key(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_blap_enc_key(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -425,7 +425,7 @@ de_blap_enc_key(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * 5.28 Polling Repetition IE
  */
 static guint16
-de_poll_rep(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_poll_rep(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -442,7 +442,7 @@ de_poll_rep(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gcha
  * padding bits (binary 0) as required to achieve 4 complete octets
  */
 static guint16
-de_pkt_ch_desc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_pkt_ch_desc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -461,7 +461,7 @@ de_pkt_ch_desc(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
  * This field is encoded as a binary number. Range 0 to 31
  */
 static guint16
-de_tfi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_tfi(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -520,7 +520,7 @@ bsslap_elem_idx_t;
 */
 elem_fcn bsslap_elem_fcn[];
 
-guint16 (*bsslap_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len) = {
+guint16 (*bsslap_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len) = {
        /* BSS LAP Elements 5 */
        NULL,   /* Reserved */
        de_ta,  /* Timing Advance */
@@ -561,7 +561,7 @@ static gint ett_gsm_bsslap_msg[NUM_GSM_BSSLAP_MSG];
 
 /* 4.2.2 TA Response ETSI TS 148 071 V7.2.0 (2007-06) */
 static void
-dissect_gsm_bsslap_ta_res(tvbuff_t *tvb, proto_tree *tree, int offset)
+dissect_gsm_bsslap_ta_res(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, int offset)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -590,7 +590,7 @@ dissect_gsm_bsslap_ta_res(tvbuff_t *tvb, proto_tree *tree, int offset)
 /* 4.2.4 (void)   ETSI TS 148 071 V7.2.0 (2007-06) */
 /* 4.2.5 Reject   ETSI TS 148 071 V7.2.0 (2007-06) */
 static void
-dissect_gsm_bsslap_reject(tvbuff_t *tvb, proto_tree *tree, int offset)
+dissect_gsm_bsslap_reject(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, int offset)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -607,7 +607,7 @@ dissect_gsm_bsslap_reject(tvbuff_t *tvb, proto_tree *tree, int offset)
 
 /* 4.2.6 Reset   ETSI TS 148 071 V7.2.0 (2007-06) */
 static void
-dissect_gsm_bsslap_reset(tvbuff_t *tvb, proto_tree *tree, int offset)
+dissect_gsm_bsslap_reset(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, int offset)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -655,7 +655,7 @@ dissect_gsm_bsslap_reset(tvbuff_t *tvb, proto_tree *tree, int offset)
 
 /* 4.2.7 Abort  ETSI TS 148 071 V7.2.0 (2007-06) */
 static void
-dissect_gsm_bsslap_abort(tvbuff_t *tvb, proto_tree *tree, int offset)
+dissect_gsm_bsslap_abort(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, int offset)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -671,7 +671,7 @@ dissect_gsm_bsslap_abort(tvbuff_t *tvb, proto_tree *tree, int offset)
 }
 /* 4.2.8 TA Layer3  ETSI TS 148 071 V7.2.0 (2007-06) */
 static void
-dissect_gsm_bsslap_ta_layer3(tvbuff_t *tvb, proto_tree *tree, int offset)
+dissect_gsm_bsslap_ta_layer3(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, int offset)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -692,7 +692,7 @@ dissect_gsm_bsslap_ta_layer3(tvbuff_t *tvb, proto_tree *tree, int offset)
 }
 /* 4.2.9 MS Position Command  ETSI TS 148 071 V7.2.0 (2007-06) */
 static void
-dissect_gsm_bsslap_ms_pos_cmd(tvbuff_t *tvb, proto_tree *tree, int offset)
+dissect_gsm_bsslap_ms_pos_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, int offset)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -709,7 +709,7 @@ dissect_gsm_bsslap_ms_pos_cmd(tvbuff_t *tvb, proto_tree *tree, int offset)
 }
 /* 4.2.10 MS Position Response   ETSI TS 148 071 V7.2.0 (2007-06) */
 static void
-dissect_gsm_bsslap_ms_pos_res(tvbuff_t *tvb, proto_tree *tree, int offset)
+dissect_gsm_bsslap_ms_pos_res(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, int offset)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -734,7 +734,7 @@ dissect_gsm_bsslap_ms_pos_res(tvbuff_t *tvb, proto_tree *tree, int offset)
 }
 /* 4.2.11 U-TDOA Request   ETSI TS 148 071 V7.2.0 (2007-06) */
 static void
-dissect_gsm_bsslap_u_tdoa_req(tvbuff_t *tvb, proto_tree *tree, int offset)
+dissect_gsm_bsslap_u_tdoa_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, int offset)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -752,7 +752,7 @@ dissect_gsm_bsslap_u_tdoa_req(tvbuff_t *tvb, proto_tree *tree, int offset)
 }
 /* 4.2.12 U-TDOA Response  ETSI TS 148 071 V7.2.0 (2007-06) */
 static void
-dissect_gsm_bsslap_u_tdoa_res(tvbuff_t *tvb, proto_tree *tree, int offset)
+dissect_gsm_bsslap_u_tdoa_res(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, int offset)
 {
        guint32 curr_offset;
        guint32 consumed;
@@ -803,7 +803,6 @@ dissect_gsm_bsslap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        int     offset=0;
        guint8 octet;
 
-       gsm_a_dtap_pinfo = pinfo;
 /* Make entries in Protocol column and Info column on summary display */
        col_append_str(pinfo->cinfo, COL_PROTOCOL, "/BSSLAP");
        if (tree) {
@@ -820,31 +819,31 @@ dissect_gsm_bsslap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                        /* Only message type IE */
                        break;
                case BSSLAP_TA_RESPONSE:
-                       dissect_gsm_bsslap_ta_res(tvb, sub_tree, offset);
+                       dissect_gsm_bsslap_ta_res(tvb, sub_tree, pinfo, offset);
                        break;
                case BSSLAP_REJECT:
-                       dissect_gsm_bsslap_reject(tvb, sub_tree, offset);
+                       dissect_gsm_bsslap_reject(tvb, sub_tree, pinfo, offset);
                        break;
                case BSSLAP_RESET:
-                       dissect_gsm_bsslap_reset(tvb, sub_tree, offset);
+                       dissect_gsm_bsslap_reset(tvb, sub_tree, pinfo, offset);
                        break;
                case BSSLAP_ABORT:
-                       dissect_gsm_bsslap_abort(tvb, sub_tree, offset);
+                       dissect_gsm_bsslap_abort(tvb, sub_tree, pinfo, offset);
                        break;
                case BSSLAP_TA_LAYER3:
-                       dissect_gsm_bsslap_ta_layer3(tvb, sub_tree, offset);
+                       dissect_gsm_bsslap_ta_layer3(tvb, sub_tree, pinfo, offset);
                        break;
                case BSSLAP_MS_POS_CMD:
-                       dissect_gsm_bsslap_ms_pos_cmd(tvb, sub_tree, offset);
+                       dissect_gsm_bsslap_ms_pos_cmd(tvb, sub_tree, pinfo, offset);
                        break;
                case BSSLAP_MS_POS_RES:
-                       dissect_gsm_bsslap_ms_pos_res(tvb, sub_tree, offset);
+                       dissect_gsm_bsslap_ms_pos_res(tvb, sub_tree, pinfo, offset);
                        break;
                case BSSLAP_U_TDOA_REQ:
-                       dissect_gsm_bsslap_u_tdoa_req(tvb, sub_tree, offset);
+                       dissect_gsm_bsslap_u_tdoa_req(tvb, sub_tree, pinfo, offset);
                        break;
                case BSSLAP_U_TDOA_RES:
-                       dissect_gsm_bsslap_u_tdoa_res(tvb, sub_tree, offset);
+                       dissect_gsm_bsslap_u_tdoa_res(tvb, sub_tree, pinfo, offset);
                        break;
                default:
                        break;
index 763a8ad8c420ee770a5f972e7318729ddb3e9ac1..b234e4175e04f282e93e20aeeb8d2c30656df2fd 100644 (file)
@@ -234,7 +234,7 @@ gint ett_gsm_bssmap_le_elem[NUM_GSM_BSSMAP_LE_ELEM];
  */
 
 static guint16
-de_bmaple_apdu(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_bmaple_apdu(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint8  apdu_protocol_id;
@@ -306,7 +306,7 @@ de_bmaple_apdu(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar
  * 10.8 Deciphering Keys
  */
 static guint16
-de_bmaple_decihp_keys(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_bmaple_decihp_keys(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        gint bit_offset;
 
@@ -340,7 +340,7 @@ de_bmaple_decihp_keys(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
  * 10.10 Requested GPS Assistance Data
  */
 static guint16
-de_bmaple_req_gps_ass_data(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_bmaple_req_gps_ass_data(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -425,7 +425,7 @@ static const value_string bssmap_le_position_method_failure_diagnostic_vals[] =
        { 0, NULL}
 };
 static guint16
-de_bmaple_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_bmaple_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -467,7 +467,7 @@ static const value_string bssmap_le_client_subtype[] = {
 };
 
 static guint16
-de_bmaple_client(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_bmaple_client(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint8 bitCount;
@@ -494,7 +494,7 @@ de_bmaple_client(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * 10.16 LCS QoS
  */
 static guint16
-de_bmaple_lcs_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_bmaple_lcs_qos(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint64 verticalCoordIndicator, velocityRequested, horizontalAccuracyIndicator, verticalAccuracyIndicator;
        guint16 bitCount;
@@ -560,7 +560,7 @@ de_bmaple_lcs_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
  * 10.20 Positioning Data
  */
 static guint16
-de_bmaple_pos_dta(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_bmaple_pos_dta(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        tvbuff_t *data_tvb;
        guint32 curr_offset;
@@ -595,7 +595,7 @@ de_bmaple_pos_dta(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
  */
 /* Dissector for the LCS Capability element */
 static guint16
-be_lcs_capability(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+be_lcs_capability(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        /* Extract the LCS Capability element and add to protocol tree */
        proto_tree_add_text(tree, tvb, offset, len, "Not decoded yet");
@@ -613,7 +613,7 @@ be_lcs_capability(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
  */
 /* Dissector for the Packet Measurement Report element */
 static guint16
-be_packet_meas_rep(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+be_packet_meas_rep(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        /* Extract the Packet Measurement Report element and add to protocol tree */
        proto_tree_add_text(tree, tvb, offset, len, "Not decoded yet");
@@ -628,7 +628,7 @@ be_packet_meas_rep(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, g
  */
 /* Dissector for the Measured Cell Identity List element */
 static guint16
-be_measured_cell_identity(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+be_measured_cell_identity(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        /* Extract the Measured Cell Identity List element and add to protocol tree */
        proto_tree_add_text(tree, tvb, offset, len, "Not decoded yet");
@@ -709,7 +709,7 @@ bssmap_le_elem_idx_t;
 */
 
 
-guint16 (*bssmap_le_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len) = {
+guint16 (*bssmap_le_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len) = {
        /* NOTE: The null types below are defined elsewhere. i.e in packet-gsm_a_bssmap.c */
        de_bmaple_lcs_qos,                              /* 10.16 LCS QoS */
        NULL,                                                   /* LCS Priority */
index 08c374993f68c1be6f5ebb0bdeba1791bd53500c..bd979a1ccaa594724f0defe6eaf8729519ed5957 100644 (file)
@@ -3129,7 +3129,7 @@ if (!actx->value_ptr)
                 switch(octet){
                 case 4:
                        /* Dissect the data part */                     
-                       de_bearer_cap(actx->value_ptr, subtree, 2, length, NULL, 0);
+                       de_bearer_cap(actx->value_ptr, subtree, actx->pinfo, 2, length, NULL, 0);
                        /* TODO: There may be more than one IE */
                        break;
                 default:
@@ -3464,7 +3464,7 @@ dissect_gsm_map_GlobalCellId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
                 return offset; 
 
     subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_GlobalCellId); 
-       be_cell_id_aux(parameter_tvb, subtree, 0, tvb_length_remaining(tvb,0), NULL, 0, 0);
+       be_cell_id_aux(parameter_tvb, subtree, actx->pinfo, 0, tvb_length_remaining(tvb,0), NULL, 0, 0);
 
 
 
@@ -7837,7 +7837,7 @@ dissect_gsm_map_ms_RadioResourceInformation(gboolean implicit_tag _U_, tvbuff_t
                 return offset; 
 
     subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_RadioResourceInformation); 
-       be_chan_type(parameter_tvb, subtree, 0, tvb_length_remaining(tvb,0), NULL, 0);
+       be_chan_type(parameter_tvb, subtree, actx->pinfo, 0, tvb_length_remaining(tvb,0), NULL, 0);
 
 
 
@@ -9945,7 +9945,7 @@ dissect_gsm_map_ms_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
 
         if (!parameter_tvb)
                return offset;
-       de_sm_qos(parameter_tvb, tree, 0, 3, NULL,0);
+       de_sm_qos(parameter_tvb, tree, actx->pinfo, 0, 3, NULL,0);
 
 
 
@@ -11565,7 +11565,7 @@ dissect_gsm_map_ms_RAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
         if (!parameter_tvb)
                return offset;
        subtree = proto_item_add_subtree(actx->created_item, ett_gsm_map_RAIdentity);
-       de_gmm_rai(parameter_tvb, subtree, 0, 3, NULL,0);
+       de_gmm_rai(parameter_tvb, subtree, actx->pinfo, 0, 3, NULL,0);
 
 
 
@@ -15369,7 +15369,7 @@ if (!actx->value_ptr)
                 switch(octet){
                 case 4:
                        /* Dissect the data part */                     
-                       de_bearer_cap(actx->value_ptr, subtree, 2, length, NULL, 0);
+                       de_bearer_cap(actx->value_ptr, subtree, actx->pinfo, 2, length, NULL, 0);
                        /* TODO: There may be more than one IE */
                        break;
                 default:
@@ -18587,7 +18587,7 @@ void proto_reg_handoff_gsm_map(void) {
     static range_t *ssn_range;
 
     if (!map_prefs_initialized) {
-       map_prefs_initialized = TRUE;
+        map_prefs_initialized = TRUE;
         data_handle = find_dissector("data");
         ranap_handle = find_dissector("ranap");
         dtap_handle = find_dissector("gsm_a_dtap");
index f053e30fe69813d382d7b3d73058ab893177267e..188860b6905f711fbb5d51b74e4c9377ba8d711e 100644 (file)
@@ -3216,7 +3216,7 @@ static int decode_gtp_recovery(tvbuff_t * tvb, int offset, packet_info * pinfo _
  */
 
 
-static const gchar *dissect_radius_selection_mode(proto_tree * tree, tvbuff_t * tvb)
+static const gchar *dissect_radius_selection_mode(proto_tree * tree, tvbuff_t * tvb, packet_info* pinfo _U_)
 {
     guint8 sel_mode;
 
@@ -3745,7 +3745,7 @@ static int decode_quintuplet(tvbuff_t * tvb, int offset, proto_tree * tree, guin
  * TODO:        - check if for quintuplets first 2 bytes are length, according to AuthQuint
  *              - finish displaying last 3 parameters
  */
-static int decode_gtp_mm_cntxt(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
+static int decode_gtp_mm_cntxt(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tree)
 {
 
     guint16 length, quint_len, con_len;
@@ -3832,7 +3832,7 @@ static int decode_gtp_mm_cntxt(tvbuff_t * tvb, int offset, packet_info * pinfo _
 /*
  * 3GPP TS 24.008 10.5.5.6 ( see packet-gsm_a.c )
  */
-    de_gmm_drx_param(tvb, ext_tree_mm, offset, 2, NULL, 0);
+    de_gmm_drx_param(tvb, ext_tree_mm, pinfo, offset, 2, NULL, 0);
     offset = offset + 2;
 
     len = tvb_get_guint8(tvb, offset);
@@ -3846,7 +3846,7 @@ static int decode_gtp_mm_cntxt(tvbuff_t * tvb, int offset, packet_info * pinfo _
 /*
  * GPP TS 24.008 10.5.5.12 ( see packet-gsm_a.c )
  */
-    de_gmm_ms_net_cap(tvb, tf_tree, offset, len, NULL, 0);
+    de_gmm_ms_net_cap(tvb, tf_tree, pinfo, offset, len, NULL, 0);
     offset = offset + len;
 
 /* 3GPP TS 29.060 version 9.4.0 Release 9
@@ -3882,7 +3882,7 @@ static int decode_gtp_mm_cntxt(tvbuff_t * tvb, int offset, packet_info * pinfo _
             len = tvb_get_guint8(tvb,offset);
             proto_tree_add_text(ext_tree_mm, tvb, offset, 1, "Length %u",len);
             offset++;
-            de_mid(tvb, ext_tree_mm, offset, len, NULL, 0);
+            de_mid(tvb, ext_tree_mm, pinfo, offset, len, NULL, 0);
         }else{
             proto_tree_add_text(ext_tree_mm, tvb, offset, 1, "Unknown IEI %u - Later spec than TS 29.060 9.4.0 used?",iei);
         }
@@ -4282,7 +4282,7 @@ dissect_diameter_3gpp_qosprofile(tvbuff_t *tvb _U_, packet_info *pinfo _U_, prot
     return tvb_length(tvb);
 }
 
-static const gchar *dissect_radius_qos_umts(proto_tree * tree, tvbuff_t * tvb)
+static const gchar *dissect_radius_qos_umts(proto_tree * tree, tvbuff_t * tvb, packet_info* pinfo _U_)
 {
     decode_qos_umts(tvb, 0, tree, "UMTS GTP QoS Profile", 3);
     return tvb_get_ephemeral_string(tvb, 0, tvb_length(tvb));
@@ -5252,7 +5252,7 @@ static int decode_gtp_rat_type(tvbuff_t * tvb, int offset, packet_info * pinfo _
  * Type = 152 (Decimal)
  */
 
-static const gchar *dissect_radius_user_loc(proto_tree * tree, tvbuff_t * tvb)
+static const gchar *dissect_radius_user_loc(proto_tree * tree, tvbuff_t * tvb, packet_info* pinfo)
 {
 
     int offset = 0;
@@ -5266,10 +5266,10 @@ static const gchar *dissect_radius_user_loc(proto_tree * tree, tvbuff_t * tvb)
 
     if (geo_loc_type == 0)
         /* Use gsm_a's function to dissect Geographic Location by faking disc ( last 0) */
-        be_cell_id_aux(tvb, tree, offset, length - 1, NULL, 0, 0);
+        be_cell_id_aux(tvb, tree, pinfo, offset, length - 1, NULL, 0, 0);
     if (geo_loc_type == 1) {
         /* Use gsm_a's function to dissect Geographic Location by faking disc ( last 4) */
-        be_cell_id_aux(tvb, tree, offset, length - 1, NULL, 0, 4);
+        be_cell_id_aux(tvb, tree, pinfo, offset, length - 1, NULL, 0, 4);
         offset = offset + 5;
         proto_tree_add_item(tree, hf_gtp_ext_sac, tvb, offset, 2, ENC_BIG_ENDIAN);
     }
@@ -5278,7 +5278,7 @@ static const gchar *dissect_radius_user_loc(proto_tree * tree, tvbuff_t * tvb)
     return tvb_bytes_to_str(tvb, 0, length);
 }
 
-static int decode_gtp_usr_loc_inf(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
+static int decode_gtp_usr_loc_inf(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tree)
 {
 
     guint16 length;
@@ -5301,10 +5301,10 @@ static int decode_gtp_usr_loc_inf(tvbuff_t * tvb, int offset, packet_info * pinf
 
     if (geo_loc_type == 0)
         /* Use gsm_a's function to dissect Geographic Location by faking disc ( last 0) */
-        be_cell_id_aux(tvb, ext_tree, offset, length - 1, NULL, 0, 0);
+        be_cell_id_aux(tvb, ext_tree, pinfo, offset, length - 1, NULL, 0, 0);
     if (geo_loc_type == 1) {
         /* Use gsm_a's function to dissect Geographic Location by faking disc ( last 4) */
-        be_cell_id_aux(tvb, ext_tree, offset, length - 1, NULL, 0, 4);
+        be_cell_id_aux(tvb, ext_tree, pinfo, offset, length - 1, NULL, 0, 4);
         offset = offset + 5;
         proto_tree_add_item(ext_tree, hf_gtp_ext_sac, tvb, offset, 2, ENC_BIG_ENDIAN);
     }
@@ -5466,7 +5466,7 @@ static int decode_gtp_mbms_ue_ctx(tvbuff_t * tvb, int offset, packet_info * pinf
  * in 3GPP T S 24.008 [5] (i.e. the IEI and octet length indicator are not included).
  */
 
-static int decode_gtp_tmgi(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
+static int decode_gtp_tmgi(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tree)
 {
 
     guint16 length;
@@ -5486,7 +5486,7 @@ static int decode_gtp_tmgi(tvbuff_t * tvb, int offset, packet_info * pinfo _U_,
 
     tmgi_tree = proto_item_add_subtree(ti, ett_gtp_tmgi);
     next_tvb = tvb_new_subset(tvb, offset, length, length);
-    de_mid(next_tvb, tmgi_tree, 0, length, NULL, 0);
+    de_mid(next_tvb, tmgi_tree, pinfo, 0, length, NULL, 0);
     return 3 + length;
 
 }
index 5120e176099b1ed6c62b729a33c7c2709e2277fd..ecf99edf03242afdaca50af41d58d9f41e50e95f 100644 (file)
@@ -1061,25 +1061,21 @@ dissect_gtpv2_ind(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, proto
  * Dissected in packet-gsm_a_gm.c
  */
 static void
-dissect_gtpv2_pco(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, proto_item *item _U_, guint16 length _U_,guint8 message_type _U_,  guint8 instance _U_)
+dissect_gtpv2_pco(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint16 length _U_,guint8 message_type _U_,  guint8 instance _U_)
 {
-    /* pinfo needed */
-    gsm_a_dtap_pinfo = pinfo;
        switch(message_type){
                case GTPV2_CREATE_SESSION_REQUEST:
                        /* PCO options as MS to network direction */
-                       gsm_a_dtap_pinfo->link_dir = P2P_DIR_UL;
+                       pinfo->link_dir = P2P_DIR_UL;
                        break;
                case GTPV2_CREATE_SESSION_RESPONSE:
                        /* PCO options as Network to MS direction: */
-                       gsm_a_dtap_pinfo->link_dir = P2P_DIR_DL;
+                       pinfo->link_dir = P2P_DIR_DL;
                        break;
                default:
                        break;
        }
-    de_sm_pco(tvb, tree, 0, length, NULL, 0);
-       /* Restore previous values */
-       gsm_a_dtap_pinfo = pinfo;
+    de_sm_pco(tvb, tree, pinfo, 0, length, NULL, 0);
 }
 
 /*
@@ -1231,27 +1227,27 @@ dissect_gtpv2_serv_net(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
  */
 
 static void
-dissect_gtpv2_bearer_tft(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, proto_item *item _U_, guint16 length _U_,guint8 message_type _U_,  guint8 instance _U_)
+dissect_gtpv2_bearer_tft(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint16 length _U_,guint8 message_type _U_,  guint8 instance _U_)
 {
        /* The detailed coding of Traffic Aggregate
         * Description is specified in 3GPP TS 24.008 [5] ,
         * clause 10.5.6.12, beginning with octet 3..
         * Use the decoding in packet-gsm_a_gm.c
         */
-       de_sm_tflow_temp(tvb, tree, 0, length, NULL, 0);
+       de_sm_tflow_temp(tvb, tree, pinfo, 0, length, NULL, 0);
 
 }
  /* 8.20 Traffic Aggregate Description (TAD)
  */
 static void
-dissect_gtpv2_tad(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, proto_item *item _U_, guint16 length _U_,guint8 message_type _U_,  guint8 instance _U_)
+dissect_gtpv2_tad(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint16 length _U_,guint8 message_type _U_,  guint8 instance _U_)
 {
        /* The detailed coding of Traffic Aggregate
         * Description is specified in 3GPP TS 24.008 [5] ,
         * clause 10.5.6.12, beginning with octet 3..
         * Use the decoding in packet-gsm_a_gm.c
         */
-       de_sm_tflow_temp(tvb, tree, 0, length, NULL, 0);
+       de_sm_tflow_temp(tvb, tree, pinfo, 0, length, NULL, 0);
 }
 
 /*
@@ -2096,7 +2092,7 @@ dissect_gtpv2_drx_param(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
 static void
 dissect_gtpv2_ue_net_capability(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, proto_item *item _U_, guint16 length, guint8 message_type _U_, guint8 instance _U_)
 {
-       de_emm_ue_net_cap(tvb, tree, 0, length, NULL, 0);
+       de_emm_ue_net_cap(tvb, tree, pinfo, 0, length, NULL, 0);
 
 }
 /*
@@ -2434,7 +2430,7 @@ static const value_string gtpv2_ue_time_zone_dst_vals[] = {
     {0, NULL}
 };
 static void
-dissect_gtpv2_ue_time_zone(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, proto_item *item _U_, guint16 length _U_,guint8 message_type _U_,  guint8 instance _U_)
+dissect_gtpv2_ue_time_zone(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint16 length _U_,guint8 message_type _U_,  guint8 instance _U_)
 {
     int offset = 0;
 
@@ -2443,7 +2439,7 @@ dissect_gtpv2_ue_time_zone(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tr
         * UE currently resides. The "Time Zone" field uses the same format as the "Time Zone" IE in 3GPP TS 24.008 [5].
         * (packet-gsm_a_dtap.c)
         */
-       de_time_zone(tvb, tree, offset, 1, NULL, 0);
+       de_time_zone(tvb, tree, pinfo, offset, 1, NULL, 0);
     offset= offset+ 1;
     proto_tree_add_item(tree, hf_gtpv2_ue_time_zone_dst, tvb, offset, 1, FALSE);
 
@@ -2851,14 +2847,14 @@ static const value_string gtpv2_source_ident_types[] = {
        {0,     NULL}
 };
 static void
-dissect_gtpv2_source_ident(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, proto_item *item _U_, guint16 length _U_, guint8 message_type _U_, guint8 instance _U_)
+dissect_gtpv2_source_ident(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint16 length _U_, guint8 message_type _U_, guint8 instance _U_)
 {
        proto_item *expert_item;
     int          offset=0;
        guint8       source_type;
 
     /* Octet 5 to 12 Target Cell ID */
-       de_cell_id(tvb, tree, offset, 8, NULL, 0);
+       de_cell_id(tvb, tree, pinfo, offset, 8, NULL, 0);
        offset+=8;
     /* Octet 13 Source Type */
        source_type = tvb_get_guint8(tvb, offset);
@@ -2870,7 +2866,7 @@ dissect_gtpv2_source_ident(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tr
                        /* The Source Type is Cell ID for PS handover from GERAN A/Gb mode. In this case the coding of the Source ID field
              * shall be same as the Octets 3 to 10 of the Cell Identifier IEI in 3GPP TS 48.018 [34].
              */
-            de_cell_id(tvb, tree, offset, 8, NULL, 0);
+            de_cell_id(tvb, tree, pinfo, offset, 8, NULL, 0);
             offset+=8;
                        break;
                case 1:
@@ -3018,13 +3014,13 @@ dissect_gtpv2_fq_csid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, p
  * 8.63 Channel needed
  */
 static void
-dissect_gtpv2_channel_needed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, proto_item *item _U_, guint16 length, guint8 message_type _U_, guint8 instance _U_)
+dissect_gtpv2_channel_needed(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint16 length, guint8 message_type _U_, guint8 instance _U_)
 {
 
        /* The Channel needed shall be coded as depicted in Figure 8.63-1. Channel needed is coded as the IEI part and the value
         * part of the Channel Needed IE defined in 3GPP TS 44.018[28]
         */
-       de_rr_chnl_needed(tvb, tree, 0, length, NULL, 0);
+       de_rr_chnl_needed(tvb, tree, pinfo, 0, length, NULL, 0);
 }
 
 /*
@@ -3034,10 +3030,10 @@ dissect_gtpv2_channel_needed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *
  * length indicator).
  */
 static void
-dissect_gtpv2_emlpp_pri(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, proto_item *item _U_, guint16 length, guint8 message_type _U_, guint8 instance _U_)
+dissect_gtpv2_emlpp_pri(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint16 length, guint8 message_type _U_, guint8 instance _U_)
 {
 
-       be_emlpp_prio(tvb, tree, 0, length, NULL, 0);
+       be_emlpp_prio(tvb, tree, pinfo, 0, length, NULL, 0);
 
 }
 /*
index 85cb962b3a85acc4ff9f03c8691637ebf24a68e4..21f8713f3efd4eeddfacbe3fceb7541ead8961ee 100644 (file)
@@ -15704,12 +15704,12 @@ if(ue_eutra_cap_tvb){
                break;
        case 2:
                /* geran-cs */
-               de_ms_cm_2(ue_eutra_cap_tvb, tree, 0, 5, NULL, 0);
-               de_ms_cm_3(ue_eutra_cap_tvb, tree, 5, tvb_length(ue_eutra_cap_tvb)-5, NULL, 0);
+               de_ms_cm_2(ue_eutra_cap_tvb, tree, actx->pinfo, 0, 5, NULL, 0);
+               de_ms_cm_3(ue_eutra_cap_tvb, tree, actx->pinfo, 5, tvb_length(ue_eutra_cap_tvb)-5, NULL, 0);
                break;
        case 3:
                /* geran-ps */
-               de_gmm_ms_radio_acc_cap(ue_eutra_cap_tvb, tree, 0, tvb_length(ue_eutra_cap_tvb), NULL, 0);
+               de_gmm_ms_radio_acc_cap(ue_eutra_cap_tvb, tree, actx->pinfo, 0, tvb_length(ue_eutra_cap_tvb), NULL, 0);
                break;
        case 4:
                /* cdma2000-1XRTT */
index 88db816aaaffdf0cdc942d12930eea14b295ddeb..5d1014ebf3a28c47f50bf2deb961e5a09aafb097 100644 (file)
@@ -370,7 +370,7 @@ static const true_false_string  nas_eps_emm_ebi_vals = {
 };
 
 static guint16
-de_eps_cmn_eps_be_ctx_status(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_eps_cmn_eps_be_ctx_status(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -433,7 +433,7 @@ de_eps_cmn_eps_be_ctx_status(tvbuff_t *tvb, proto_tree *tree, guint32 offset, gu
  * 9.9.2.6  NAS security parameters from E-UTRA
  */
 static guint16
-de_sec_par_from_eutra(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sec_par_from_eutra(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -453,7 +453,7 @@ de_sec_par_from_eutra(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
  * 9.9.2.7  NAS security parameters to E-UTRA
  */
 static guint16
-de_sec_par_to_eutra(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sec_par_to_eutra(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -496,7 +496,7 @@ de_sec_par_to_eutra(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _
  * Dissectecd in packet-gsm_a_dtap.c
  */
 
-guint16 (*nas_eps_common_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len) = {
+guint16 (*nas_eps_common_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len) = {
     /* 9.9.2    Common information elements */
     de_eps_cmn_eps_be_ctx_status,   /* 9.9.2.1  EPS bearer context status */
     de_lai,                         /* 9.9.2.2  Location area identification */
@@ -643,7 +643,7 @@ static const value_string nas_eps_emm_add_upd_res_vals[] = {
        { 0, NULL }
 };
 static guint16
-de_emm_add_upd_res(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_add_upd_res(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset, bit_offset;
 
@@ -666,7 +666,7 @@ static const value_string nas_eps_emm_add_upd_type_vals[] = {
        { 0, NULL }
 };
 static guint16
-de_emm_add_upd_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_add_upd_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset, bit_offset;
 
@@ -697,7 +697,7 @@ de_emm_add_upd_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _
  * 9.9.3.4  Authentication response parameter
  */
 static guint16
-de_emm_auth_resp_par(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_auth_resp_par(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -727,7 +727,7 @@ static const value_string nas_eps_emm_csfb_resp_vals[] = {
 };
 
 static guint16
-de_emm_csfb_resp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_csfb_resp(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset, bit_offset;
 
@@ -831,7 +831,7 @@ static const value_string nas_eps_emm_cause_values[] = {
 };
 
 static guint16
-de_emm_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
 
@@ -932,7 +932,7 @@ static const value_string nas_eps_emm_type_of_id_vals[] = {
     { 0, NULL }
 };
 static guint16
-de_emm_eps_mid(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_eps_mid(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32 curr_offset;
     guint8 octet;
@@ -1004,7 +1004,7 @@ static const true_false_string nas_eps_emm_ims_vops_value = {
 };
 
 static guint16
-de_emm_eps_net_feature_sup(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_eps_net_feature_sup(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset, bit_offset;
 
@@ -1056,7 +1056,7 @@ static const value_string nas_eps_emm_eps_update_type_vals[] = {
  * 9.9.3.15    ESM message container
  */
 static guint16
-de_emm_esm_msg_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_emm_esm_msg_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        proto_item *item;
        proto_tree *sub_tree;
@@ -1110,7 +1110,7 @@ static const value_string nas_eps_emm_imeisv_req_vals[] = {
        { 0, NULL }
 };
 static guint16
-de_emm_nas_imeisv_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_nas_imeisv_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        int bit_offset;
@@ -1129,7 +1129,7 @@ de_emm_nas_imeisv_req(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
  * 9.9.3.19    KSI and sequence number
  */
 static guint16
-de_emm_nas_ksi_and_seq_no(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_nas_ksi_and_seq_no(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        int bit_offset;
@@ -1195,7 +1195,7 @@ de_emm_nas_key_set_id_bits(tvbuff_t *tvb, proto_tree *tree, guint32 bit_offset,
  * Note used for TV Short
  */
 static guint16
-de_emm_nas_key_set_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_nas_key_set_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset, bit_offset;
 
@@ -1220,7 +1220,7 @@ de_emm_nas_key_set_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
  * 9.9.3.22    NAS message container
  */
 static guint16
-de_emm_nas_msg_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_nas_msg_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        tvbuff_t *new_tvb;
        guint32 curr_offset;
@@ -1269,7 +1269,7 @@ static const value_string nas_eps_emm_toc_vals[] = {
        { 0, NULL }
 };
 static guint16
-de_emm_nas_sec_alsgs(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_nas_sec_alsgs(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        int bit_offset;
        guint32 curr_offset;
@@ -1300,7 +1300,7 @@ de_emm_nas_sec_alsgs(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
  * Editor's note: The coding of this information element is FFS.
  */
 static guint16
-de_emm_nonce(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_nonce(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1316,7 +1316,7 @@ de_emm_nonce(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gch
  * 9.9.3.25A Paging identity
  */
 static guint16
-de_emm_paging_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_paging_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1346,7 +1346,7 @@ static const value_string nas_eps_service_type_vals[] = {
  * 9.9.3.28    Short MAC
  */
 static guint16
-de_emm_nas_short_mac(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_nas_short_mac(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1375,7 +1375,7 @@ de_emm_nas_short_mac(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
  */
 
 guint16
-de_emm_trac_area_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_trac_area_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1401,7 +1401,7 @@ static const value_string nas_eps_emm_tai_tol_vals[] = {
 };
 
 static guint16
-de_emm_trac_area_id_lst(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_trac_area_id_lst(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        proto_item *item;
        guint32 curr_offset;
@@ -1504,7 +1504,7 @@ static const true_false_string  nas_eps_emm_1xsrvcc_cap_flg = {
 };
 
 guint16
-de_emm_ue_net_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_emm_ue_net_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1623,7 +1623,7 @@ static const true_false_string  nas_eps_emm_ue_ra_cap_inf_upd_need_flg = {
  */
 
 static guint16
-de_emm_ue_ra_cap_inf_upd_need(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_ue_ra_cap_inf_upd_need(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1638,7 +1638,7 @@ de_emm_ue_ra_cap_inf_upd_need(tvbuff_t *tvb, proto_tree *tree, guint32 offset, g
  */
 
 static guint16
-de_emm_ue_sec_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_ue_sec_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1770,7 +1770,7 @@ de_emm_ue_sec_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
  * 9.9.3.39    SS Code
  */
 static guint16
-de_emm_ss_code(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_ss_code(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1798,7 +1798,7 @@ static const value_string nas_eps_emm_lcs_ind_vals[] = {
 
 
 static guint16
-de_emm_lcs_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_lcs_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1813,7 +1813,7 @@ de_emm_lcs_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
  * 9.9.3.41    LCS client identity
  */
 static guint16
-de_emm_lcs_client_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_lcs_client_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        tvbuff_t *new_tvb;
@@ -1835,7 +1835,7 @@ de_emm_lcs_client_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
  */
 
 static guint16
-de_emm_gen_msg_cont_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_gen_msg_cont_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1849,7 +1849,7 @@ de_emm_gen_msg_cont_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
  * 9.9.3.43 Generic message container
  */
 static guint16
-de_emm_gen_msg_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_gen_msg_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1863,7 +1863,7 @@ de_emm_gen_msg_cont(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _
  * 9.9.3.44 Voice domain preference and UE's usage setting
  */
 static guint16
-de_emm_gen_voice_dmn_pref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_emm_gen_voice_dmn_pref(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -1886,7 +1886,7 @@ de_emm_gen_voice_dmn_pref(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
  */
 
 static guint16
-de_esm_apn_aggr_max_br(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_esm_apn_aggr_max_br(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint8 octet;
@@ -2031,7 +2031,7 @@ static const value_string nas_eps_qci_vals[] = {
 
 
 static guint16
-de_esm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_esm_qos(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint8 octet;
@@ -2190,7 +2190,7 @@ static const value_string nas_eps_esm_cause_vals[] = {
 };
 
 static guint16
-de_esm_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_esm_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -2210,7 +2210,7 @@ static const true_false_string  nas_eps_emm_eit_vals = {
        "Security protected ESM information transfer not required"
 };
 static guint16
-de_esm_inf_trf_flg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_esm_inf_trf_flg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -2252,7 +2252,7 @@ static const value_string nas_eps_esm_linked_bearer_id_vals[] = {
 
 
 static guint16
-de_esm_lnkd_eps_bearer_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_esm_lnkd_eps_bearer_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -2274,7 +2274,7 @@ de_esm_lnkd_eps_bearer_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
  * 9.9.4.9 PDN address
  */
 static guint16
-de_esm_pdn_addr(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_esm_pdn_addr(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint8 pdn_type;
@@ -2367,7 +2367,7 @@ static const value_string nas_eps_esm_pdn_type_values[] = {
  * The coding of the TI flag, the TI value and the EXT bit is defined in 3GPP TS 24.007[20].
  */
 
-guint16 (*emm_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len) = {
+guint16 (*emm_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len) = {
        /* 9.9.3        EPS Mobility Management (EMM) information elements */
        de_emm_add_upd_res,                     /* 9.9.3.0A Additional update result */
        de_emm_add_upd_type,            /* 9.9.3.0B Additional update type */
@@ -2470,7 +2470,7 @@ typedef enum
 
 nas_esm_elem_idx_t;
 
-guint16 (*esm_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len) = {
+guint16 (*esm_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len) = {
        NULL,                                                   /* 9.9.4.1 Access point name */
        de_esm_apn_aggr_max_br,                 /* 9.9.4.2 APN aggregate maximum bit rate */
        de_esm_qos,                                             /* 9.9.4.3 EPS quality of service */
index 1915fa262de9c1c731718d25c574280d01f6de9f..1a0a2820c3d9541f8f32152e0440d0026cc53eb0 100644 (file)
@@ -285,7 +285,7 @@ static guint radius_call_hash(gconstpointer k)
 }
 
 
-static const gchar *dissect_framed_ip_address(proto_tree* tree, tvbuff_t* tvb) {
+static const gchar *dissect_framed_ip_address(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo _U_) {
        int len;
        guint32 ip;
        guint32 ip_h;
@@ -316,7 +316,7 @@ static const gchar *dissect_framed_ip_address(proto_tree* tree, tvbuff_t* tvb) {
        return str;
 }
 
-static const gchar *dissect_login_ip_host(proto_tree* tree, tvbuff_t* tvb) {
+static const gchar *dissect_login_ip_host(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo _U_) {
        int len;
        guint32 ip;
        guint32 ip_h;
@@ -353,7 +353,7 @@ static const value_string ascenddf_inout[] = { {0, "out"}, {1, "in"}, {0, NULL}
 static const value_string ascenddf_proto[] = { {1, "icmp"}, {6, "tcp"}, {17, "udp"}, {0, NULL} };
 static const value_string ascenddf_portq[] = { {1, "lt"}, {2, "eq"}, {3, "gt"}, {4, "ne"}, {0, NULL} };
 
-static const gchar *dissect_ascend_data_filter(proto_tree* tree, tvbuff_t* tvb) {
+static const gchar *dissect_ascend_data_filter(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo _U_) {
        const gchar *str;
        GString *filterstr;
        int len;
@@ -414,7 +414,7 @@ static const gchar *dissect_ascend_data_filter(proto_tree* tree, tvbuff_t* tvb)
        return str;
 }
 
-static const gchar *dissect_framed_ipx_network(proto_tree* tree, tvbuff_t* tvb) {
+static const gchar *dissect_framed_ipx_network(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo _U_) {
        int len;
        guint32 net;
        const gchar *str;
@@ -435,7 +435,7 @@ static const gchar *dissect_framed_ipx_network(proto_tree* tree, tvbuff_t* tvb)
        return str;
 }
 
-static const gchar* dissect_cosine_vpvc(proto_tree* tree, tvbuff_t* tvb) {
+static const gchar* dissect_cosine_vpvc(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo _U_) {
        guint vpi, vci;
 
        if ( tvb_length(tvb) != 4 )
@@ -841,7 +841,7 @@ static void add_avp_to_tree(proto_tree* avp_tree, proto_item* avp_item, packet_i
 
                tvb_value = tvb_new_subset(tvb, offset, avp_length, (gint) avp_length);
 
-               str = dictionary_entry->dissector(avp_tree,tvb_value);
+               str = dictionary_entry->dissector(avp_tree,tvb_value,pinfo);
 
                proto_item_append_text(avp_item, ": %s",str);
        } else {
index ff1f9a4e60a3d176b33c5510093c7e7a42ce8e6c..02d049702452558173a2323d4a3dd4d43ff8cd8d 100644 (file)
@@ -66,7 +66,7 @@ typedef struct _radius_vendor_info_t {
 typedef struct _radius_attr_info_t radius_attr_info_t;
 typedef void (radius_attr_dissector_t)(radius_attr_info_t*, proto_tree*, packet_info*, tvbuff_t*, int, int, proto_item* );
 
-typedef const gchar* (radius_avp_dissector_t)(proto_tree*,tvbuff_t*);
+typedef const gchar* (radius_avp_dissector_t)(proto_tree*,tvbuff_t*, packet_info*);
 
 struct _radius_attr_info_t {
        const gchar *name;
index 24803cf774dd36d1e86cf343055184c722fbb95d..1661294e03663b619e8c0f65bf7b832d5550a0e8 100644 (file)
@@ -263,7 +263,7 @@ static void decode_packetcable_bcid (tvbuff_t *tvb, proto_tree *tree, int offset
                                                tvb, offset + 20, 4, FALSE);
 }
 
-static const gchar* dissect_packetcable_em_hdr(proto_tree* tree, tvbuff_t* tvb) {
+static const gchar* dissect_packetcable_em_hdr(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo _U_) {
        guint8 packetcable_buf[64];
        proto_item *ti;
        proto_tree *obj_tree;
@@ -295,7 +295,7 @@ static const gchar* dissect_packetcable_em_hdr(proto_tree* tree, tvbuff_t* tvb)
        return "";
 }
 
-static const gchar* dissect_packetcable_call_term_cause(proto_tree* tree, tvbuff_t* tvb) {
+static const gchar* dissect_packetcable_call_term_cause(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo _U_) {
        proto_tree_add_item(tree, hf_packetcable_call_termination_cause_source_document,
                                                tvb, 0, 2, FALSE);
        proto_tree_add_item(tree, hf_packetcable_call_termination_cause_code,
@@ -304,12 +304,12 @@ static const gchar* dissect_packetcable_call_term_cause(proto_tree* tree, tvbuff
        return "";
 }
 
-static const gchar* dissect_packetcable_rel_call_billing_correlation(proto_tree* tree, tvbuff_t* tvb) {
+static const gchar* dissect_packetcable_rel_call_billing_correlation(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo _U_) {
        decode_packetcable_bcid(tvb, tree, 0);
        return "";
 }
 
-static const gchar* dissect_packetcable_trunk_group_id(proto_tree* tree, tvbuff_t* tvb) {
+static const gchar* dissect_packetcable_trunk_group_id(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo _U_) {
        proto_tree_add_item(tree, hf_packetcable_trunk_group_id_trunk_type,
                                                tvb, 0, 2, FALSE);
        proto_tree_add_item(tree, hf_packetcable_trunk_group_id_trunk_number,
@@ -317,7 +317,7 @@ static const gchar* dissect_packetcable_trunk_group_id(proto_tree* tree, tvbuff_
        return "";
 }
 
-static const gchar* dissect_packetcable_qos_descriptor(proto_tree* tree, tvbuff_t* tvb) {
+static const gchar* dissect_packetcable_qos_descriptor(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo _U_) {
        guint8 packetcable_buf[64];
        guint32 intval;
        guint32 packetcable_qos_flags = tvb_get_ntohl(tvb, 0);
@@ -348,13 +348,13 @@ static const gchar* dissect_packetcable_qos_descriptor(proto_tree* tree, tvbuff_
        return "";
 }
 
-static const gchar* dissect_packetcable_time_adjustment(proto_tree* tree, tvbuff_t* tvb) {
+static const gchar* dissect_packetcable_time_adjustment(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo _U_) {
        proto_tree_add_item(tree, hf_packetcable_time_adjustment, tvb, 0, 8, FALSE);
 
        return "";
 }
 
-static const gchar* dissect_packetcable_redirected_from_info(proto_tree* tree, tvbuff_t* tvb) {
+static const gchar* dissect_packetcable_redirected_from_info(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo _U_) {
        guint8 packetcable_buf[64];
 
        tvb_memcpy(tvb, packetcable_buf, 0, 20); packetcable_buf[20] = '\0';
@@ -371,7 +371,7 @@ static const gchar* dissect_packetcable_redirected_from_info(proto_tree* tree, t
        return "";
 }
 
-static const gchar* dissect_packetcable_time_electr_surv_ind(proto_tree* tree, tvbuff_t* tvb) {
+static const gchar* dissect_packetcable_time_electr_surv_ind(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo _U_) {
 
        if (tvb_length(tvb) == 0)
                return "None";
@@ -389,7 +389,7 @@ static const gchar* dissect_packetcable_time_electr_surv_ind(proto_tree* tree, t
        return "";
 }
 
-static const gchar* dissect_packetcable_surv_df_sec(proto_tree* tree _U_, tvbuff_t* tvb _U_) {
+static const gchar* dissect_packetcable_surv_df_sec(proto_tree* tree _U_, tvbuff_t* tvb _U_, packet_info *pinfo _U_) {
                return "";
 }
 
@@ -398,7 +398,7 @@ static const gchar* dissect_packetcable_surv_df_sec(proto_tree* tree _U_, tvbuff
 #define PACKETCABLE_CALLING_NAME    (1 << 2)
 #define PACKETCABLE_MESSAGE_WAITING (1 << 3)
 
-static const gchar* dissect_packetcable_term_dsply_info(proto_tree* tree, tvbuff_t* tvb) {
+static const gchar* dissect_packetcable_term_dsply_info(proto_tree* tree, tvbuff_t* tvb, packet_info *pinfo _U_) {
        guint8 bitmask = tvb_get_guint8(tvb, 2);
        guint intval = 1;
        proto_item* ti = proto_tree_add_item(tree, hf_packetcable_terminal_display_info_terminal_display_status_bitmask,
index 672cb28abc4565b7b2f37f972cb3e0add462af09..0517a10885109b434f0a7805f9683fb14b28b4cd 100644 (file)
@@ -82477,7 +82477,7 @@ tvbuff_t *parameter_tvb=NULL;
                                        5, 5, FALSE, &parameter_tvb);
 
   if (parameter_tvb){
-       de_ms_cm_2(parameter_tvb, tree, 2, tvb_get_guint8(parameter_tvb,1), NULL, 0);
+       de_ms_cm_2(parameter_tvb, tree, actx->pinfo, 2, tvb_get_guint8(parameter_tvb,1), NULL, 0);
   }
 
 
@@ -82496,7 +82496,7 @@ tvbuff_t *parameter_tvb=NULL;
                                        1, 32, FALSE, &parameter_tvb);
 
   if (parameter_tvb){
-       de_ms_cm_3(parameter_tvb, tree, 0, tvb_length(parameter_tvb), NULL, 0);
+       de_ms_cm_3(parameter_tvb, tree, actx->pinfo, 0, tvb_length(parameter_tvb), NULL, 0);
   }
 
 
index 7f2c98d7d193471ba37ba716703c5a020355c5ac..79494c3d62cc3c66a32940c8636412f19b884903 100644 (file)
@@ -1,7 +1,7 @@
 /* packet-rsl.c
  * Routines for Radio Signalling Link (RSL) dissection.
  *
- * Copyright 2007, Anders Broman <anders.broman@ericsson.com>
+ * Copyright 2007, 2011, Anders Broman <anders.broman@ericsson.com>
  *
  * $Id$
  *
@@ -785,7 +785,7 @@ dissect_rsl_ie_ch_id(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, in
        ie_offset = offset;
 
        /* 3GPP TS 44.018 "Channel Description" */
-       de_rr_ch_dsc(tvb, ie_tree, offset, length, NULL, 0);
+       de_rr_ch_dsc(tvb, ie_tree, pinfo, offset, length, NULL, 0);
        /*
         * The 3GPP TS 24.008 "Mobile Allocation" shall for compatibility reasons be
         * included but empty, i.e. the length shall be zero.
@@ -1148,7 +1148,7 @@ dissect_rsl_ie_L3_inf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int o
  * 9.3.12 MS Identity
  */
 static int
-dissect_rsl_ie_ms_id(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
+dissect_rsl_ie_ms_id(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, gboolean is_mandatory)
 {
        proto_item *ti;
        proto_tree *ie_tree;
@@ -1172,7 +1172,7 @@ dissect_rsl_ie_ms_id(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, in
        proto_tree_add_item(ie_tree, hf_rsl_ie_length, tvb, offset, 1, FALSE);
        offset++;
 
-       de_mid(tvb, ie_tree, offset, length, NULL, 0);
+       de_mid(tvb, ie_tree, pinfo, offset, length, NULL, 0);
 
        offset = offset + length;
 
@@ -2295,7 +2295,7 @@ dissect_rsl_ie_smscb_ch_ind(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *t
  * 9.3.45 Group call reference
  */
 static int
-dissect_rsl_ie_grp_call_ref(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
+dissect_rsl_ie_grp_call_ref(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, gboolean is_mandatory)
 {
        proto_item *ti;
        proto_tree *ie_tree;
@@ -2325,7 +2325,7 @@ dissect_rsl_ie_grp_call_ref(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *t
         * in the Descriptive group or broadcast call reference
         * information element as defined in 3GPP TS 24.008.
         */
-       de_d_gb_call_ref(tvb, ie_tree, offset, length, NULL, 0);
+       de_d_gb_call_ref(tvb, ie_tree, pinfo, offset, length, NULL, 0);
 
        offset = offset + length;
 
@@ -2569,7 +2569,7 @@ dissect_rsl_ie_main_ch_ref(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tr
  */
 
 static int
-dissect_rsl_ie_multirate_conf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, gboolean is_mandatory)
+dissect_rsl_ie_multirate_conf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, gboolean is_mandatory)
 {
        proto_item *ti;
        proto_tree *ie_tree;
@@ -2597,7 +2597,7 @@ dissect_rsl_ie_multirate_conf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree
         * 3GPP TS 44.018 element identifier or 3GPP TS 44.018 octet length value
         */
 
-       de_rr_multirate_conf(tvb, ie_tree, offset, length, NULL, 0);
+       de_rr_multirate_conf(tvb, ie_tree, pinfo, offset, length, NULL, 0);
 
        offset = offset + length;
 
index fa77b8e09205f461a4a71ff218f2291a0f5f28ad..185169d58949c9596e7bfd5531f2aee03cafbd44 100644 (file)
@@ -98,7 +98,7 @@ static const value_string sgsap_eps_location_update_type_values[] = {
 };
 
 static guint16
-de_sgsap_eps_loc_upd_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sgsap_eps_loc_upd_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint8 oct;
@@ -122,7 +122,7 @@ de_sgsap_eps_loc_upd_type(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint
  * See subclause 18.4.5 in 3GPP TS 29.018 [16].
  */
 static guint16
-de_sgsap_err_msg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sgsap_err_msg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -144,7 +144,7 @@ de_sgsap_err_msg(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * as specified in subclause 8.21.5 of 3GPP TS 29.274 [17A] (GTPv2-C)
  */
 static guint16
-de_sgsap_ecgi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sgsap_ecgi(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
 
@@ -169,7 +169,7 @@ de_sgsap_ecgi(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gc
  * not fill the field reserved for it, the rest of the bits are set to '0'.
  */
 static guint16
-de_sgsap_g_cn_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sgsap_g_cn_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
     guint32    curr_offset;
 
@@ -191,7 +191,7 @@ de_sgsap_g_cn_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_,
  * (see 3GPP TS 23.003).
  */
 static guint16
-de_sgsap_imeisv(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sgsap_imeisv(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        const char  *imeisv_str;
     guint32            curr_offset;
@@ -228,7 +228,7 @@ static const value_string sgsap_imsi_det_from_eps_serv_type_values[] = {
 };
 
 static guint16
-de_sgsap_imsi_det_eps(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sgsap_imsi_det_eps(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -252,7 +252,7 @@ static const value_string sgsap_imsi_det_from_non_eps_serv_type_values[] = {
 };
 
 static guint16
-de_sgsap_imsi_det_non_eps(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sgsap_imsi_det_non_eps(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -279,7 +279,7 @@ static const value_string sgsap_lcs_indic_values[] = {
 };
 
 static guint16
-de_sgsap_lcs_indic(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sgsap_lcs_indic(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -307,13 +307,13 @@ de_sgsap_lcs_indic(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U
  * indicatior of the other information elements.
  */
 static guint16
-de_sgsap_mm_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+de_sgsap_mm_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
        curr_offset = offset;
 
-       dtap_mm_mm_info(tvb, tree, gpinfo, curr_offset, len);
+       dtap_mm_mm_info(tvb, tree, pinfo, curr_offset, len);
 
        return(len);
 }
@@ -322,7 +322,7 @@ de_sgsap_mm_info(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gch
  * 9.4.13      MME name
  */
 static guint16
-de_sgsap_mme_name(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sgsap_mme_name(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint   name_len, tmp;
@@ -374,7 +374,7 @@ de_sgsap_mme_name(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_
  * as defined in subclause 7.2 of 3GPP TS 24.011 [10]
  */
 static guint16
-de_sgsap_nas_msg_container(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sgsap_nas_msg_container(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        tvbuff_t *new_tvb;
        guint32 curr_offset;
@@ -412,7 +412,7 @@ static const value_string sgsap_service_indicator_values[] = {
 };
 
 static guint16
-de_sgsap_serv_indic(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sgsap_serv_indic(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint8 oct;
@@ -455,7 +455,7 @@ static const value_string sgsap_sgs_cause_values[] = {
 static value_string_ext sgsap_sgs_cause_values_ext = VALUE_STRING_EXT_INIT(sgsap_sgs_cause_values);
 
 static guint16
-de_sgsap_sgs_cause(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sgsap_sgs_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint8 oct;
@@ -511,7 +511,7 @@ static const value_string sgsap_ue_emm_mode_values[] = {
 };
 
 static guint16
-de_sgsap_ue_emm_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sgsap_ue_emm_mode(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
 
@@ -526,7 +526,7 @@ de_sgsap_ue_emm_mode(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len
  * 9.4.22      VLR name
  */
 static guint16
-de_sgsap_vlr_name(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
+de_sgsap_vlr_name(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
        guint32 curr_offset;
        guint     name_len, tmp;
@@ -678,7 +678,7 @@ typedef enum
 sgsap_elem_idx_t;
 #endif /* 0 */
 
-guint16 (*sgsap_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len) = {
+guint16 (*sgsap_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len) = {
        NULL/*DE_SGSAP_IMSI*/,                                                                  /* 9.4.6 IMSI*/
        de_sgsap_vlr_name,                                                                              /* 9.4.22 VLR name*/
        NULL/*DE_SGSAP_TMSI*/,                                                                  /* 9.4.20 TMSI */
index 06af702defd04e30e16f0097aacf7c207e10414e..8ef8c5b870fd1f9e94c40123bff35ccec8fc54fc 100644 (file)
@@ -959,7 +959,7 @@ dissect_uma_IE(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
         * The rest of the IE is coded as in [TS 24.008] not including IEI and
         * length, if present.(10.5.1.4)
         */
-               de_mid(tvb, urr_ie_tree, ie_offset, ie_len, NULL, 0);
+               de_mid(tvb, urr_ie_tree, pinfo, ie_offset, ie_len, NULL, 0);
                break;
 
        case 2:
@@ -987,7 +987,7 @@ dissect_uma_IE(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
                 * The rest of the IE is coded as in [TS 24.008] not including IEI and
                 * length, if present.
                 */
-               de_lai(tvb, urr_ie_tree, ie_offset, ie_len, NULL, 0);
+               de_lai(tvb, urr_ie_tree, pinfo, ie_offset, ie_len, NULL, 0);
                break;
        case 6:
                /* GSM Coverage Indicator */
@@ -1047,7 +1047,7 @@ dissect_uma_IE(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
                /* 11.2.13 GAN Cell Description
                 * The rest of the IE is coded as in [TS 44.018], Cell Description IE, not including IEI and length, if present
                 */
-               de_rr_cell_dsc(tvb, urr_ie_tree, ie_offset, ie_len, NULL, 0);
+               de_rr_cell_dsc(tvb, urr_ie_tree, pinfo, ie_offset, ie_len, NULL, 0);
                break;
        case 14:
                /*
@@ -1082,7 +1082,7 @@ dissect_uma_IE(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
                /* 11.2.15 Cell Identifier List
                 * The rest of the IE is coded as in [TS 48.008], not including IEI and length, if present
                 */
-               be_cell_id_list(tvb, urr_ie_tree, ie_offset, ie_len, NULL, 0);
+               be_cell_id_list(tvb, urr_ie_tree, pinfo, ie_offset, ie_len, NULL, 0);
                break;
        case 16:                /* TU3907 Timer */
                proto_tree_add_item(urr_ie_tree, hf_uma_urr_TU3907_timer, tvb, ie_offset, 2, FALSE);
@@ -1092,7 +1092,7 @@ dissect_uma_IE(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
                break;
        case 18:                /* 11.2.18 Routing Area Identification */
                /* The rest of the IE is coded as in [TS 24.008] not including IEI and length, if present.*/
-               de_gmm_rai(tvb, urr_ie_tree, ie_offset, ie_len, NULL, 0);
+               de_gmm_rai(tvb, urr_ie_tree, pinfo, ie_offset, ie_len, NULL, 0);
                break;
        case 19:                /* 11.2.19 GAN Band */
                proto_tree_add_item(urr_ie_tree, hf_uma_urr_gan_band, tvb, ie_offset, 1, FALSE);
@@ -1137,26 +1137,26 @@ dissect_uma_IE(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
                /* 11.2.27 Channel Mode
                 * The rest of the IE is coded as in [TS 44.018], not including IEI and length, if present
                 */
-               de_rr_ch_mode(tvb, urr_ie_tree, ie_offset, ie_len, NULL, 0);
+               de_rr_ch_mode(tvb, urr_ie_tree, pinfo, ie_offset, ie_len, NULL, 0);
                break;
        case 28:
                /* 11.2.28 Mobile Station Classmark 2
                 * The rest of the IE is coded as in [TS 24.008], not including IEI and length, if present
                 */
-               de_ms_cm_2(tvb, urr_ie_tree, ie_offset, ie_len, NULL, 0);
+               de_ms_cm_2(tvb, urr_ie_tree, pinfo, ie_offset, ie_len, NULL, 0);
                break;
        case 29:
                /* 11.2.29 RR Cause
                 * The rest of the IE is coded as in [TS 44.018], not including IEI and length, if present
                 */
-               de_rr_cause(tvb, urr_ie_tree, ie_offset, 1, NULL, 0);
+               de_rr_cause(tvb, urr_ie_tree, pinfo, ie_offset, 1, NULL, 0);
                break;
        case 30:
                /* 11.2.30 Cipher Mode Setting
                 * Note: The coding of fields SC and algorithm identifier is defined in [44.018]
                 * as part of the Cipher Mode Setting IE.
                 */
-               de_rr_cip_mode_set(tvb, urr_ie_tree, ie_offset, ie_len, NULL, 0);
+               de_rr_cip_mode_set(tvb, urr_ie_tree, pinfo, ie_offset, ie_len, NULL, 0);
                break;
        case 31:
                /* 11.2.31 GPRS Resumption
@@ -1187,19 +1187,19 @@ dissect_uma_IE(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
                 * [TS 44.018]:10.5.2.41a
                 * The TLLI is encoded as a binary number with a length of 4 octets. TLLI is defined in 3GPP TS 23.003
                 */
-               de_rr_tlli(tvb, urr_ie_tree, ie_offset, ie_len, NULL, 0);
+               de_rr_tlli(tvb, urr_ie_tree, pinfo, ie_offset, ie_len, NULL, 0);
                break;
        case 35:
                /* 11.2.35 Packet Flow Identifier
                 * The rest of the IE is coded as in [TS 24.008], not including IEI and length, if present.
                 */
-               de_sm_pflow_id(tvb, urr_ie_tree, ie_offset, ie_len, NULL, 0);
+               de_sm_pflow_id(tvb, urr_ie_tree, pinfo, ie_offset, ie_len, NULL, 0);
                break;
        case 36:
                /* 11.2.36 Suspension Cause
                 * The rest of the IE is coded as in [TS 44.018], not including IEI and length, if present.
                 */
-               de_rr_sus_cau(tvb, urr_ie_tree, ie_offset, ie_len, NULL, 0);
+               de_rr_sus_cau(tvb, urr_ie_tree, pinfo, ie_offset, ie_len, NULL, 0);
                break;
        case 37:                /* 11.2.37 TU3920 Timer */
                proto_tree_add_item(urr_ie_tree, hf_uma_urr_TU3920_timer, tvb, ie_offset, 2, FALSE);
@@ -1288,13 +1288,13 @@ dissect_uma_IE(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
                /* Multi-rate Configuration
                 * The rest of the IE is coded as in [TS 44.018], not including IEI and length, if present
                 */
-               de_rr_multirate_conf(tvb, urr_ie_tree, ie_offset, ie_len, NULL, 0);
+               de_rr_multirate_conf(tvb, urr_ie_tree, pinfo, ie_offset, ie_len, NULL, 0);
                break;
        case 56:
                /* 11.2.56 Mobile Station Classmark 3
                 * The rest of the IE is coded as in [TS 24.008], not including IEI and length, if present
                 */
-               de_ms_cm_3(tvb, urr_ie_tree, offset, ie_len, NULL, 0);
+               de_ms_cm_3(tvb, urr_ie_tree, pinfo, offset, ie_len, NULL, 0);
                break;
        case 57:
                /* 11.2.57 LLC-PDU
@@ -1303,12 +1303,9 @@ dissect_uma_IE(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
                proto_tree_add_item(urr_ie_tree, hf_uma_urr_LLC_PDU, tvb, ie_offset, ie_len, FALSE);
                llc_tvb = tvb_new_subset(tvb, ie_offset,ie_len, ie_len );
                  if (llc_handle) {
-                         if (check_col(pinfo->cinfo, COL_PROTOCOL)) {
-                                       col_append_str(pinfo->cinfo, COL_PROTOCOL, "/");
-                                       col_set_fence(pinfo->cinfo, COL_PROTOCOL);
-                         }
-
-                         call_dissector(llc_handle, llc_tvb, pinfo, urr_ie_tree);
+                       col_append_str(pinfo->cinfo, COL_PROTOCOL, "/");
+                       col_set_fence(pinfo->cinfo, COL_PROTOCOL);
+                       call_dissector(llc_handle, llc_tvb, pinfo, urr_ie_tree);
                  }else{
                          if (data_handle)
                                  call_dissector(data_handle, llc_tvb, pinfo, urr_ie_tree);
@@ -1375,7 +1372,7 @@ dissect_uma_IE(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
                /* 11.2.65 Classmark Enquiry Mask
                 * The rest of the IE is the Classmark Enquiry Mask coded as in [TS 44.018], not including IEI and length, if present
                 */
-               de_rr_cm_enq_mask(tvb, urr_ie_tree, offset, ie_len, NULL, 0);
+               de_rr_cm_enq_mask(tvb, urr_ie_tree, pinfo, offset, ie_len, NULL, 0);
                break;
        case 66:
                /* 11.2.66 UTRAN Cell Identifier List
@@ -1721,8 +1718,7 @@ dissect_uma(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                offset++;
                octet = tvb_get_guint8(tvb,offset);
                proto_tree_add_item(uma_tree, hf_uma_urr_msg_type, tvb, offset, 1, FALSE);
-               if (check_col(pinfo->cinfo, COL_INFO))
-                       col_add_str(pinfo->cinfo, COL_INFO, val_to_str_ext(octet, &uma_urr_msg_type_vals_ext, "Unknown URR (%u)"));
+               col_add_str(pinfo->cinfo, COL_INFO, val_to_str_ext(octet, &uma_urr_msg_type_vals_ext, "Unknown URR (%u)"));
                while ((msg_len + 1) > offset ){
                        offset++;
                        offset = dissect_uma_IE(tvb, pinfo, uma_tree, offset);
@@ -1732,10 +1728,8 @@ dissect_uma(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                offset++;
                octet = tvb_get_guint8(tvb,offset);
                proto_tree_add_item(uma_tree, hf_uma_urlc_msg_type, tvb, offset, 1, FALSE);
-               if (check_col(pinfo->cinfo, COL_INFO)){
-                       col_add_str(pinfo->cinfo, COL_INFO, val_to_str_ext(octet, &uma_urlc_msg_type_vals_ext, "Unknown URLC (%u)"));
-                       col_set_fence(pinfo->cinfo,COL_INFO);
-               }
+               col_add_str(pinfo->cinfo, COL_INFO, val_to_str_ext(octet, &uma_urlc_msg_type_vals_ext, "Unknown URLC (%u)"));
+               col_set_fence(pinfo->cinfo,COL_INFO);
                offset++;
                proto_tree_add_item(uma_tree, hf_uma_urlc_TLLI, tvb, offset, 4, FALSE);
                offset = offset + 3;
@@ -1785,10 +1779,8 @@ dissect_uma_urlc_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
        octet = tvb_get_guint8(tvb,offset);
        proto_tree_add_item(uma_tree, hf_uma_urlc_msg_type, tvb, offset, 1, FALSE);
-       if (check_col(pinfo->cinfo, COL_INFO)){
-               col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",val_to_str_ext(octet, &uma_urlc_msg_type_vals_ext, "Unknown URLC (%u)"));
-               col_set_fence(pinfo->cinfo,COL_INFO);
-       }
+       col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",val_to_str_ext(octet, &uma_urlc_msg_type_vals_ext, "Unknown URLC (%u)"));
+       col_set_fence(pinfo->cinfo,COL_INFO);
        msg_len = tvb_length_remaining(tvb,offset) - 1;
 
        switch  ( octet ){