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,
130#define ENDPOINT_NONE CONVERSATION_NONE
131#define ENDPOINT_SCTP CONVERSATION_SCTP
132#define ENDPOINT_TCP CONVERSATION_TCP
133#define ENDPOINT_UDP CONVERSATION_UDP
134#define ENDPOINT_DCCP CONVERSATION_DCCP
135#define ENDPOINT_IPX CONVERSATION_IPX
136#define ENDPOINT_NCP CONVERSATION_NCP
137#define ENDPOINT_EXCHG CONVERSATION_EXCHG
138#define ENDPOINT_DDP CONVERSATION_DDP
139#define ENDPOINT_SBCCS CONVERSATION_SBCCS
140#define ENDPOINT_IDP CONVERSATION_IDP
141#define ENDPOINT_TIPC CONVERSATION_TIPC
142#define ENDPOINT_USB CONVERSATION_USB
143#define ENDPOINT_I2C CONVERSATION_I2C
144#define ENDPOINT_IBQP CONVERSATION_IBQP
145#define ENDPOINT_BLUETOOTH CONVERSATION_BLUETOOTH
146#define ENDPOINT_TDMOP CONVERSATION_TDMOP
147#define ENDPOINT_DVBCI CONVERSATION_DVBCI
148#define ENDPOINT_ISO14443 CONVERSATION_ISO14443
149#define ENDPOINT_ISDN CONVERSATION_ISDN
150#define ENDPOINT_H223 CONVERSATION_H223
151#define ENDPOINT_X25 CONVERSATION_X25
152#define ENDPOINT_IAX2 CONVERSATION_IAX2
153#define ENDPOINT_DLCI CONVERSATION_DLCI
154#define ENDPOINT_ISUP CONVERSATION_ISUP
155#define ENDPOINT_BICC CONVERSATION_BICC
156#define ENDPOINT_GSMTAP CONVERSATION_GSMTAP
157#define ENDPOINT_IUUP CONVERSATION_IUUP
158#define ENDPOINT_DVBBBF CONVERSATION_DVBBBF
159#define ENDPOINT_IWARP_MPA CONVERSATION_IWARP_MPA
160#define ENDPOINT_BT_UTP CONVERSATION_BT_UTP
161#define ENDPOINT_LOG CONVERSATION_LOG
162#define ENDPOINT_MCTP CONVERSATION_MCTP
163#define ENDPOINT_NVME_MI CONVERSATION_NVME_MI
164#define ENDPOINT_SNMP CONVERSATION_SNMP
165#define ENDPOINT_IP CONVERSATION_IP
166#define ENDPOINT_IPv6 CONVERSATION_IPv6
167#define ENDPOINT_ETH CONVERSATION_ETH
169typedef conversation_type endpoint_type;
175 CE_CONVERSATION_TYPE,
210 conversation_type conversation_type_val;
212 unsigned int port_val;
214 unsigned int uint_val;
322 const conversation_type ctype,
const uint32_t port1,
const uint32_t port2,
const unsigned options);
324WS_DLL_PUBLIC WS_RETNONNULL
conversation_t *conversation_new_by_id(
const uint32_t setup_frame,
const conversation_type ctype,
const uint32_t
id);
329WS_DLL_PUBLIC WS_RETNONNULL
conversation_t *conversation_new_deinterlaced(
const uint32_t setup_frame,
const address *addr1,
const address *addr2,
330 const conversation_type ctype,
const uint32_t port1,
const uint32_t port2,
const uint32_t anchor,
const unsigned options);
346 const conversation_type ctype,
const uint32_t key1,
const uint32_t key2,
const uint32_t key3);
361 const conversation_type ctype,
const uint32_t port1,
const uint32_t port2,
const unsigned options);
419 const conversation_type ctype,
const uint32_t port_a,
const uint32_t port_b,
const unsigned options);
422 const conversation_type ctype,
const uint32_t port_a,
const uint32_t port_b,
const uint32_t anchor,
const unsigned options);
425 const conversation_type ctype,
const uint32_t key_a,
const uint32_t key_b,
const uint32_t key_c);
434WS_DLL_PUBLIC
conversation_t *find_conversation_by_id(
const uint32_t frame,
const conversation_type ctype,
const uint32_t
id);
442 const conversation_type ctype,
const uint32_t port1,
const uint32_t port2,
const unsigned options);
518 conversation_type ctype, uint32_t port1, uint32_t port2);
529 conversation_type ctype, uint32_t
id);
540 conversation_type ctype,
const unsigned options);
554 proto_tree *tree,
void* data,
const unsigned options);
556WS_DLL_PUBLIC
bool try_conversation_dissector_strat(
packet_info *pinfo,
const conversation_type ctype,
559WS_DLL_PUBLIC
bool try_conversation_dissector_by_id(
const conversation_type ctype,
const uint32_t
id,
tvbuff_t *tvb,
590WS_DLL_PUBLIC conversation_type conversation_pt_to_conversation_type(port_type pt);
596WS_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:2757
WS_DLL_PUBLIC conversation_t * find_conversation_full(const uint32_t frame_num, conversation_element_t *elements)
Definition conversation.c:1551
void conversation_epan_reset(void)
Definition conversation.c:757
WS_DLL_PUBLIC void * conversation_get_proto_data(const conversation_t *conv, const int proto)
Definition conversation.c:2675
struct conversation conversation_t
WS_DLL_PUBLIC conversation_t * find_conversation_deinterlacer_pinfo(const packet_info *pinfo)
Definition conversation.c:2609
WS_DLL_PUBLIC void conversation_set_addr2(conversation_t *conv, const address *addr)
Definition conversation.c:1477
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:3184
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:3202
WS_DLL_PUBLIC WS_RETNONNULL conversation_t * find_or_create_conversation(const packet_info *pinfo)
Definition conversation.c:3107
WS_DLL_PUBLIC void conversation_set_elements_by_id(struct _packet_info *pinfo, conversation_type ctype, uint32_t id)
Definition conversation.c:3222
WS_DLL_PUBLIC WS_RETNONNULL conversation_t * conversation_new_full(const uint32_t setup_frame, conversation_element_t *elements)
Definition conversation.c:884
WS_DLL_PUBLIC void conversation_delete_proto_data(conversation_t *conv, const int proto)
Definition conversation.c:2689
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:1118
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:1189
WS_DLL_PUBLIC conversation_t * find_conversation_pinfo(const packet_info *pinfo, const unsigned options)
Definition conversation.c:2944
WS_DLL_PUBLIC conversation_t * find_conversation_pinfo_ro(const packet_info *pinfo, const unsigned options)
Definition conversation.c:3059
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:3232
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:1797
WS_DLL_PUBLIC void conversation_set_port2(conversation_t *conv, const uint32_t port)
Definition conversation.c:1433
void conversation_init(void)
Definition conversation.c:557
conversation_element_type
Definition conversation.h:174
WS_DLL_PUBLIC wmem_map_t * get_conversation_hashtables(void)
Get a hash table of conversation hash table.
Definition conversation.c:3250
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:2891
WS_DLL_PUBLIC void conversation_add_proto_data(conversation_t *conv, const int proto, void *proto_data)
Definition conversation.c:2662
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:928
Definition packet_info.h:43
Definition wmem_tree-int.h:48
Definition conversation.c:49
Definition conversation.h:207
Definition conversation.h:228
wmem_tree_t * dissector_tree
Definition conversation.h:237
struct conversation * last
Definition conversation.h:230
struct conversation * latest_found
Definition conversation.h:231
uint32_t setup_frame
Definition conversation.h:233
unsigned options
Definition conversation.h:238
wmem_tree_t * data_list
Definition conversation.h:236
uint32_t last_frame
Definition conversation.h:235
uint32_t conv_index
Definition conversation.h:232
conversation_element_t * key_ptr
Definition conversation.h:239
Definition tvbuff-int.h:35