12#ifndef __CONVERSATION_TABLE_H__
13#define __CONVERSATION_TABLE_H__
41#define CONV_ID_UNSET UINT32_MAX
61 CONV_DIR_A_TO_FROM_ANY,
64 CONV_DIR_ANY_TO_FROM_B,
102typedef const char* (*conv_get_filter_type)(
struct _conversation_item_t* item, conv_filter_type_e filter);
105 conv_get_filter_type get_filter_type;
109typedef const char* (*endpoint_get_filter_type)(
struct _endpoint_item_t* item, conv_filter_type_e filter_type);
112 endpoint_get_filter_type get_filter_type;
119#define CONV_FILTER_INVALID "INVALID"
123typedef void (*conv_gui_init_cb)(
struct register_ct* ct,
const char *filter);
125typedef void (*endpoint_gui_init_cb)(
struct register_ct* ct,
const char *filter);
194#define ENDPOINT_TAP_PREFIX "endpoints"
207WS_DLL_PUBLIC
void register_conversation_table(
const int proto_id,
bool hide_ports, tap_packet_cb conv_packet_func, tap_packet_cb endpoint_packet_func);
239WS_DLL_PUBLIC tap_packet_cb get_hostlist_packet_func(
register_ct_t* ct);
267WS_DLL_PUBLIC
void hostlist_table_set_gui_info(endpoint_gui_init_cb init_cb);
294WS_DLL_PUBLIC
void reset_hostlist_table_data(
conv_hash_t *ch);
312WS_DLL_PUBLIC
void dissector_hostlist_init(
const char *opt_arg,
void* userdata);
365WS_DLL_PUBLIC
char *get_hostlist_filter(
endpoint_item_t *endpoint_item);
382 uint32_t src_port, uint32_t dst_port,
int num_frames,
int num_bytes,
nstime_t *ts,
nstime_t *abs_ts,
404 uint32_t dst_port,
conv_id_t conv_id,
int num_frames,
int num_bytes,
406 conversation_type ctype);
414 uint32_t dst_port,
conv_id_t conv_id,
int num_frames,
int num_bytes,
416 conversation_type ctype, uint32_t frameid,
int (*proto_conv_cb)(
conversation_t *));
424 uint32_t dst_port,
conv_id_t conv_id,
int num_frames,
int num_bytes,
426 conversation_type ctype);
440 uint32_t port,
bool sender,
int num_frames,
int num_bytes,
et_dissector_info_t *et_info, endpoint_type etype);
447 uint32_t port,
bool sender,
int num_frames,
int num_bytes,
et_dissector_info_t *et_info, endpoint_type etype);
452 uint32_t port,
bool sender,
int num_frames,
int num_bytes,
et_dissector_info_t *et_info, endpoint_type etype);
WS_DLL_PUBLIC void add_endpoint_table_data(conv_hash_t *ch, const address *addr, uint32_t port, bool sender, int num_frames, int num_bytes, et_dissector_info_t *et_info, endpoint_type etype)
Definition conversation_table.c:951
WS_DLL_PUBLIC char * get_endpoint_filter(endpoint_item_t *endpoint_item)
Definition conversation_table.c:613
WS_DLL_PUBLIC void add_conversation_table_data_ipv4_subnet(conv_hash_t *ch, const address *src, const address *dst, uint32_t src_port, uint32_t dst_port, conv_id_t conv_id, int num_frames, int num_bytes, nstime_t *ts, nstime_t *abs_ts, ct_dissector_info_t *ct_info, conversation_type ctype)
Definition conversation_table.c:855
WS_DLL_PUBLIC char * get_endpoint_port(wmem_allocator_t *allocator, endpoint_item_t *item, bool resolve_names)
Definition conversation_table.c:369
WS_DLL_PUBLIC bool get_conversation_hide_ports(register_ct_t *ct)
Definition conversation_table.c:33
WS_DLL_PUBLIC conv_item_t * add_conversation_table_data_with_conv_id(conv_hash_t *ch, const address *src, const address *dst, uint32_t src_port, uint32_t dst_port, conv_id_t conv_id, int num_frames, int num_bytes, nstime_t *ts, nstime_t *abs_ts, ct_dissector_info_t *ct_info, conversation_type ctype)
Definition conversation_table.c:669
struct _conversation_extension_tcp_t conv_extension_tcp_t
WS_DLL_PUBLIC char * get_conversation_port(wmem_allocator_t *allocator, uint32_t port, conversation_type ctype, bool resolve_names)
Definition conversation_table.c:350
WS_DLL_PUBLIC register_ct_t * get_conversation_by_proto_id(int proto_id)
Definition conversation_table.c:133
WS_DLL_PUBLIC int get_conversation_proto_id(register_ct_t *ct)
Definition conversation_table.c:38
WS_DLL_PUBLIC void dissector_endpoint_init(const char *opt_arg, void *userdata)
Definition conversation_table.c:116
struct _conversation_item_t conv_item_t
WS_DLL_PUBLIC tap_packet_cb get_conversation_packet_func(register_ct_t *ct)
Definition conversation_table.c:46
WS_DLL_PUBLIC void conversation_table_iterate_tables(wmem_foreach_func func, void *user_data)
Definition conversation_table.c:217
WS_DLL_PUBLIC unsigned conversation_table_get_num(void)
Definition conversation_table.c:222
void conversation_table_init(void)
Definition conversation_table.c:138
struct _conversation_key_t conv_key_t
WS_DLL_PUBLIC tap_packet_cb get_endpoint_packet_func(register_ct_t *ct)
Definition conversation_table.c:51
WS_DLL_PUBLIC char * get_conversation_filter(conv_item_t *conv_item, conv_direction_e direction)
Definition conversation_table.c:437
uint32_t conv_id_t
Definition conversation_table.h:40
WS_DLL_PUBLIC char * get_conversation_address(wmem_allocator_t *allocator, address *addr, bool resolve_names)
Definition conversation_table.c:341
WS_DLL_PUBLIC void add_conversation_table_data(conv_hash_t *ch, const address *src, const address *dst, uint32_t src_port, uint32_t dst_port, int num_frames, int num_bytes, nstime_t *ts, nstime_t *abs_ts, ct_dissector_info_t *ct_info, conversation_type ctype)
Definition conversation_table.c:662
WS_DLL_PUBLIC void reset_endpoint_table_data(conv_hash_t *ch)
Definition conversation_table.c:311
WS_DLL_PUBLIC void register_conversation_table(const int proto_id, bool hide_ports, tap_packet_cb conv_packet_func, tap_packet_cb endpoint_packet_func)
Definition conversation_table.c:144
struct _endpoint_item_t endpoint_item_t
WS_DLL_PUBLIC void add_conversation_table_data_extended(conv_hash_t *ch, const address *src, const address *dst, uint32_t src_port, uint32_t dst_port, conv_id_t conv_id, int num_frames, int num_bytes, nstime_t *ts, nstime_t *abs_ts, ct_dissector_info_t *ct_info, conversation_type ctype, uint32_t frameid, int(*proto_conv_cb)(conversation_t *))
Definition conversation_table.c:813
WS_DLL_PUBLIC void endpoint_table_set_gui_info(endpoint_gui_init_cb init_cb)
Definition conversation_table.c:206
WS_DLL_PUBLIC void conversation_table_set_gui_info(conv_gui_init_cb init_cb)
Definition conversation_table.c:182
WS_DLL_PUBLIC void add_endpoint_table_data_ipv4_subnet(conv_hash_t *ch, const address *addr, uint32_t port, bool sender, int num_frames, int num_bytes, et_dissector_info_t *et_info, endpoint_type etype)
Definition conversation_table.c:1036
struct _conversation_hash_t conv_hash_t
WS_DLL_PUBLIC void reset_conversation_table_data(conv_hash_t *ch)
Definition conversation_table.c:286
WS_DLL_PUBLIC void dissector_conversation_init(const char *opt_arg, void *userdata)
Definition conversation_table.c:86
bool(* wmem_foreach_func)(const void *key, void *value, void *userdata)
Function type for processing one node of a tree during a traversal.
Definition wmem_tree.h:389
Definition conversation_table.h:135
uint64_t flows
Definition conversation_table.h:136
Definition conversation_table.h:72
GArray * conv_array
Definition conversation_table.h:74
void * user_data
Definition conversation_table.h:75
GHashTable * hashtable
Definition conversation_table.h:73
unsigned flags
Definition conversation_table.h:76
Definition conversation_table.h:140
conversation_type ctype
Definition conversation_table.h:144
nstime_t start_time
Definition conversation_table.h:159
uint64_t tx_bytes
Definition conversation_table.h:152
conv_id_t conv_id
Definition conversation_table.h:147
address src_address
Definition conversation_table.h:142
nstime_t start_abs_time
Definition conversation_table.h:161
uint64_t tx_frames_total
Definition conversation_table.h:155
uint64_t rx_frames_total
Definition conversation_table.h:154
bool filtered
Definition conversation_table.h:163
uint64_t rx_frames
Definition conversation_table.h:149
ct_dissector_info_t * dissector_info
Definition conversation_table.h:141
uint64_t tx_bytes_total
Definition conversation_table.h:157
address dst_address
Definition conversation_table.h:143
uint32_t dst_port
Definition conversation_table.h:146
uint32_t src_port
Definition conversation_table.h:145
uint64_t rx_bytes
Definition conversation_table.h:151
uint64_t rx_bytes_total
Definition conversation_table.h:156
uint64_t tx_frames
Definition conversation_table.h:150
nstime_t stop_time
Definition conversation_table.h:160
conv_extension_tcp_t ext_tcp
Definition conversation_table.h:165
Definition conversation_table.h:80
Definition conversation_table.h:104
Definition conversation_table.h:169
uint64_t rx_frames_total
Definition conversation_table.h:180
bool modified
Definition conversation_table.h:185
address myaddress
Definition conversation_table.h:171
uint64_t rx_frames
Definition conversation_table.h:175
uint64_t rx_bytes
Definition conversation_table.h:177
uint64_t tx_bytes
Definition conversation_table.h:178
et_dissector_info_t * dissector_info
Definition conversation_table.h:170
endpoint_type etype
Definition conversation_table.h:172
uint64_t tx_bytes_total
Definition conversation_table.h:183
uint64_t rx_bytes_total
Definition conversation_table.h:182
uint64_t tx_frames
Definition conversation_table.h:176
bool filtered
Definition conversation_table.h:186
uint64_t tx_frames_total
Definition conversation_table.h:181
uint32_t port
Definition conversation_table.h:173
Definition conversation_table.h:111
Internal memory allocator interface used by the wmem subsystem.
Definition wmem_allocator.h:34
Definition conversation.h:230
Definition conversation_table.h:88
Definition conversation_table.c:24