aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-gtp.c
diff options
context:
space:
mode:
authoretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2011-06-22 13:58:04 +0000
committeretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2011-06-22 13:58:04 +0000
commita1b876d19ad1a189b817438b7baaa1866b4e5cb9 (patch)
treea1b8b868f9a5f02ecfbced6fcd4dfb8bb5159a50 /epan/dissectors/packet-gtp.c
parent1f937067f5057d5417b5ad59d28b203903019ec6 (diff)
Add a dissector table for CDR:s
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@37751 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-gtp.c')
-rw-r--r--epan/dissectors/packet-gtp.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/epan/dissectors/packet-gtp.c b/epan/dissectors/packet-gtp.c
index b6febad974..b328a5fd4e 100644
--- a/epan/dissectors/packet-gtp.c
+++ b/epan/dissectors/packet-gtp.c
@@ -64,6 +64,7 @@
static dissector_table_t ppp_subdissector_table;
static dissector_table_t gtp_priv_ext_dissector_table;
+static dissector_table_t gtp_cdr_fmt_dissector_table;
#define GTPv0_PORT 3386
#define GTPv1C_PORT 2123 /* 3G Control PDU */
@@ -6458,7 +6459,10 @@ static int decode_gtp_data_req(tvbuff_t * tvb, int offset, packet_info * pinfo _
/* XXX this is for release 6, may not work for higer releases */
if(format==1){
dissect_gprscdr_GPRSCallEventRecord_PDU(next_tvb, pinfo, cdr_dr_tree);
- }
+ }else{
+ /* Do we have a dissector regestering for this data format? */
+ dissector_try_uint(gtp_cdr_fmt_dissector_table, format, next_tvb, pinfo, cdr_dr_tree);
+ }
offset = offset + cdr_length;
}
@@ -7424,6 +7428,7 @@ void proto_register_gtp(void)
register_dissector("gtpprim", dissect_gtpprim, proto_gtp);
gtp_priv_ext_dissector_table = register_dissector_table("gtp.priv_ext", "GTP PRIVATE EXT", FT_UINT16, BASE_DEC);
+ gtp_cdr_fmt_dissector_table = register_dissector_table("gtp.cdr_fmt", "GTP DATA RECORD TYPE", FT_UINT16, BASE_DEC);
register_init_routine(gtp_reinit);
gtp_tap=register_tap("gtp");