aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.win323
-rw-r--r--epan/dissectors/packet-gtp.c30
2 files changed, 25 insertions, 8 deletions
diff --git a/README.win32 b/README.win32
index caf068ce0f..9084b91f7e 100644
--- a/README.win32
+++ b/README.win32
@@ -381,6 +381,9 @@ Cygwin package:
After installing them, you will probably have to modify the config.nmake
file to specify where the Cygwin binaries are installed.
+Note that installing cygwin with the "Default Text File Type" set to DOS
+may break the compilation because all the required tools may not be found.
+Set this parameter to UNIX instead.
Python for Win32 is available from:
diff --git a/epan/dissectors/packet-gtp.c b/epan/dissectors/packet-gtp.c
index a0d872bd81..bd6a614e68 100644
--- a/epan/dissectors/packet-gtp.c
+++ b/epan/dissectors/packet-gtp.c
@@ -205,6 +205,7 @@ static gint ett_gtp_data_resp = -1;
static gint ett_gtp_priv_ext = -1;
static gboolean gtp_tpdu = TRUE;
+static gboolean gtp_over_tcp = TRUE;
static gboolean gtp_etsi_order = FALSE;
static int gtpv0_port = 0;
static int gtpv1c_port = 0;
@@ -4553,11 +4554,17 @@ proto_register_gtp(void)
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_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_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 fo rbackward compatibility
+ */
+ prefs_register_bool_preference(gtp_module, "dissect_gtp_over_tcp", "Dissect GTP over TCP", "Dissect GTP over TCP", &gtp_over_tcp);
register_dissector("gtp", dissect_gtp, proto_gtp);
}
@@ -4574,11 +4581,15 @@ proto_reg_handoff_gtp(void)
Initialized = TRUE;
} else {
dissector_delete ("udp.port", gtpv0_port, gtp_handle);
- dissector_delete ("tcp.port", gtpv0_port, gtp_handle);
dissector_delete ("udp.port", gtpv1c_port, gtp_handle);
- dissector_delete ("tcp.port", gtpv1c_port, gtp_handle);
dissector_delete ("udp.port", gtpv1u_port, gtp_handle);
- dissector_delete ("tcp.port", gtpv1u_port, gtp_handle);
+
+ 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;
@@ -4586,14 +4597,17 @@ proto_reg_handoff_gtp(void)
gtpv1u_port = g_gtpv1u_port;
dissector_add ("udp.port", g_gtpv0_port, gtp_handle);
- dissector_add ("tcp.port", g_gtpv0_port, gtp_handle);
dissector_add ("udp.port", g_gtpv1c_port, gtp_handle);
- dissector_add ("tcp.port", g_gtpv1c_port, gtp_handle);
dissector_add ("udp.port", g_gtpv1u_port, gtp_handle);
- dissector_add ("tcp.port", g_gtpv1u_port, gtp_handle);
-
+
+ if ( 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");
+ ipv6_handle = find_dissector("ipv6");
ppp_handle = find_dissector("ppp");
data_handle = find_dissector("data");
gtpcdr_handle = find_dissector("gtpcdr");