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  guint8 occurrence[MAX_NUM_NODES];
74  guint32 num_nodes;
76 
79 
80 #if 0
81 #define SEQ_ANALYSIS_DEBUG(...) { \
82  char *SEQ_ANALYSIS_DEBUG_MSG = ws_strdup_printf(__VA_ARGS__); \
83  ws_warning("sequence analysis: %s:%d %s", G_STRFUNC, __LINE__, SEQ_ANALYSIS_DEBUG_MSG); \
84  g_free(SEQ_ANALYSIS_DEBUG_MSG); \
85 }
86 #else
87 #define SEQ_ANALYSIS_DEBUG()
88 #endif
89 
90 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);
91 
97 WS_DLL_PUBLIC const char* sequence_analysis_get_name(register_analysis_t* analysis);
98 
104 WS_DLL_PUBLIC const char* sequence_analysis_get_tap_listener_name(register_analysis_t* analysis);
105 
111 WS_DLL_PUBLIC const char* sequence_analysis_get_ui_name(register_analysis_t* analysis);
112 
118 WS_DLL_PUBLIC tap_packet_cb sequence_analysis_get_packet_func(register_analysis_t* analysis);
119 
125 WS_DLL_PUBLIC guint sequence_analysis_get_tap_flags(register_analysis_t* analysis);
126 
136 
143 
150 
156 WS_DLL_PUBLIC register_analysis_t* sequence_analysis_find_by_name(const char* name);
157 
163 WS_DLL_PUBLIC void sequence_analysis_table_iterate_tables(wmem_foreach_func func, gpointer user_data);
164 
169 
173 WS_DLL_PUBLIC void sequence_analysis_info_free(seq_analysis_info_t * sainfo);
174 
178 WS_DLL_PUBLIC void sequence_analysis_list_sort(seq_analysis_info_t *sainfo);
179 
184 WS_DLL_PUBLIC void sequence_analysis_list_free(seq_analysis_info_t *sainfo);
185 
191 WS_DLL_PUBLIC int sequence_analysis_get_nodes(seq_analysis_info_t *sainfo);
192 
197 WS_DLL_PUBLIC void sequence_analysis_free_nodes(seq_analysis_info_t *sainfo);
198 
199 
206 WS_DLL_PUBLIC void sequence_analysis_dump_to_file(FILE *of, seq_analysis_info_t *sainfo, unsigned int first_node);
207 
208 #ifdef __cplusplus
209 }
210 #endif /* __cplusplus */
211 
212 #endif /* __EPAN_SEQUENCE_ANALYSIS_H__ */
213 
214 /*
215  * Editor modelines
216  *
217  * Local Variables:
218  * c-basic-offset: 4
219  * tab-width: 8
220  * indent-tabs-mode: nil
221  * End:
222  *
223  * ex: set shiftwidth=4 tabstop=8 expandtab:
224  * :indentSize=4:tabSize=8:noTabs=true:
225  */
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:340
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:126
WS_DLL_PUBLIC void sequence_analysis_dump_to_file(FILE *of, seq_analysis_info_t *sainfo, unsigned int first_node)
Definition: sequence_analysis.c:431
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:353
WS_DLL_PUBLIC void sequence_analysis_list_sort(seq_analysis_info_t *sainfo)
Definition: sequence_analysis.c:227
WS_DLL_PUBLIC void sequence_analysis_use_col_info_as_label_comment(packet_info *pinfo, seq_analysis_item_t *sai)
Definition: sequence_analysis.c:135
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:234
WS_DLL_PUBLIC void sequence_analysis_info_free(seq_analysis_info_t *sainfo)
Definition: sequence_analysis.c:172
WS_DLL_PUBLIC seq_analysis_info_t * sequence_analysis_info_new(void)
Definition: sequence_analysis.c:162
Definition: address.h:56
Definition: packet_info.h:44
Definition: sequence_analysis.h:66
guint8 occurrence[MAX_NUM_NODES]
Definition: sequence_analysis.h:73
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:74
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