aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-rmt-common.h
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2013-05-24 17:06:23 +0000
committerMichael Mann <mmann78@netscape.net>2013-05-24 17:06:23 +0000
commitd12fc51afd1bca6c0b7b2858a18772b29f514c0c (patch)
tree5eb7bb6d3e41973905bbd8fb7dc50701336d1a3c /epan/dissectors/packet-rmt-common.h
parent7dddfb1784667e65616b02834469b834819161cb (diff)
Overhauled the RMT dissectors. Not sure each needs its own file, but since this involves multiple RFCs, they remain split out by that. More are now a "pure" dissector and not a "decoding function hook".
Some Notes: 1. Converted to "new style" dissectors with data being passed between dissectors 2. Combined header files into one since there wasn't much that should have really been in the header files. Implemented functionality is in c module of respective dissector. Not sure if LCT preferences should just be in the LCT dissector and not the RMT-ALC "parent", but kept for backwards compatibility. svn path=/trunk/; revision=49555
Diffstat (limited to 'epan/dissectors/packet-rmt-common.h')
-rw-r--r--epan/dissectors/packet-rmt-common.h53
1 files changed, 37 insertions, 16 deletions
diff --git a/epan/dissectors/packet-rmt-common.h b/epan/dissectors/packet-rmt-common.h
index 65e055129f..0aa7620e97 100644
--- a/epan/dissectors/packet-rmt-common.h
+++ b/epan/dissectors/packet-rmt-common.h
@@ -27,29 +27,50 @@
#ifndef __PACKET_RMT_COMMON__
#define __PACKET_RMT_COMMON__
-/* Type definitions */
-/* ================ */
+/* LCT preferences */
-/* Logical header extension representation */
-struct _ext
+#define LCT_PREFS_EXT_192_NONE 0
+#define LCT_PREFS_EXT_192_FLUTE 1
+
+#define LCT_PREFS_EXT_193_NONE 0
+#define LCT_PREFS_EXT_193_FLUTE 1
+
+
+extern const enum_val_t enum_lct_ext_192[];
+extern const enum_val_t enum_lct_ext_193[];
+
+/* String tables external references */
+extern const value_string string_fec_encoding_id[];
+
+
+/* Structures to exchange data between RMT dissectors */
+/* ============================= */
+typedef struct lct_data_exchange
+{
+ /* inputs */
+ gint ext_192;
+ gint ext_193;
+
+ /* outputs */
+ guint8 codepoint;
+ gboolean is_flute;
+
+} lct_data_exchange_t;
+
+typedef struct fec_data_exchange
{
- guint offset;
- guint length;
+ /* inputs */
+ guint8 encoding_id;
- guint8 het;
- guint8 hel;
+} fec_data_exchange_t;
- guint hec_offset;
- guint8 hec_size;
-};
/* Common RMT exported functions */
/* ============================= */
+extern int lct_ext_decode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, guint offset, guint offset_max, lct_data_exchange_t *data_exchange,
+ int hfext, int ettext);
+extern void fec_decode_ext_fti(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, int length, guint8 encoding_id);
-void rmt_ext_parse(GArray *a, tvbuff_t *tvb, guint *offset, guint offset_max);
-
-void rmt_ext_decode_default(struct _ext *e, tvbuff_t *tvb, proto_tree *tree, gint ett);
-void rmt_ext_decode_default_subtree(struct _ext *e, tvbuff_t *tvb, proto_tree *tree, gint ett);
-void rmt_ext_decode_default_header(struct _ext *e, tvbuff_t *tvb, proto_tree *tree);
+extern double rmt_decode_send_rate(guint16 send_rate );
#endif