From e502bbaafdacb0bd805dcdc1a98b6114032b29f8 Mon Sep 17 00:00:00 2001 From: Anders Broman Date: Wed, 22 Jun 2011 13:58:04 +0000 Subject: [PATCH] Add a dissector table for CDR:s svn path=/trunk/; revision=37751 --- epan/dissectors/packet-gtp.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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");