Wireshark  4.3.0
The Wireshark network protocol analyzer
sequence_analysis.h
Go to the documentation of this file.
1 
19 #ifndef __EPAN_SEQUENCE_ANALYSIS_H__
20 #define __EPAN_SEQUENCE_ANALYSIS_H__
21 
22 #include "ws_symbol_export.h"
23 
24 #include <glib.h>
25 
26 #include "packet_info.h"
27 #include "tap.h"
28 #include "address.h"
29 #include "wsutil/file_util.h"
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif /* __cplusplus */
34 
35 #define MAX_NUM_NODES 40
36 
38 typedef enum _ga_info_type {
39  GA_INFO_TYPE_NONE=0,
40  GA_INFO_TYPE_RTP
42 
44 typedef struct _seq_analysis_item {
45  guint32 frame_number;
46  address src_addr;
47  guint16 port_src;
48  address dst_addr;
49  guint16 port_dst;
50  gchar *frame_label;
51  gchar *time_str;
52  gchar *comment;
53  guint16 conv_num;
54  unsigned fg_color;
55  unsigned bg_color;
56  gboolean has_color_filter;
57  gboolean display;
58  guint src_node;
59  guint dst_node;
60  guint16 line_style;
62  gpointer info_ptr;
64 
66 typedef struct _seq_analysis_info {
67  const char* name;
68  gboolean any_addr;
69  int nconv;
70  GQueue* items;
71  GHashTable *ht;
72  address nodes[MAX_NUM_NODES];
73  guint32 num_nodes;
75 
78 
79 #if 0
80 #define SEQ_ANALYSIS_DEBUG(...) { \
81  char *SEQ_ANALYSIS_DEBUG_MSG = ws_strdup_printf(__VA_ARGS__); \
82  ws_warning("sequence analysis: %s:%d %s", G_STRFUNC, __LINE__, SEQ_ANALYSIS_DEBUG_MSG); \
83  g_free(SEQ_ANALYSIS_DEBUG_MSG); \
84 }
85 #else
86 #define SEQ_ANALYSIS_DEBUG()
87 #endif
88 
89 WS_DLL_PUBLIC void register_seq_analysis(const char* name, const char* ui_name, const int proto_id, const char* tap_listener, guint tap_flags, tap_packet_cb tap_func);
90 
96 WS_DLL_PUBLIC const char* sequence_analysis_get_name(register_analysis_t* analysis);
97 
103 WS_DLL_PUBLIC const char* sequence_analysis_get_tap_listener_name(register_analysis_t* analysis);
104 
110 WS_DLL_PUBLIC const char* sequence_analysis_get_ui_name(register_analysis_t* analysis);
111 
117 WS_DLL_PUBLIC tap_packet_cb sequence_analysis_get_packet_func(register_analysis_t* analysis);
118 
124 WS_DLL_PUBLIC guint sequence_analysis_get_tap_flags(register_analysis_t* analysis);
125 
135 
142 
149 
155 WS_DLL_PUBLIC register_analysis_t* sequence_analysis_find_by_name(const char* name);
156 
162 WS_DLL_PUBLIC void sequence_analysis_table_iterate_tables(wmem_foreach_func func, gpointer user_data);
163 
168 
172 WS_DLL_PUBLIC void sequence_analysis_info_free(seq_analysis_info_t * sainfo);
173 
177 WS_DLL_PUBLIC void sequence_analysis_list_sort(seq_analysis_info_t *sainfo);
178 
183 WS_DLL_PUBLIC void sequence_analysis_list_free(seq_analysis_info_t *sainfo);
184 
190 WS_DLL_PUBLIC int sequence_analysis_get_nodes(seq_analysis_info_t *sainfo);
191 
196 WS_DLL_PUBLIC void sequence_analysis_free_nodes(seq_analysis_info_t *sainfo);
197 
198 
205 WS_DLL_PUBLIC void sequence_analysis_dump_to_file(FILE *of, seq_analysis_info_t *sainfo, unsigned int first_node);
206 
207 #ifdef __cplusplus
208 }
209 #endif /* __cplusplus */
210 
211 #endif /* __EPAN_SEQUENCE_ANALYSIS_H__ */
212 
213 /*
214  * Editor modelines
215  *
216  * Local Variables:
217  * c-basic-offset: 4
218  * tab-width: 8
219  * indent-tabs-mode: nil
220  * End:
221  *
222  * ex: set shiftwidth=4 tabstop=8 expandtab:
223  * :indentSize=4:tabSize=8:noTabs=true:
224  */
bool(* wmem_foreach_func)(const void *key, void *value, void *userdata)
Definition: wmem_tree.h:220
WS_DLL_PUBLIC int sequence_analysis_get_nodes(seq_analysis_info_t *sainfo)
Definition: sequence_analysis.c:295
WS_DLL_PUBLIC const char * sequence_analysis_get_tap_listener_name(register_analysis_t *analysis)
Definition: sequence_analysis.c:72
WS_DLL_PUBLIC seq_analysis_item_t * sequence_analysis_create_sai_with_addresses(packet_info *pinfo, seq_analysis_info_t *sainfo)
Definition: sequence_analysis.c:98
WS_DLL_PUBLIC guint sequence_analysis_get_tap_flags(register_analysis_t *analysis)
Definition: sequence_analysis.c:82
enum _ga_info_type ga_info_type
WS_DLL_PUBLIC void sequence_analysis_table_iterate_tables(wmem_foreach_func func, gpointer user_data)
Definition: sequence_analysis.c:93
struct _seq_analysis_item seq_analysis_item_t
WS_DLL_PUBLIC void sequence_analysis_use_color_filter(packet_info *pinfo, seq_analysis_item_t *sai)
Definition: sequence_analysis.c:127
WS_DLL_PUBLIC void sequence_analysis_dump_to_file(FILE *of, seq_analysis_info_t *sainfo, unsigned int first_node)
Definition: sequence_analysis.c:386
WS_DLL_PUBLIC const char * sequence_analysis_get_name(register_analysis_t *analysis)
Definition: sequence_analysis.c:62
struct _seq_analysis_info seq_analysis_info_t
_ga_info_type
Definition: sequence_analysis.h:38
WS_DLL_PUBLIC tap_packet_cb sequence_analysis_get_packet_func(register_analysis_t *analysis)
Definition: sequence_analysis.c:77
WS_DLL_PUBLIC void sequence_analysis_free_nodes(seq_analysis_info_t *sainfo)
Definition: sequence_analysis.c:308
WS_DLL_PUBLIC void sequence_analysis_list_sort(seq_analysis_info_t *sainfo)
Definition: sequence_analysis.c:228
WS_DLL_PUBLIC void sequence_analysis_use_col_info_as_label_comment(packet_info *pinfo, seq_analysis_item_t *sai)
Definition: sequence_analysis.c:136
WS_DLL_PUBLIC const char * sequence_analysis_get_ui_name(register_analysis_t *analysis)
Definition: sequence_analysis.c:67
WS_DLL_PUBLIC register_analysis_t * sequence_analysis_find_by_name(const char *name)
Definition: sequence_analysis.c:88
WS_DLL_PUBLIC void sequence_analysis_list_free(seq_analysis_info_t *sainfo)
Definition: sequence_analysis.c:235
WS_DLL_PUBLIC void sequence_analysis_info_free(seq_analysis_info_t *sainfo)
Definition: sequence_analysis.c:173
WS_DLL_PUBLIC seq_analysis_info_t * sequence_analysis_info_new(void)
Definition: sequence_analysis.c:163
Definition: address.h:55
Definition: packet_info.h:44
Definition: sequence_analysis.h:66
GHashTable * ht
Definition: sequence_analysis.h:71
gboolean any_addr
Definition: sequence_analysis.h:68
address nodes[MAX_NUM_NODES]
Definition: sequence_analysis.h:72
guint32 num_nodes
Definition: sequence_analysis.h:73
const char * name
Definition: sequence_analysis.h:67
int nconv
Definition: sequence_analysis.h:69
GQueue * items
Definition: sequence_analysis.h:70
Definition: sequence_analysis.h:44
guint16 conv_num
Definition: sequence_analysis.h:53
guint16 line_style
Definition: sequence_analysis.h:60
gchar * frame_label
Definition: sequence_analysis.h:50
unsigned bg_color
Definition: sequence_analysis.h:55
gchar * time_str
Definition: sequence_analysis.h:51
gchar * comment
Definition: sequence_analysis.h:52
guint src_node
Definition: sequence_analysis.h:58
gboolean has_color_filter
Definition: sequence_analysis.h:56
gpointer info_ptr
Definition: sequence_analysis.h:62
unsigned fg_color
Definition: sequence_analysis.h:54
ga_info_type info_type
Definition: sequence_analysis.h:61
guint dst_node
Definition: sequence_analysis.h:59
gboolean display
Definition: sequence_analysis.h:57
Definition: sequence_analysis.c:26