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_GREEDY 0x00100000
56#define EXACT_EXCLUDED 0x00200000
59#define USE_LAST_ENDPOINT 0x08
82 CONVERSATION_BLUETOOTH,
85 CONVERSATION_ISO14443,
96 CONVERSATION_IWARP_MPA,
101 CONVERSATION_NVME_MI,
113 CONVERSATION_VSPC_VMOTION,
114 CONVERSATION_OPENVPN,
131#define ENDPOINT_NONE CONVERSATION_NONE
132#define ENDPOINT_SCTP CONVERSATION_SCTP
133#define ENDPOINT_TCP CONVERSATION_TCP
134#define ENDPOINT_UDP CONVERSATION_UDP
135#define ENDPOINT_DCCP CONVERSATION_DCCP
136#define ENDPOINT_IPX CONVERSATION_IPX
137#define ENDPOINT_NCP CONVERSATION_NCP
138#define ENDPOINT_EXCHG CONVERSATION_EXCHG
139#define ENDPOINT_DDP CONVERSATION_DDP
140#define ENDPOINT_SBCCS CONVERSATION_SBCCS
141#define ENDPOINT_IDP CONVERSATION_IDP
142#define ENDPOINT_TIPC CONVERSATION_TIPC
143#define ENDPOINT_USB CONVERSATION_USB
144#define ENDPOINT_I2C CONVERSATION_I2C
145#define ENDPOINT_IBQP CONVERSATION_IBQP
146#define ENDPOINT_BLUETOOTH CONVERSATION_BLUETOOTH
147#define ENDPOINT_TDMOP CONVERSATION_TDMOP
148#define ENDPOINT_DVBCI CONVERSATION_DVBCI
149#define ENDPOINT_ISO14443 CONVERSATION_ISO14443
150#define ENDPOINT_ISDN CONVERSATION_ISDN
151#define ENDPOINT_H223 CONVERSATION_H223
152#define ENDPOINT_X25 CONVERSATION_X25
153#define ENDPOINT_IAX2 CONVERSATION_IAX2
154#define ENDPOINT_DLCI CONVERSATION_DLCI
155#define ENDPOINT_ISUP CONVERSATION_ISUP
156#define ENDPOINT_BICC CONVERSATION_BICC
157#define ENDPOINT_GSMTAP CONVERSATION_GSMTAP
158#define ENDPOINT_IUUP CONVERSATION_IUUP
159#define ENDPOINT_DVBBBF CONVERSATION_DVBBBF
160#define ENDPOINT_IWARP_MPA CONVERSATION_IWARP_MPA
161#define ENDPOINT_BT_UTP CONVERSATION_BT_UTP
162#define ENDPOINT_LOG CONVERSATION_LOG
163#define ENDPOINT_MCTP CONVERSATION_MCTP
164#define ENDPOINT_NVME_MI CONVERSATION_NVME_MI
165#define ENDPOINT_SNMP CONVERSATION_SNMP
166#define ENDPOINT_IP CONVERSATION_IP
167#define ENDPOINT_IPv6 CONVERSATION_IPv6
168#define ENDPOINT_ETH CONVERSATION_ETH
169#define ENDPOINT_ILNP CONVERSATION_ILNP
171typedef conversation_type endpoint_type;
177 CE_CONVERSATION_TYPE,
212 conversation_type conversation_type_val;
214 unsigned int port_val;
216 unsigned int uint_val;
324 const conversation_type ctype,
const uint32_t port1,
const uint32_t port2,
const unsigned options);
326WS_DLL_PUBLIC WS_RETNONNULL
conversation_t *conversation_new_by_id(
const uint32_t setup_frame,
const conversation_type ctype,
const uint32_t
id);
342WS_DLL_PUBLIC WS_RETNONNULL
conversation_t *conversation_new_deinterlaced(
const uint32_t setup_frame,
const address *addr1,
const address *addr2,
343 const conversation_type ctype,
const uint32_t port1,
const uint32_t port2,
const uint32_t anchor,
const unsigned options);
359 const conversation_type ctype,
const uint32_t key1,
const uint32_t key2,
const uint32_t key3);
374 const conversation_type ctype,
const uint32_t port1,
const uint32_t port2,
const unsigned options);
432 const conversation_type ctype,
const uint32_t port_a,
const uint32_t port_b,
const unsigned options);
435 const conversation_type ctype,
const uint32_t port_a,
const uint32_t port_b,
const uint32_t anchor,
const unsigned options);
438 const conversation_type ctype,
const uint32_t key_a,
const uint32_t key_b,
const uint32_t key_c);
447WS_DLL_PUBLIC
conversation_t *find_conversation_by_id(
const uint32_t frame,
const conversation_type ctype,
const uint32_t
id);
449WS_DLL_PUBLIC
conversation_t *find_conversation_err_pkts(
const uint32_t frame,
const conversation_type ctype,
const uint32_t
id,
const uint32_t rid);
457 const conversation_type ctype,
const uint32_t port1,
const uint32_t port2,
const unsigned options);
533 conversation_type ctype, uint32_t port1, uint32_t port2);
544 conversation_type ctype, uint32_t
id);
555 conversation_type ctype,
const unsigned options);
569 proto_tree *tree,
void* data,
const unsigned options);
571WS_DLL_PUBLIC
bool try_conversation_dissector_strat(
packet_info *pinfo,
const conversation_type ctype,
574WS_DLL_PUBLIC
bool try_conversation_dissector_by_id(
const conversation_type ctype,
const uint32_t
id,
tvbuff_t *tvb,
605WS_DLL_PUBLIC conversation_type conversation_pt_to_conversation_type(port_type pt);
611WS_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:2829
WS_DLL_PUBLIC conversation_t * find_conversation_full(const uint32_t frame_num, conversation_element_t *elements)
Definition conversation.c:1600
void conversation_epan_reset(void)
Definition conversation.c:784
WS_DLL_PUBLIC void * conversation_get_proto_data(const conversation_t *conv, const int proto)
Definition conversation.c:2747
struct conversation conversation_t
WS_DLL_PUBLIC conversation_t * find_conversation_deinterlacer_pinfo(const packet_info *pinfo)
Definition conversation.c:2658
WS_DLL_PUBLIC void conversation_set_addr2(conversation_t *conv, const address *addr)
Definition conversation.c:1526
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:3304
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:3322
WS_DLL_PUBLIC WS_RETNONNULL conversation_t * find_or_create_conversation(const packet_info *pinfo)
Definition conversation.c:3227
WS_DLL_PUBLIC void conversation_set_elements_by_id(struct _packet_info *pinfo, conversation_type ctype, uint32_t id)
Definition conversation.c:3342
WS_DLL_PUBLIC WS_RETNONNULL conversation_t * conversation_new_full(const uint32_t setup_frame, conversation_element_t *elements)
Definition conversation.c:911
WS_DLL_PUBLIC void conversation_delete_proto_data(conversation_t *conv, const int proto)
Definition conversation.c:2761
struct conversation_element conversation_element_t
WS_DLL_PUBLIC WS_RETNONNULL conversation_t * conversation_new_strat(const packet_info *pinfo, const conversation_type ctype, const unsigned options)
Definition conversation.c:1145
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:1238
WS_DLL_PUBLIC conversation_t * find_conversation_pinfo(const packet_info *pinfo, const unsigned options)
Definition conversation.c:3016
WS_DLL_PUBLIC conversation_t * find_conversation_pinfo_ro(const packet_info *pinfo, const unsigned options)
Definition conversation.c:3131
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:3352
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:1846
WS_DLL_PUBLIC void conversation_set_port2(conversation_t *conv, const uint32_t port)
Definition conversation.c:1482
void conversation_init(void)
Definition conversation.c:572
conversation_element_type
Definition conversation.h:176
WS_DLL_PUBLIC wmem_map_t * get_conversation_hashtables(void)
Get a hash table of conversation hash table.
Definition conversation.c:3370
WS_DLL_PUBLIC conversation_t * find_conversation_strat(const packet_info *pinfo, const conversation_type ctype, const unsigned options, const bool direction)
Definition conversation.c:2963
WS_DLL_PUBLIC void conversation_add_proto_data(conversation_t *conv, const int proto, void *proto_data)
Definition conversation.c:2734
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:955
WS_DLL_PUBLIC WS_RETNONNULL conversation_t * conversation_new_err_pkts(const uint32_t setup_frame, const conversation_type ctype, const uint32_t id, const uint32_t rid)
Definition conversation.c:1216
Definition packet_info.h:43
Definition wmem_tree-int.h:48
Definition conversation.c:49
Definition conversation.h:209
Definition conversation.h:230
wmem_tree_t * dissector_tree
Definition conversation.h:239
struct conversation * last
Definition conversation.h:232
struct conversation * latest_found
Definition conversation.h:233
uint32_t setup_frame
Definition conversation.h:235
unsigned options
Definition conversation.h:240
wmem_tree_t * data_list
Definition conversation.h:238
uint32_t last_frame
Definition conversation.h:237
uint32_t conv_index
Definition conversation.h:234
conversation_element_t * key_ptr
Definition conversation.h:241
Definition tvbuff-int.h:35