11#ifndef __CONVERSATION_H__
12#define __CONVERSATION_H__
14#include "ws_symbol_export.h"
43#define NO_PORT2_FORCE 0x04
44#define CONVERSATION_TEMPLATE 0x08
51#define NO_MASK_B 0xFFFF0000
52#define NO_ADDR_B 0x00010000
53#define NO_PORT_B 0x00020000
54#define NO_PORT_X 0x00040000
55#define NO_ANC 0x00080000
58#define USE_LAST_ENDPOINT 0x08
81 CONVERSATION_BLUETOOTH,
84 CONVERSATION_ISO14443,
95 CONVERSATION_IWARP_MPA,
100 CONVERSATION_NVME_MI,
112 CONVERSATION_VSPC_VMOTION,
113 CONVERSATION_OPENVPN,
126#define ENDPOINT_NONE CONVERSATION_NONE
127#define ENDPOINT_SCTP CONVERSATION_SCTP
128#define ENDPOINT_TCP CONVERSATION_TCP
129#define ENDPOINT_UDP CONVERSATION_UDP
130#define ENDPOINT_DCCP CONVERSATION_DCCP
131#define ENDPOINT_IPX CONVERSATION_IPX
132#define ENDPOINT_NCP CONVERSATION_NCP
133#define ENDPOINT_EXCHG CONVERSATION_EXCHG
134#define ENDPOINT_DDP CONVERSATION_DDP
135#define ENDPOINT_SBCCS CONVERSATION_SBCCS
136#define ENDPOINT_IDP CONVERSATION_IDP
137#define ENDPOINT_TIPC CONVERSATION_TIPC
138#define ENDPOINT_USB CONVERSATION_USB
139#define ENDPOINT_I2C CONVERSATION_I2C
140#define ENDPOINT_IBQP CONVERSATION_IBQP
141#define ENDPOINT_BLUETOOTH CONVERSATION_BLUETOOTH
142#define ENDPOINT_TDMOP CONVERSATION_TDMOP
143#define ENDPOINT_DVBCI CONVERSATION_DVBCI
144#define ENDPOINT_ISO14443 CONVERSATION_ISO14443
145#define ENDPOINT_ISDN CONVERSATION_ISDN
146#define ENDPOINT_H223 CONVERSATION_H223
147#define ENDPOINT_X25 CONVERSATION_X25
148#define ENDPOINT_IAX2 CONVERSATION_IAX2
149#define ENDPOINT_DLCI CONVERSATION_DLCI
150#define ENDPOINT_ISUP CONVERSATION_ISUP
151#define ENDPOINT_BICC CONVERSATION_BICC
152#define ENDPOINT_GSMTAP CONVERSATION_GSMTAP
153#define ENDPOINT_IUUP CONVERSATION_IUUP
154#define ENDPOINT_DVBBBF CONVERSATION_DVBBBF
155#define ENDPOINT_IWARP_MPA CONVERSATION_IWARP_MPA
156#define ENDPOINT_BT_UTP CONVERSATION_BT_UTP
157#define ENDPOINT_LOG CONVERSATION_LOG
158#define ENDPOINT_MCTP CONVERSATION_MCTP
159#define ENDPOINT_NVME_MI CONVERSATION_NVME_MI
160#define ENDPOINT_SNMP CONVERSATION_SNMP
162typedef conversation_type endpoint_type;
168 CE_CONVERSATION_TYPE,
203 conversation_type conversation_type_val;
205 unsigned int port_val;
207 unsigned int uint_val;
315 const conversation_type ctype,
const uint32_t port1,
const uint32_t port2,
const unsigned options);
317WS_DLL_PUBLIC WS_RETNONNULL
conversation_t *conversation_new_by_id(
const uint32_t setup_frame,
const conversation_type ctype,
const uint32_t
id);
322WS_DLL_PUBLIC WS_RETNONNULL
conversation_t *conversation_new_deinterlaced(
const uint32_t setup_frame,
const address *addr1,
const address *addr2,
323 const conversation_type ctype,
const uint32_t port1,
const uint32_t port2,
const uint32_t anchor,
const unsigned options);
339 const conversation_type ctype,
const uint32_t key1,
const uint32_t key2,
const uint32_t key3);
409 const conversation_type ctype,
const uint32_t port_a,
const uint32_t port_b,
const unsigned options);
412 const conversation_type ctype,
const uint32_t port_a,
const uint32_t port_b,
const uint32_t anchor,
const unsigned options);
415 const conversation_type ctype,
const uint32_t key_a,
const uint32_t key_b,
const uint32_t key_c);
424WS_DLL_PUBLIC
conversation_t *find_conversation_by_id(
const uint32_t frame,
const conversation_type ctype,
const uint32_t
id);
502 conversation_type ctype, uint32_t port1, uint32_t port2);
513 conversation_type ctype, uint32_t
id);
524 conversation_type ctype,
const unsigned options);
538 proto_tree *tree,
void* data,
const unsigned options);
540WS_DLL_PUBLIC
bool try_conversation_dissector_by_id(
const conversation_type ctype,
const uint32_t
id,
tvbuff_t *tvb,
571WS_DLL_PUBLIC conversation_type conversation_pt_to_conversation_type(port_type pt);
577WS_DLL_PUBLIC endpoint_type conversation_pt_to_endpoint_type(port_type pt);
WS_DLL_PUBLIC bool try_conversation_dissector(const address *addr_a, const address *addr_b, const conversation_type ctype, const uint32_t port_a, const uint32_t port_b, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data, const unsigned options)
Definition conversation.c:2169
WS_DLL_PUBLIC conversation_t * find_conversation_full(const uint32_t frame_num, conversation_element_t *elements)
Definition conversation.c:1358
void conversation_epan_reset(void)
Definition conversation.c:698
WS_DLL_PUBLIC void * conversation_get_proto_data(const conversation_t *conv, const int proto)
Definition conversation.c:2087
struct conversation conversation_t
WS_DLL_PUBLIC conversation_t * find_conversation_deinterlacer_pinfo(const packet_info *pinfo)
Definition conversation.c:2021
WS_DLL_PUBLIC void conversation_set_addr2(conversation_t *conv, const address *addr)
Definition conversation.c:1284
WS_DLL_PUBLIC WS_RETNONNULL conversation_t * find_or_create_conversation_by_id(packet_info *pinfo, const conversation_type ctype, const uint32_t id)
Definition conversation.c:2402
WS_DLL_PUBLIC conversation_t * find_conversation_strat(const packet_info *pinfo, const conversation_type ctype, const unsigned options)
Definition conversation.c:2250
WS_DLL_PUBLIC void conversation_set_conv_addr_port_endpoints(struct _packet_info *pinfo, address *addr1, address *addr2, conversation_type ctype, uint32_t port1, uint32_t port2)
Definition conversation.c:2420
WS_DLL_PUBLIC void conversation_set_elements_by_id(struct _packet_info *pinfo, conversation_type ctype, uint32_t id)
Definition conversation.c:2440
WS_DLL_PUBLIC WS_RETNONNULL conversation_t * find_or_create_conversation(packet_info *pinfo)
Definition conversation.c:2374
WS_DLL_PUBLIC WS_RETNONNULL conversation_t * conversation_new_full(const uint32_t setup_frame, conversation_element_t *elements)
Definition conversation.c:825
WS_DLL_PUBLIC void conversation_delete_proto_data(conversation_t *conv, const int proto)
Definition conversation.c:2101
struct conversation_element conversation_element_t
WS_DLL_PUBLIC WS_RETNONNULL conversation_t * conversation_new_deinterlacer(const uint32_t setup_frame, const address *addr1, const address *addr2, const conversation_type ctype, const uint32_t key1, const uint32_t key2, const uint32_t key3)
Definition conversation.c:1101
WS_DLL_PUBLIC conversation_t * find_conversation_pinfo(const packet_info *pinfo, const unsigned options)
Definition conversation.c:2271
WS_DLL_PUBLIC conversation_t * find_conversation_pinfo_ro(const packet_info *pinfo, const unsigned options)
Definition conversation.c:2326
WS_DLL_PUBLIC uint32_t conversation_get_id_from_elements(struct _packet_info *pinfo, conversation_type ctype, const unsigned options)
Get the ID value from the conversation elements in the packet info.
Definition conversation.c:2450
WS_DLL_PUBLIC conversation_t * find_conversation(const uint32_t frame_num, const address *addr_a, const address *addr_b, const conversation_type ctype, const uint32_t port_a, const uint32_t port_b, const unsigned options)
Definition conversation.c:1561
WS_DLL_PUBLIC void conversation_set_port2(conversation_t *conv, const uint32_t port)
Definition conversation.c:1240
void conversation_init(void)
Definition conversation.c:539
conversation_element_type
Definition conversation.h:167
WS_DLL_PUBLIC wmem_map_t * get_conversation_hashtables(void)
Get a hash table of conversation hash table.
Definition conversation.c:2468
WS_DLL_PUBLIC void conversation_add_proto_data(conversation_t *conv, const int proto, void *proto_data)
Definition conversation.c:2074
WS_DLL_PUBLIC WS_RETNONNULL conversation_t * conversation_new(const uint32_t setup_frame, const address *addr1, const address *addr2, const conversation_type ctype, const uint32_t port1, const uint32_t port2, const unsigned options)
Definition conversation.c:869
WS_DLL_PUBLIC WS_RETNONNULL conversation_t * conversation_new_strat(packet_info *pinfo, const conversation_type ctype, const unsigned options)
Definition conversation.c:1059
Definition packet_info.h:43
Definition wmem_tree-int.h:48
Definition conversation.c:49
Definition conversation.h:200
Definition conversation.h:221
wmem_tree_t * dissector_tree
Definition conversation.h:230
struct conversation * last
Definition conversation.h:223
struct conversation * latest_found
Definition conversation.h:224
uint32_t setup_frame
Definition conversation.h:226
unsigned options
Definition conversation.h:231
wmem_tree_t * data_list
Definition conversation.h:229
uint32_t last_frame
Definition conversation.h:228
uint32_t conv_index
Definition conversation.h:225
conversation_element_t * key_ptr
Definition conversation.h:232
Definition tvbuff-int.h:35