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,
129#define ENDPOINT_NONE CONVERSATION_NONE
130#define ENDPOINT_SCTP CONVERSATION_SCTP
131#define ENDPOINT_TCP CONVERSATION_TCP
132#define ENDPOINT_UDP CONVERSATION_UDP
133#define ENDPOINT_DCCP CONVERSATION_DCCP
134#define ENDPOINT_IPX CONVERSATION_IPX
135#define ENDPOINT_NCP CONVERSATION_NCP
136#define ENDPOINT_EXCHG CONVERSATION_EXCHG
137#define ENDPOINT_DDP CONVERSATION_DDP
138#define ENDPOINT_SBCCS CONVERSATION_SBCCS
139#define ENDPOINT_IDP CONVERSATION_IDP
140#define ENDPOINT_TIPC CONVERSATION_TIPC
141#define ENDPOINT_USB CONVERSATION_USB
142#define ENDPOINT_I2C CONVERSATION_I2C
143#define ENDPOINT_IBQP CONVERSATION_IBQP
144#define ENDPOINT_BLUETOOTH CONVERSATION_BLUETOOTH
145#define ENDPOINT_TDMOP CONVERSATION_TDMOP
146#define ENDPOINT_DVBCI CONVERSATION_DVBCI
147#define ENDPOINT_ISO14443 CONVERSATION_ISO14443
148#define ENDPOINT_ISDN CONVERSATION_ISDN
149#define ENDPOINT_H223 CONVERSATION_H223
150#define ENDPOINT_X25 CONVERSATION_X25
151#define ENDPOINT_IAX2 CONVERSATION_IAX2
152#define ENDPOINT_DLCI CONVERSATION_DLCI
153#define ENDPOINT_ISUP CONVERSATION_ISUP
154#define ENDPOINT_BICC CONVERSATION_BICC
155#define ENDPOINT_GSMTAP CONVERSATION_GSMTAP
156#define ENDPOINT_IUUP CONVERSATION_IUUP
157#define ENDPOINT_DVBBBF CONVERSATION_DVBBBF
158#define ENDPOINT_IWARP_MPA CONVERSATION_IWARP_MPA
159#define ENDPOINT_BT_UTP CONVERSATION_BT_UTP
160#define ENDPOINT_LOG CONVERSATION_LOG
161#define ENDPOINT_MCTP CONVERSATION_MCTP
162#define ENDPOINT_NVME_MI CONVERSATION_NVME_MI
163#define ENDPOINT_SNMP CONVERSATION_SNMP
165typedef conversation_type endpoint_type;
171 CE_CONVERSATION_TYPE,
206 conversation_type conversation_type_val;
208 unsigned int port_val;
210 unsigned int uint_val;
318 const conversation_type ctype,
const uint32_t port1,
const uint32_t port2,
const unsigned options);
320WS_DLL_PUBLIC WS_RETNONNULL
conversation_t *conversation_new_by_id(
const uint32_t setup_frame,
const conversation_type ctype,
const uint32_t
id);
325WS_DLL_PUBLIC WS_RETNONNULL
conversation_t *conversation_new_deinterlaced(
const uint32_t setup_frame,
const address *addr1,
const address *addr2,
326 const conversation_type ctype,
const uint32_t port1,
const uint32_t port2,
const uint32_t anchor,
const unsigned options);
342 const conversation_type ctype,
const uint32_t key1,
const uint32_t key2,
const uint32_t key3);
412 const conversation_type ctype,
const uint32_t port_a,
const uint32_t port_b,
const unsigned options);
415 const conversation_type ctype,
const uint32_t port_a,
const uint32_t port_b,
const uint32_t anchor,
const unsigned options);
418 const conversation_type ctype,
const uint32_t key_a,
const uint32_t key_b,
const uint32_t key_c);
427WS_DLL_PUBLIC
conversation_t *find_conversation_by_id(
const uint32_t frame,
const conversation_type ctype,
const uint32_t
id);
505 conversation_type ctype, uint32_t port1, uint32_t port2);
516 conversation_type ctype, uint32_t
id);
527 conversation_type ctype,
const unsigned options);
541 proto_tree *tree,
void* data,
const unsigned options);
543WS_DLL_PUBLIC
bool try_conversation_dissector_by_id(
const conversation_type ctype,
const uint32_t
id,
tvbuff_t *tvb,
574WS_DLL_PUBLIC conversation_type conversation_pt_to_conversation_type(port_type pt);
580WS_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:2172
WS_DLL_PUBLIC conversation_t * find_conversation_full(const uint32_t frame_num, conversation_element_t *elements)
Definition conversation.c:1361
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:2090
struct conversation conversation_t
WS_DLL_PUBLIC conversation_t * find_conversation_deinterlacer_pinfo(const packet_info *pinfo)
Definition conversation.c:2024
WS_DLL_PUBLIC void conversation_set_addr2(conversation_t *conv, const address *addr)
Definition conversation.c:1287
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:2408
WS_DLL_PUBLIC conversation_t * find_conversation_strat(const packet_info *pinfo, const conversation_type ctype, const unsigned options)
Definition conversation.c:2253
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:2426
WS_DLL_PUBLIC void conversation_set_elements_by_id(struct _packet_info *pinfo, conversation_type ctype, uint32_t id)
Definition conversation.c:2446
WS_DLL_PUBLIC WS_RETNONNULL conversation_t * find_or_create_conversation(packet_info *pinfo)
Definition conversation.c:2380
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:2104
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:1104
WS_DLL_PUBLIC conversation_t * find_conversation_pinfo(const packet_info *pinfo, const unsigned options)
Definition conversation.c:2277
WS_DLL_PUBLIC conversation_t * find_conversation_pinfo_ro(const packet_info *pinfo, const unsigned options)
Definition conversation.c:2332
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:2456
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:1564
WS_DLL_PUBLIC void conversation_set_port2(conversation_t *conv, const uint32_t port)
Definition conversation.c:1243
void conversation_init(void)
Definition conversation.c:539
conversation_element_type
Definition conversation.h:170
WS_DLL_PUBLIC wmem_map_t * get_conversation_hashtables(void)
Get a hash table of conversation hash table.
Definition conversation.c:2474
WS_DLL_PUBLIC void conversation_add_proto_data(conversation_t *conv, const int proto, void *proto_data)
Definition conversation.c:2077
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:203
Definition conversation.h:224
wmem_tree_t * dissector_tree
Definition conversation.h:233
struct conversation * last
Definition conversation.h:226
struct conversation * latest_found
Definition conversation.h:227
uint32_t setup_frame
Definition conversation.h:229
unsigned options
Definition conversation.h:234
wmem_tree_t * data_list
Definition conversation.h:232
uint32_t last_frame
Definition conversation.h:231
uint32_t conv_index
Definition conversation.h:228
conversation_element_t * key_ptr
Definition conversation.h:235
Definition tvbuff-int.h:35