diff options
author | David Ameiss <netshark@ameissnet.com> | 2014-07-10 10:11:23 -0500 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2014-07-18 05:35:09 +0000 |
commit | 7c3652df2e7d08656dd6f7913ac88030d96b8209 (patch) | |
tree | ab5d941571be9b17b1b539bde6c415b42ef3af7a /epan/dissectors/packet-lbm.h | |
parent | e95083d264624429cfbc29248c67ac5c528933f3 (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.h | 99 |
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 |