15#ifndef __PACKET_THRIFT_H__
16#define __PACKET_THRIFT_H__
19#include "ws_symbol_export.h"
23 DE_THRIFT_T_GENERIC = -1,
46 ME_THRIFT_T_EXCEPTION,
48} thrift_method_type_enum_t;
63 PROTO_THRIFT_BINARY = 0x00,
64 PROTO_THRIFT_FRAMED = 0x01,
65 PROTO_THRIFT_STRICT = 0x02,
66 PROTO_THRIFT_COMPACT = 0x04
67} thrift_protocol_enum_t;
69#define THRIFT_OPTION_DATA_CANARY 0x8001da7a
70#define THRIFT_REQUEST_REASSEMBLY (-1)
71#define THRIFT_SUBDISSECTOR_ERROR (-2)
76 thrift_method_type_enum_t mtype;
77 thrift_protocol_enum_t tprotocol;
79 int64_t reply_field_id;
81 int64_t previous_field_id;
86 proto_tree *reassembly_tree;
88 int32_t reassembly_offset;
89 int32_t reassembly_length;
90 uint32_t nested_type_depth;
91 bool use_std_dissector;
93} thrift_option_data_t;
95#define TMFILL NULL, { .m = { NULL, NULL } }, NULL
102 const thrift_type_enum_t type;
105 const unsigned encoding;
106 const thrift_member_t *element;
108 const thrift_member_t *members;
112 const thrift_member_t *key;
113 const thrift_member_t *value;
116 const dissector_t raw_dissector;
142WS_DLL_PUBLIC
int dissect_thrift_t_stop (tvbuff_t* tvb,
packet_info* pinfo, proto_tree* tree,
int offset);
143WS_DLL_PUBLIC
int dissect_thrift_t_bool (tvbuff_t* tvb,
packet_info* pinfo, proto_tree* tree,
int offset, thrift_option_data_t *thrift_opt,
bool is_field,
int field_id,
int hf_id);
144WS_DLL_PUBLIC
int dissect_thrift_t_i8 (tvbuff_t* tvb,
packet_info* pinfo, proto_tree* tree,
int offset, thrift_option_data_t *thrift_opt,
bool is_field,
int field_id,
int hf_id);
145WS_DLL_PUBLIC
int dissect_thrift_t_i16 (tvbuff_t* tvb,
packet_info* pinfo, proto_tree* tree,
int offset, thrift_option_data_t *thrift_opt,
bool is_field,
int field_id,
int hf_id);
146WS_DLL_PUBLIC
int dissect_thrift_t_i32 (tvbuff_t* tvb,
packet_info* pinfo, proto_tree* tree,
int offset, thrift_option_data_t *thrift_opt,
bool is_field,
int field_id,
int hf_id);
147WS_DLL_PUBLIC
int dissect_thrift_t_i64 (tvbuff_t* tvb,
packet_info* pinfo, proto_tree* tree,
int offset, thrift_option_data_t *thrift_opt,
bool is_field,
int field_id,
int hf_id);
148WS_DLL_PUBLIC
int dissect_thrift_t_double (tvbuff_t* tvb,
packet_info* pinfo, proto_tree* tree,
int offset, thrift_option_data_t *thrift_opt,
bool is_field,
int field_id,
int hf_id);
149WS_DLL_PUBLIC
int dissect_thrift_t_uuid (tvbuff_t* tvb,
packet_info* pinfo, proto_tree* tree,
int offset, thrift_option_data_t *thrift_opt,
bool is_field,
int field_id,
int hf_id);
150WS_DLL_PUBLIC
int dissect_thrift_t_binary (tvbuff_t* tvb,
packet_info* pinfo, proto_tree* tree,
int offset, thrift_option_data_t *thrift_opt,
bool is_field,
int field_id,
int hf_id);
151WS_DLL_PUBLIC
int dissect_thrift_t_string (tvbuff_t* tvb,
packet_info* pinfo, proto_tree* tree,
int offset, thrift_option_data_t *thrift_opt,
bool is_field,
int field_id,
int hf_id);
152WS_DLL_PUBLIC
int dissect_thrift_t_string_enc(tvbuff_t* tvb,
packet_info* pinfo, proto_tree* tree,
int offset, thrift_option_data_t *thrift_opt,
bool is_field,
int field_id,
int hf_id,
unsigned encoding);
153WS_DLL_PUBLIC
int dissect_thrift_t_raw_data (tvbuff_t* tvb,
packet_info* pinfo, proto_tree* tree,
int offset, thrift_option_data_t *thrift_opt,
bool is_field,
int field_id,
int hf_id, thrift_type_enum_t type, dissector_t field_dissector);
184WS_DLL_PUBLIC
int dissect_thrift_t_map (tvbuff_t* tvb,
packet_info* pinfo, proto_tree* tree,
int offset, thrift_option_data_t *thrift_opt,
bool is_field,
int field_id,
int hf_id,
int ett_id,
const thrift_member_t *key,
const thrift_member_t *val);
185WS_DLL_PUBLIC
int dissect_thrift_t_set (tvbuff_t* tvb,
packet_info* pinfo, proto_tree* tree,
int offset, thrift_option_data_t *thrift_opt,
bool is_field,
int field_id,
int hf_id,
int ett_id,
const thrift_member_t *elt);
186WS_DLL_PUBLIC
int dissect_thrift_t_list (tvbuff_t* tvb,
packet_info* pinfo, proto_tree* tree,
int offset, thrift_option_data_t *thrift_opt,
bool is_field,
int field_id,
int hf_id,
int ett_id,
const thrift_member_t *elt);
187WS_DLL_PUBLIC
int dissect_thrift_t_struct(tvbuff_t* tvb,
packet_info* pinfo, proto_tree* tree,
int offset, thrift_option_data_t *thrift_opt,
bool is_field,
int field_id,
int hf_id,
int ett_id,
const thrift_member_t *seq);
struct _packet_info packet_info
Represents the metadata and indexing information for a single captured frame.
Definition packet-thrift.h:98
Definition packet-thrift.h:73
Pairs an expert info index with its associated header field index for registration and display.
Definition expert.h:41