aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-lbm.h
diff options
context:
space:
mode:
authorDavid Ameiss <netshark@ameissnet.com>2014-07-10 10:11:23 -0500
committerAnders Broman <a.broman58@gmail.com>2014-07-18 05:35:09 +0000
commit7c3652df2e7d08656dd6f7913ac88030d96b8209 (patch)
treeab5d941571be9b17b1b539bde6c415b42ef3af7a /epan/dissectors/packet-lbm.h
parente95083d264624429cfbc29248c67ac5c528933f3 (diff)
Split LBMR tap into 5 separate taps. Make the associated tap data use fixed-length fields. The idea is to allow user-written tap
listeners easier access to the tap data. Also correct the conditions (in packet-lbmc.c) under which a subdissector would be called, if present. Change-Id: I5244cfbd17314058f7d3b9f42d647e0e6c375e14 Reviewed-on: https://code.wireshark.org/review/3007 Reviewed-by: Evan Huus <eapache@gmail.com> Petri-Dish: Anders Broman <a.broman58@gmail.com> Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-lbm.h')
-rw-r--r--epan/dissectors/packet-lbm.h99
1 files changed, 98 insertions, 1 deletions
diff --git a/epan/dissectors/packet-lbm.h b/epan/dissectors/packet-lbm.h
index cca7548207..62afd27ad6 100644
--- a/epan/dissectors/packet-lbm.h
+++ b/epan/dissectors/packet-lbm.h
@@ -28,12 +28,64 @@
/* A list of the taps etc. made available by these dissectors:
Taps:
lbm_stream
+ - A packet is queued for each UIM (unicast immediate message) LBMC message (or fragment)
+ - The data associated with each tap entry is described by lbm_uim_stream_tap_info_t
+ - A single packet may generate multiple tap entries (in the case that a single packet
+ contains multiple LBMC messages)
+ - An LBMC message that spans multiple packets will cause a single entry to be queued,
+ corresponding to the last packet spanned
lbm_uim
- lbm_lbmr
+ - A packet is queued for each complete (possibly reassembled) UIM message
+ - The data associated with each tap entry is described by lbm_uim_stream_info_t
+ - A single packet may generate multiple tap entries (in the case that a single packet
+ contains multiple complete UIM messages)
+ - An complete UIM message that spans multiple packets will cause a single entry to be queued,
+ corresponding to the last packet spanned
+ lbm_lbmr_topic_advertisement
+ - A packet is queued for each LBMR topic advertisement (TIR)
+ - The data associated with each tap entry is described by lbm_lbmr_topic_advertisement_tap_info_t
+ - A single LBMR message (which may span multiple IP frames, reassembled into a single UDP packet)
+ may generate multiple tap entries (in the case that a single LBMR message contains multiple topic
+ advertisements)
+ lbm_lbmr_topic_query
+ - A packet is queued for each LBMR topic query (TQR)
+ - The data associated with each tap entry is described by lbm_lbmr_topic_query_tap_info_t
+ - A single LBMR message (which may span multiple IP frames, reassembled into a single UDP packet)
+ may generate multiple tap entries (in the case that a single LBMR message contains multiple topic
+ queries)
+ lbm_lbmr_pattern_query
+ - A packet is queued for each LBMR pattern query (TQR specifying a pattern)
+ - The data associated with each tap entry is described by lbm_lbmr_pattern_query_tap_info_t
+ - A single LBMR message (which may span multiple IP frames, reassembled into a single UDP packet)
+ may generate multiple tap entries (in the case that a single LBMR message contains multiple pattern
+ queries)
+ lbm_lbmr_queue_advertisement
+ - A packet is queued for each LBMR queue advertisement (QIR)
+ - The data associated with each tap entry is described by lbm_lbmr_queue_advertisement_tap_info_t
+ - A single LBMR message (which may span multiple IP frames, reassembled into a single UDP packet)
+ may generate multiple tap entries (in the case that a single LBMR message contains multiple queue
+ advertisements)
+ lbm_lbmr_queue_query
+ - A packet is queued for each LBMR queue query (QQR)
+ - The data associated with each tap entry is described by lbm_lbmr_queue_query_tap_info_t
+ - A single LBMR message (which may span multiple IP frames, reassembled into a single UDP packet)
+ may generate multiple tap entries (in the case that a single LBMR message contains multiple queue
+ queries)
lbm_lbtrm
+ - A packet is queued for each LBTRM transport message
+ - The data associated with each tap entry is described by lbm_lbtrm_tap_info_t
+ - A single LBTRM transport message (which may span multiple IP frames, reassembled into a single UDP
+ packet) will generate a single tap entry
lbm_lbtru
+ - A packet is queued for each LBTRU transport message
+ - The data associated with each tap entry is described by lbm_lbtru_tap_info_t
+ - A single LBTRU transport message (which may span multiple IP frames, reassembled into a single UDP
+ packet) will generate a single tap entry
Heuristic subdissector tables:
lbm_msg_payload
+ - If the LBMC preference "Use heuristic sub-dissectors" is enabled, the dissector will call any dissector
+ registered in this table via heur_dissector_add(). This allows a customer plugin to dissect the
+ actual payload of their messages.
*/
#if defined(__FreeBSD__)
@@ -204,6 +256,51 @@ typedef struct
guint32 * sqns;
} lbm_lbtru_tap_info_t;
+typedef struct
+{
+ guint16 size;
+ guint8 topic_length;
+ guint8 source_length;
+ guint32 topic_index;
+ char topic[256];
+ char source[256];
+} lbm_lbmr_topic_advertisement_tap_info_t;
+
+typedef struct
+{
+ guint16 size;
+ guint8 topic_length;
+ char topic[256];
+} lbm_lbmr_topic_query_tap_info_t;
+
+typedef struct
+{
+ guint16 size;
+ guint8 type;
+ guint8 pattern_length;
+ char pattern[256];
+} lbm_lbmr_pattern_query_tap_info_t;
+
+#define LBMR_WILDCARD_PATTERN_TYPE_PCRE 1
+#define LBMR_WILDCARD_PATTERN_TYPE_REGEX 2
+
+typedef struct
+{
+ guint16 size;
+ guint16 port;
+ guint8 queue_length;
+ guint8 topic_length;
+ char queue[256];
+ char topic[256];
+} lbm_lbmr_queue_advertisement_tap_info_t;
+
+typedef struct
+{
+ guint16 size;
+ guint8 queue_length;
+ char queue[256];
+} lbm_lbmr_queue_query_tap_info_t;
+
#define LBM_TOPIC_OPT_EXFUNC_FFLAG_LJ 0x00000001
#define LBM_TOPIC_OPT_EXFUNC_FFLAG_UME 0x00000002
#define LBM_TOPIC_OPT_EXFUNC_FFLAG_UMQ 0x00000004