aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-gtp.c
diff options
context:
space:
mode:
authorBill Meier <wmeier@newsguy.com>2008-09-02 21:40:46 +0000
committerBill Meier <wmeier@newsguy.com>2008-09-02 21:40:46 +0000
commit8d9c5d9b2b006d58f493f52a3fb9e25ae70d61ac (patch)
treecb44013088b9a0a506145cf3eec1872a405ef71f /epan/dissectors/packet-gtp.c
parent80b87dfaf36ea8cf8e937ea56c4bdff2c5cdc132 (diff)
Cleanup related to prefs & proto_reg_handoff
svn path=/trunk/; revision=26124
Diffstat (limited to 'epan/dissectors/packet-gtp.c')
-rw-r--r--epan/dissectors/packet-gtp.c65
1 files changed, 31 insertions, 34 deletions
diff --git a/epan/dissectors/packet-gtp.c b/epan/dissectors/packet-gtp.c
index 8e165720e6..7dadd71d6d 100644
--- a/epan/dissectors/packet-gtp.c
+++ b/epan/dissectors/packet-gtp.c
@@ -69,6 +69,7 @@ static dissector_table_t ppp_subdissector_table;
#define GTP_OPTIONAL 2
#define GTP_CONDITIONAL 4
+static gboolean g_gtp_over_tcp = TRUE;
static guint g_gtpv0_port = GTPv0_PORT;
static guint g_gtpv1c_port = GTPv1C_PORT;
static guint g_gtpv1u_port = GTPv1U_PORT;
@@ -287,12 +288,8 @@ static gint ett_gtp_ext_ps_handover_xid = -1;
static gint ett_gtp_target_id = -1;
static gint ett_gtp_utran_cont = -1;
-static gboolean gtp_tpdu = TRUE;
-static gboolean gtp_over_tcp = TRUE;
-static gboolean gtp_etsi_order = FALSE;
-static guint gtpv0_port = 0;
-static guint gtpv1c_port = 0;
-static guint gtpv1u_port = 0;
+static gboolean g_gtp_tpdu = TRUE;
+static gboolean g_gtp_etsi_order = FALSE;
/* Definition of flags masks */
#define GTP_VER_MASK 0xE0
@@ -6062,7 +6059,7 @@ dissect_gtp (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
else
ext_hdr_val = tvb_get_guint8 (tvb, offset);
- if (gtp_etsi_order) {
+ if (g_gtp_etsi_order) {
checked_field = check_field_presence (gtp_hdr.message, ext_hdr_val , (int *)&mandatory);
switch (checked_field) {
case -2: proto_tree_add_text (gtp_tree, tvb, 0, 0, "[WARNING] message not found");
@@ -6084,7 +6081,7 @@ dissect_gtp (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
}
- if ((gtp_hdr.message == GTP_MSG_TPDU) && gtp_tpdu) {
+ if ((gtp_hdr.message == GTP_MSG_TPDU) && g_gtp_tpdu) {
if (gtp_prime)
offset = 6;
@@ -6495,18 +6492,18 @@ proto_register_gtp(void)
prefs_register_uint_preference(gtp_module, "v0_port", "GTPv0 port", "GTPv0 port (default 3386)", 10, &g_gtpv0_port);
prefs_register_uint_preference(gtp_module, "v1c_port", "GTPv1 control plane (GTP-C) port", "GTPv1 control plane port (default 2123)", 10, &g_gtpv1c_port);
prefs_register_uint_preference(gtp_module, "v1u_port", "GTPv1 user plane (GTP-U) port", "GTPv1 user plane port (default 2152)", 10, &g_gtpv1u_port);
- prefs_register_bool_preference(gtp_module, "dissect_tpdu", "Dissect T-PDU", "Dissect T-PDU", &gtp_tpdu);
+ prefs_register_bool_preference(gtp_module, "dissect_tpdu", "Dissect T-PDU", "Dissect T-PDU", &g_gtp_tpdu);
prefs_register_obsolete_preference (gtp_module, "v0_dissect_cdr_as");
prefs_register_obsolete_preference (gtp_module, "v0_check_etsi");
prefs_register_obsolete_preference (gtp_module, "v1_check_etsi");
- prefs_register_bool_preference (gtp_module, "check_etsi", "Compare GTP order with ETSI", "GTP ETSI order", &gtp_etsi_order);
+ prefs_register_bool_preference (gtp_module, "check_etsi", "Compare GTP order with ETSI", "GTP ETSI order", &g_gtp_etsi_order);
prefs_register_obsolete_preference(gtp_module, "ppp_reorder");
/* This preference can be used to disable the dissection of GTP over TCP. Most of the Wireless operators uses GTP over UDP.
* The preference is set to TRUE by default forbackward compatibility
*/
- prefs_register_bool_preference(gtp_module, "dissect_gtp_over_tcp", "Dissect GTP over TCP", "Dissect GTP over TCP", &gtp_over_tcp);
+ prefs_register_bool_preference(gtp_module, "dissect_gtp_over_tcp", "Dissect GTP over TCP", "Dissect GTP over TCP", &g_gtp_over_tcp);
register_dissector("gtp", dissect_gtp, proto_gtp);
}
@@ -6514,9 +6511,12 @@ proto_register_gtp(void)
void
proto_reg_handoff_gtp(void)
{
- static int Initialized = FALSE;
+ static gboolean Initialized = FALSE;
static dissector_handle_t gtp_handle;
-
+ static gboolean gtp_over_tcp;
+ static guint gtpv0_port;
+ static guint gtpv1c_port;
+ static guint gtpv1u_port;
if (!Initialized) {
gtp_handle = find_dissector("gtp");
@@ -6527,47 +6527,44 @@ proto_reg_handoff_gtp(void)
radius_register_avp_dissector(VENDOR_THE3GPP,21,dissect_radius_rat_type);
radius_register_avp_dissector(VENDOR_THE3GPP,22,dissect_radius_user_loc);
+ ip_handle = find_dissector("ip");
+ ipv6_handle = find_dissector("ipv6");
+ ppp_handle = find_dissector("ppp");
+ data_handle = find_dissector("data");
+ gtpcdr_handle = find_dissector("gtpcdr");
+ sndcpxid_handle = find_dissector("sndcpxid");
+ bssap_pdu_type_table = find_dissector_table("bssap.pdu_type");
+ /* AVP Code: 904 MBMS-Session-Duration */
+ dissector_add("diameter.3gpp", 904, new_create_dissector_handle(dissect_gtp_mbms_ses_dur, proto_gtp));
+ /* AVP Code: 911 MBMS-Time-To-Data-Transfer */
+ dissector_add("diameter.3gpp", 911, new_create_dissector_handle(dissect_gtp_mbms_time_to_data_tr, proto_gtp));
+
Initialized = TRUE;
} else {
dissector_delete ("udp.port", gtpv0_port, gtp_handle);
dissector_delete ("udp.port", gtpv1c_port, gtp_handle);
dissector_delete ("udp.port", gtpv1u_port, gtp_handle);
- if ( !gtp_over_tcp ) {
+ if ( gtp_over_tcp ) {
dissector_delete ("tcp.port", gtpv0_port, gtp_handle);
dissector_delete ("tcp.port", gtpv1c_port, gtp_handle);
dissector_delete ("tcp.port", gtpv1u_port, gtp_handle);
}
-
}
- gtpv0_port = g_gtpv0_port;
- gtpv1c_port = g_gtpv1c_port;
- gtpv1u_port = g_gtpv1u_port;
+ gtp_over_tcp = g_gtp_over_tcp;
+ gtpv0_port = g_gtpv0_port;
+ gtpv1c_port = g_gtpv1c_port;
+ gtpv1u_port = g_gtpv1u_port;
dissector_add ("udp.port", g_gtpv0_port, gtp_handle);
dissector_add ("udp.port", g_gtpv1c_port, gtp_handle);
dissector_add ("udp.port", g_gtpv1u_port, gtp_handle);
- if ( gtp_over_tcp ) {
+ if ( g_gtp_over_tcp ) {
dissector_add ("tcp.port", g_gtpv0_port, gtp_handle);
dissector_add ("tcp.port", g_gtpv1c_port, gtp_handle);
dissector_add ("tcp.port", g_gtpv1u_port, gtp_handle);
}
-
- ip_handle = find_dissector("ip");
- ipv6_handle = find_dissector("ipv6");
- ppp_handle = find_dissector("ppp");
- data_handle = find_dissector("data");
- gtpcdr_handle = find_dissector("gtpcdr");
- sndcpxid_handle = find_dissector("sndcpxid");
- bssap_pdu_type_table = find_dissector_table("bssap.pdu_type");
- /* AVP Code: 904 MBMS-Session-Duration */
- dissector_add("diameter.3gpp", 904, new_create_dissector_handle(dissect_gtp_mbms_ses_dur, proto_gtp));
- /* AVP Code: 911 MBMS-Time-To-Data-Transfer */
- dissector_add("diameter.3gpp", 911, new_create_dissector_handle(dissect_gtp_mbms_time_to_data_tr, proto_gtp));
-
-
-
}