32#include "ws_symbol_export.h"
33#include "ws_attributes.h"
51#define ITEM_LABEL_LENGTH 240
53#define ITEM_LABEL_UNKNOWN_STR "Unknown"
58#define cast_same(type, x) (0 ? (type)0 : (x))
61#define VALS(x) (cast_same(const struct _value_string*, (x)))
64#define VALS64(x) (cast_same(const struct _val64_string*, (x)))
67#define VALS_EXT_PTR(x) (cast_same(value_string_ext*, (x)))
70#define TFS(x) (cast_same(const struct true_false_string*, (x)))
73#define UNS(x) (cast_same(const struct unit_name_string*, (x)))
75typedef void (*custom_fmt_func_t)(
char *, uint32_t);
77typedef void (*custom_fmt_func_64_t)(
char *, uint64_t);
79typedef void (*custom_fmt_func_double_t)(
char *, double);
88#define CF_FUNC(x) ((const void *) (size_t) (x))
92#define RVALS(x) (cast_same(const struct _range_string*, (x)))
95#define FRAMENUM_TYPE(x) GINT_TO_POINTER(x)
112WS_DLL_PUBLIC WS_NORETURN
116#define REPORT_DISSECTOR_BUG(...) \
117 proto_report_dissector_bug(__VA_ARGS__)
124#define __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT(expression) \
125 ; __analysis_assume(expression);
127#define __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT(expression)
141#define __DISSECTOR_ASSERT_STRINGIFY(s) # s
143#define __DISSECTOR_ASSERT(expression, file, lineno) \
144 (REPORT_DISSECTOR_BUG("%s:%u: failed assertion \"%s\"", \
145 file, lineno, __DISSECTOR_ASSERT_STRINGIFY(expression)))
147#define __DISSECTOR_ASSERT_HINT(expression, file, lineno, hint) \
148 (REPORT_DISSECTOR_BUG("%s:%u: failed assertion \"%s\" (%s)", \
149 file, lineno, __DISSECTOR_ASSERT_STRINGIFY(expression), hint))
151#define DISSECTOR_ASSERT(expression) \
152 ((void) ((expression) ? (void)0 : \
153 __DISSECTOR_ASSERT (expression, __FILE__, __LINE__))) \
154 __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT(expression)
163#define DISSECTOR_ASSERT_HINT(expression, hint) \
164 ((void) ((expression) ? (void)0 : \
165 __DISSECTOR_ASSERT_HINT (expression, __FILE__, __LINE__, hint))) \
166 __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT(expression)
171#define DISSECTOR_ASSERT(expression) \
172{ if(!(expression)) _asm { int 3}; }
183#define DISSECTOR_ASSERT_NOT_REACHED() \
184 (REPORT_DISSECTOR_BUG("%s:%u: failed assertion \"DISSECTOR_ASSERT_NOT_REACHED\"", \
206#define __DISSECTOR_ASSERT_CMPINT(a, op, b, type, fmt) \
207 (REPORT_DISSECTOR_BUG("%s:%u: failed assertion " #a " " #op " " #b " (" fmt " " #op " " fmt ")", \
208 __FILE__, __LINE__, (type)a, (type)b))
210#define DISSECTOR_ASSERT_CMPINT(a, op, b) \
211 ((void) ((a op b) ? (void)0 : \
212 __DISSECTOR_ASSERT_CMPINT (a, op, b, int64_t, "%" PRId64))) \
213 __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT(a op b)
220#define DISSECTOR_ASSERT_CMPUINT(a, op, b) \
221 ((void) ((a op b) ? (void)0 : \
222 __DISSECTOR_ASSERT_CMPINT (a, op, b, uint64_t, "%" PRIu64))) \
223 __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT(a op b)
228#define DISSECTOR_ASSERT_CMPUINTHEX(a, op, b) \
229 ((void) ((a op b) ? (void)0 : \
230 __DISSECTOR_ASSERT_CMPINT (a, op, b, uint64_t, "0x%" PRIX64))) \
231 __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT(a op b)
241#define __DISSECTOR_ASSERT_FIELD_TYPE(hfinfo, t) \
242 (REPORT_DISSECTOR_BUG("%s:%u: field %s is not of type "#t, \
243 __FILE__, __LINE__, (hfinfo)->abbrev))
245#define DISSECTOR_ASSERT_FIELD_TYPE(hfinfo, t) \
246 ((void) (((hfinfo)->type == t) ? (void)0 : \
247 __DISSECTOR_ASSERT_FIELD_TYPE ((hfinfo), t))) \
248 __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT((hfinfo)->type == t)
250#define DISSECTOR_ASSERT_FIELD_TYPE_IS_INTEGRAL(hfinfo) \
251 ((void) ((FT_IS_INTEGER((hfinfo)->type)) ? (void)0 : \
252 REPORT_DISSECTOR_BUG("%s:%u: field %s is not of type FT_CHAR or an FT_{U}INTn type", \
253 __FILE__, __LINE__, (hfinfo)->abbrev))) \
254 __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT(FT_IS_INTEGER((hfinfo)->type))
256#define __DISSECTOR_ASSERT_FIELD_TYPE_IS_STRING(hfinfo) \
257 (REPORT_DISSECTOR_BUG("%s:%u: field %s is not of type FT_STRING, FT_STRINGZ, FT_STRINGZPAD, FT_STRINGZTRUNC, or FT_UINT_STRING", \
258 __FILE__, __LINE__, (hfinfo)->abbrev))
260#define DISSECTOR_ASSERT_FIELD_TYPE_IS_STRING(hfinfo) \
261 ((void) (FT_IS_STRING((hfinfo)->type) ? (void)0 : \
262 __DISSECTOR_ASSERT_FIELD_TYPE_IS_STRING ((hfinfo)))) \
263 __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT(FT_IS_STRING((hfinfo)->type))
265#define __DISSECTOR_ASSERT_FIELD_TYPE_IS_TIME(hfinfo) \
266 (REPORT_DISSECTOR_BUG("%s:%u: field %s is not of type FT_ABSOLUTE_TIME or FT_RELATIVE_TIME", \
267 __FILE__, __LINE__, (hfinfo)->abbrev))
269#define DISSECTOR_ASSERT_FIELD_TYPE_IS_TIME(hfinfo) \
270 ((void) (((hfinfo)->type == FT_ABSOLUTE_TIME || \
271 (hfinfo)->type == FT_RELATIVE_TIME) ? (void)0 : \
272 __DISSECTOR_ASSERT_FIELD_TYPE_IS_TIME ((hfinfo)))) \
273 __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT((hfinfo)->type == FT_ABSOLUTE_TIME || \
274 (hfinfo)->type == FT_RELATIVE_TIME)
327#define ENC_BIG_ENDIAN 0x00000000
328#define ENC_LITTLE_ENDIAN 0x80000000
330#if G_BYTE_ORDER == G_LITTLE_ENDIAN
331 #define ENC_HOST_ENDIAN ENC_LITTLE_ENDIAN
332 #define ENC_ANTI_HOST_ENDIAN ENC_BIG_ENDIAN
334 #define ENC_HOST_ENDIAN ENC_BIG_ENDIAN
335 #define ENC_ANTI_HOST_ENDIAN ENC_LITTLE_ENDIAN
345#define ENC_NA 0x00000000
375#define ENC_CHARENCODING_MASK 0x0000FFFE
376#define ENC_ASCII 0x00000000
377#define ENC_ISO_646_IRV ENC_ASCII
378#define ENC_UTF_8 0x00000002
379#define ENC_UTF_16 0x00000004
380#define ENC_UCS_2 0x00000006
381#define ENC_UCS_4 0x00000008
382#define ENC_ISO_8859_1 0x0000000A
383#define ENC_ISO_8859_2 0x0000000C
384#define ENC_ISO_8859_3 0x0000000E
385#define ENC_ISO_8859_4 0x00000010
386#define ENC_ISO_8859_5 0x00000012
387#define ENC_ISO_8859_6 0x00000014
388#define ENC_ISO_8859_7 0x00000016
389#define ENC_ISO_8859_8 0x00000018
390#define ENC_ISO_8859_9 0x0000001A
391#define ENC_ISO_8859_10 0x0000001C
392#define ENC_ISO_8859_11 0x0000001E
394#define ENC_ISO_8859_13 0x00000022
395#define ENC_ISO_8859_14 0x00000024
396#define ENC_ISO_8859_15 0x00000026
397#define ENC_ISO_8859_16 0x00000028
398#define ENC_WINDOWS_1250 0x0000002A
399#define ENC_3GPP_TS_23_038_7BITS_PACKED 0x0000002C
400#define ENC_3GPP_TS_23_038_7BITS ENC_3GPP_TS_23_038_7BITS_PACKED
401#define ENC_EBCDIC 0x0000002E
402#define ENC_MAC_ROMAN 0x00000030
403#define ENC_CP437 0x00000032
404#define ENC_ASCII_7BITS 0x00000034
405#define ENC_T61 0x00000036
406#define ENC_EBCDIC_CP037 0x00000038
407#define ENC_WINDOWS_1252 0x0000003A
408#define ENC_WINDOWS_1251 0x0000003C
409#define ENC_CP855 0x0000003E
410#define ENC_CP866 0x00000040
411#define ENC_ISO_646_BASIC 0x00000042
412#define ENC_BCD_DIGITS_0_9 0x00000044
413#define ENC_KEYPAD_ABC_TBCD 0x00000046
414#define ENC_KEYPAD_BC_TBCD 0x00000048
415#define ENC_3GPP_TS_23_038_7BITS_UNPACKED 0x0000004C
416#define ENC_ETSI_TS_102_221_ANNEX_A 0x0000004E
417#define ENC_GB18030 0x00000050
418#define ENC_EUC_KR 0x00000052
419#define ENC_APN_STR 0x00000054
420#define ENC_DECT_STANDARD_8BITS 0x00000056
421#define ENC_DECT_STANDARD_4BITS_TBCD 0x00000058
422#define ENC_EBCDIC_CP500 0x00000060
454#define ENC_ZIGBEE 0x40000000
464#define ENC_BOM 0x20000000
478#define ENC_STR_NUM 0x01000000
480#define ENC_STR_HEX 0x02000000
482#define ENC_STRING 0x03000000
484#define ENC_STR_MASK 0x0000FFFE
499#define ENC_NUM_PREF 0x00200000
511#define ENC_SEP_NONE 0x00010000
512#define ENC_SEP_COLON 0x00020000
513#define ENC_SEP_DASH 0x00040000
514#define ENC_SEP_DOT 0x00080000
515#define ENC_SEP_SPACE 0x00100000
517#define ENC_SEP_MASK 0x001F0000
523#define ENC_BCD_ODD_NUM_DIG 0x00010000
524#define ENC_BCD_SKIP_FIRST 0x00020000
609#define ENC_TIME_SECS_NSECS 0x00000000
610#define ENC_TIME_TIMESPEC 0x00000000
611#define ENC_TIME_NTP 0x00000002
612#define ENC_TIME_TOD 0x00000004
613#define ENC_TIME_RTPS 0x00000008
614#define ENC_TIME_NTP_BASE_ZERO 0x00000008
615#define ENC_TIME_SECS_USECS 0x00000010
616#define ENC_TIME_TIMEVAL 0x00000010
617#define ENC_TIME_SECS 0x00000012
618#define ENC_TIME_MSECS 0x00000014
619#define ENC_TIME_SECS_NTP 0x00000018
620#define ENC_TIME_RFC_3971 0x00000020
621#define ENC_TIME_MSEC_NTP 0x00000022
622#define ENC_TIME_MIP6 0x00000024
623#define ENC_TIME_MP4_FILE_SECS 0x00000026
624#define ENC_TIME_CLASSIC_MAC_OS_SECS 0x00000026
625#define ENC_TIME_NSECS 0x00000028
626#define ENC_TIME_USECS 0x00000030
627#define ENC_TIME_ZBEE_ZCL 0x00000032
636#define ENC_ISO_8601_DATE 0x00010000
637#define ENC_ISO_8601_TIME 0x00020000
638#define ENC_ISO_8601_DATE_TIME 0x00030000
639#define ENC_IMF_DATE_TIME 0x00040000
640#define ENC_RFC_822 0x00040000
641#define ENC_RFC_1123 0x00040000
642#define ENC_ISO_8601_DATE_TIME_BASIC 0x00100000
644#define ENC_STR_TIME_MASK 0x001F0000
653#define ENC_VARINT_PROTOBUF 0x00000002
658#define ENC_VARINT_QUIC 0x00000004
663#define ENC_VARINT_ZIGZAG 0x00000008
668#define ENC_VARINT_SDNV 0x00000010
670#define ENC_VARINT_MASK (ENC_VARINT_PROTOBUF|ENC_VARINT_QUIC|ENC_VARINT_ZIGZAG|ENC_VARINT_SDNV)
678#define FIELD_DISPLAY_E_MASK 0xFF
721#define FIELD_DISPLAY(d) ((d) & FIELD_DISPLAY_E_MASK)
723#define FIELD_DISPLAY_IS_ABSOLUTE_TIME(d) \
724 (FIELD_DISPLAY(d) >= ABSOLUTE_TIME_LOCAL && FIELD_DISPLAY(d) <= ABSOLUTE_TIME_UNIX)
728#define BASE_RANGE_STRING 0x00000100
729#define BASE_EXT_STRING 0x00000200
730#define BASE_VAL64_STRING 0x00000400
732#define BASE_ALLOW_ZERO 0x00000800
734#define BASE_UNIT_STRING 0x00001000
736#define BASE_NO_DISPLAY_VALUE 0x00002000
739#define BASE_PROTOCOL_INFO 0x00004000
741#define BASE_SPECIAL_VALS 0x00008000
743#define BASE_SHOW_ASCII_PRINTABLE 0x00010000
745#define BASE_SHOW_UTF_8_PRINTABLE 0x00020000
748#define IS_BASE_DUAL(b) ((b)==BASE_DEC_HEX||(b)==BASE_HEX_DEC)
751#define IS_BASE_PORT(b) (((b)==BASE_PT_UDP||(b)==BASE_PT_TCP||(b)==BASE_PT_DCCP||(b)==BASE_PT_SCTP))
790#define HFILL -1, 0, HF_REF_TYPE_NONE, -1, NULL
792#define HFILL_INIT(hf) \
793 (hf).hfinfo.id = -1; \
794 (hf).hfinfo.parent = 0; \
795 (hf).hfinfo.ref_type = HF_REF_TYPE_NONE; \
796 (hf).hfinfo.same_name_prev_id = -1; \
797 (hf).hfinfo.same_name_next = NULL;
839 unsigned crumb_bit_offset;
840 uint8_t crumb_bit_length;
853#define FI_HIDDEN 0x00000001
856#define FI_GENERATED 0x00000002
858#define FI_URL 0x00000004
861#define FI_LITTLE_ENDIAN 0x00000008
863#define FI_BIG_ENDIAN 0x00000010
865#define FI_BITS_OFFSET(n) (((n) & 7) << 5)
868#define FI_BITS_SIZE(n) (((n) & 63) << 8)
870#define FI_VARINT 0x00004000
873#define FI_GET_FLAG(fi, flag) ((fi) ? ((fi)->flags & (flag)) : 0)
875#define FI_SET_FLAG(fi, flag) \
878 (fi)->flags = (fi)->flags | (flag); \
881#define FI_RESET_FLAG(fi, flag) \
884 (fi)->flags = (fi)->flags & ~(flag); \
887#define FI_GET_BITS_OFFSET(fi) (FI_GET_FLAG(fi, FI_BITS_OFFSET(7)) >> 5)
888#define FI_GET_BITS_SIZE(fi) (FI_GET_FLAG(fi, FI_BITS_SIZE(63)) >> 8)
893 GHashTable *interesting_hfids;
923#define PI_SEVERITY_MASK 0x00F00000
925#define PI_COMMENT 0x00100000
927#define PI_CHAT 0x00200000
929#define PI_NOTE 0x00400000
931#define PI_WARN 0x00600000
933#define PI_ERROR 0x00800000
936#define PI_GROUP_MASK 0xFF000000
938#define PI_CHECKSUM 0x01000000
940#define PI_SEQUENCE 0x02000000
942#define PI_RESPONSE_CODE 0x03000000
944#define PI_REQUEST_CODE 0x04000000
946#define PI_UNDECODED 0x05000000
948#define PI_REASSEMBLE 0x06000000
950#define PI_MALFORMED 0x07000000
952#define PI_DEBUG 0x08000000
954#define PI_PROTOCOL 0x09000000
956#define PI_SECURITY 0x0a000000
958#define PI_COMMENTS_GROUP 0x0b000000
960#define PI_DECRYPTION 0x0c000000
962#define PI_ASSUMPTION 0x0d000000
964#define PI_DEPRECATED 0x0e000000
966#define PI_RECEIVE 0x0f000000
968#define PI_INTERFACE 0x10000000
970#define PI_DISSECTOR_BUG 0x11000000
978#define PNODE_FINFO(proto_node) ((proto_node)->finfo)
981#define PITEM_FINFO(proto_item) PNODE_FINFO(proto_item)
984#define PTREE_FINFO(proto_tree) PNODE_FINFO(proto_tree)
987#define PTREE_DATA(proto_tree) ((proto_tree)->tree_data)
990#define PNODE_POOL(proto_node) ((proto_node)->tree_data->pinfo->pool)
997static inline bool proto_item_is_hidden(
proto_item *ti) {
1003#define PROTO_ITEM_IS_HIDDEN(ti) proto_item_is_hidden((ti))
1009static inline void proto_item_set_hidden(
proto_item *ti) {
1014#define PROTO_ITEM_SET_HIDDEN(ti) proto_item_set_hidden((ti))
1019static inline void proto_item_set_visible(
proto_item *ti) {
1024#define PROTO_ITEM_SET_VISIBLE(ti) proto_item_set_visible((ti))
1030static inline bool proto_item_is_generated(
proto_item *ti) {
1036#define PROTO_ITEM_IS_GENERATED(ti) proto_item_is_generated((ti))
1041static inline void proto_item_set_generated(
proto_item *ti) {
1046#define PROTO_ITEM_SET_GENERATED(ti) proto_item_set_generated((ti))
1053static inline bool proto_item_is_url(
proto_item *ti) {
1059#define PROTO_ITEM_IS_URL(ti) proto_item_is_url((ti))
1064static inline void proto_item_set_url(
proto_item *ti) {
1069#define PROTO_ITEM_SET_URL(ti) proto_item_set_url((ti))
1071typedef void (*proto_tree_foreach_func)(
proto_node *,
void *);
1072typedef bool (*proto_tree_traverse_func)(
proto_node *,
void *);
1074WS_DLL_PUBLIC
void proto_tree_children_foreach(
proto_tree *tree,
1075 proto_tree_foreach_func func,
void *data);
1078 void (*register_protoinfo)(void);
1079 void (*register_handoff)(void);
1086void proto_init(GSList *register_all_plugin_protocols_list,
1087 GSList *register_all_plugin_handoffs_list, register_cb cb,
void *client_data);
1280 const
int start,
int length, const
unsigned encoding);
1284 const
int start,
int length, const
unsigned encoding);
1300 const
int start,
int length, const
unsigned encoding,
int *lenretval);
1304 const
int start,
int length, const
unsigned encoding,
int *lenretval);
1339 const
int start,
int length, const
unsigned encoding, int32_t *retval);
1343 const
int start,
int length, const
unsigned encoding, int64_t *retval);
1347 const
int start,
int length, const
unsigned encoding, uint32_t *retval);
1351 const
int start,
int length, const
unsigned encoding, uint64_t *retval);
1355 const
int start,
int length, const
unsigned encoding, uint64_t *retval,
int *lenretval);
1359 const
int start,
int length, const
unsigned encoding,
bool *retval);
1363 const
int start,
int length, const
unsigned encoding, ws_in4_addr *retval);
1381 const
int start,
int length, const
unsigned encoding,
ws_in6_addr *retval);
1399 const
int start,
int length, const
unsigned encoding, uint8_t *retval);
1416 const
int start,
int length,
1417 const
unsigned encoding,
float *retval);
1434 const
int start,
int length,
1435 const
unsigned encoding,
double *retval);
1468 tvbuff_t *tvb, const
int start,
int length, const
unsigned encoding,
1500 const
int start,
int length, const
unsigned encoding,
1526 const
int start,
int length, const
unsigned encoding,
1549 const
int start,
int length, const
unsigned encoding,
1570 const
int start,
int length, const
unsigned encoding,
1583 ...) G_GNUC_PRINTF(5,6);
1595 int length, const
char *format, va_list ap) G_GNUC_PRINTF(5, 0);
1622 proto_item **tree_item, const
char *format, ...) G_GNUC_PRINTF(7,8);
1643 int length, const
char *format, ...) G_GNUC_PRINTF(6,7);
1656 int length, const
char *format, ...) G_GNUC_PRINTF(6,7);
1668 int length, const uint8_t* start_ptr);
1682 int length, const uint8_t *start_ptr,
int ptr_length);
1719 const
int start,
int length, const
unsigned encoding,
1720 GByteArray *retval,
int *endoff,
int *err);
1736 int start,
int length, const uint8_t* start_ptr, const
char *format,
1737 ...) G_GNUC_PRINTF(7,8);
1752 int length, const uint8_t* start_ptr, const
char *format, ...) G_GNUC_PRINTF(7,8);
1764 int length, const
nstime_t* value_ptr);
1798 const
int start,
int length, const
unsigned encoding,
1799 nstime_t *retval,
int *endoff,
int *err);
1816 int start,
int length,
nstime_t* value_ptr, const
char *format, ...)
1833 int length,
nstime_t* value_ptr, const
char *format, ...) G_GNUC_PRINTF(7,8);
1845 int length, uint32_t value);
1861 int start,
int length, uint32_t value, const
char *format, ...)
1877 int length, uint32_t value, const
char *format, ...) G_GNUC_PRINTF(7,8);
1889 int length, ws_in4_addr value);
1905 int start,
int length, ws_in4_addr value, const
char *format, ...)
1921 int length, ws_in4_addr value, const
char *format, ...) G_GNUC_PRINTF(7,8);
1949 int start,
int length, const
ws_in6_addr *value_ptr, const
char *format,
1950 ...) G_GNUC_PRINTF(7,8);
1965 int length, const
ws_in6_addr *value_ptr, const
char *format, ...) G_GNUC_PRINTF(7,8);
1977 int length, const uint8_t* value);
1993 int start,
int length, const uint8_t* value, const
char *format, ...)
2009 int length, const uint8_t* value, const
char *format, ...) G_GNUC_PRINTF(7,8);
2021 int length, const
e_guid_t *value_ptr);
2037 int start,
int length, const
e_guid_t *value_ptr, const
char *format,
2038 ...) G_GNUC_PRINTF(7,8);
2053 int length, const
e_guid_t *value_ptr, const
char *format, ...) G_GNUC_PRINTF(7,8);
2065 int length, const uint8_t* value_ptr);
2081 int start,
int length, const uint8_t* value_ptr, const
char *format,
2082 ...) G_GNUC_PRINTF(7,8);
2097 int length, const uint8_t* value_ptr, const
char *format, ...) G_GNUC_PRINTF(7,8);
2120 int length, const
char* value);
2136 int start,
int length, const
char* value, const
char *format, ...)
2153 int length, const
char* value, const
char *format, ...) G_GNUC_PRINTF(7,8);
2165 int length, uint64_t value);
2181 tvbuff_t *tvb,
int start,
int length, uint64_t value,
2182 const
char *format, ...) G_GNUC_PRINTF(7,8);
2197 int length, uint64_t value, const
char *format, ...) G_GNUC_PRINTF(7,8);
2209 int length,
float value);
2225 int start,
int length,
float value, const
char *format, ...)
2241 int length,
float value, const
char *format, ...) G_GNUC_PRINTF(7,8);
2253 int length,
double value);
2269 int start,
int length,
double value, const
char *format, ...)
2285 int length,
double value, const
char *format, ...) G_GNUC_PRINTF(7,8);
2297 int length, uint32_t value);
2313 int start,
int length, uint32_t value, const
char *format, ...)
2330 int length, uint32_t value, const
char *format, ...) G_GNUC_PRINTF(7,8);
2342 int length, uint64_t value);
2358 int start,
int length, uint64_t value, const
char *format, ...)
2374 int length, uint64_t value, const
char *format, ...) G_GNUC_PRINTF(7,8);
2386 int length, int32_t value);
2402 int start,
int length, int32_t value, const
char *format, ...)
2419 int length, int32_t value, const
char *format, ...) G_GNUC_PRINTF(7,8);
2431 int length, int64_t value);
2447 int start,
int length, int64_t value, const
char *format, ...)
2463 int length, int64_t value, const
char *format, ...) G_GNUC_PRINTF(7,8);
2475 int length, const uint64_t value);
2491 int start,
int length, const uint64_t value, const
char *format, ...)
2507 int length, const uint64_t value, const
char *format, ...) G_GNUC_PRINTF(7,8);
2512 int *hf_addr_resolved;
2514 int *hf_oui_resolved;
2541 ...) G_GNUC_PRINTF(2,3);
2585 int parent_proto, enum ftenum field_type);
2717WS_DLL_PUBLIC
int proto_get_data_protocol(
void *cookie);
2718WS_DLL_PUBLIC
int proto_get_next_protocol(
void **cookie);
2719WS_DLL_PUBLIC
header_field_info *proto_get_first_protocol_field(const
int proto_id,
void **cookie);
2720WS_DLL_PUBLIC
header_field_info *proto_get_next_protocol_field(const
int proto_id,
void **cookie);
2813 bool *is_ip,
bool *is_tcp,
bool *is_udp,
bool *is_sctp,
2814 bool *is_tls,
bool *is_rtp,
bool *is_lte_rlc);
2994 const
int hf_hdr, const
int ett,
int * const *fields, const
unsigned encoding);
3020 const
int hf_hdr, const
int ett,
int * const *fields,
3021 const
unsigned encoding, uint64_t *retval);
3048 const
int hf_hdr, const
int ett,
int * const *fields, const
unsigned encoding, const
int flags);
3078 const
int hf_hdr, const
int ett,
int * const *fields,
3079 const
unsigned encoding, const
int flags, uint64_t *retval);
3102 const
int hf_hdr, const
int ett,
int * const *fields, const uint64_t value);
3129 const
int hf_hdr, const
int ett,
int * const *fields, const uint64_t value, const
int flags);
3147 const
int len,
int * const *fields, const
unsigned encoding);
3166 const
int len,
int * const *fields, const
unsigned encoding, uint64_t *retval);
3184 const
int len,
int * const *fields, const uint64_t value);
3210 const
int hf_hdr, const
int ett,
int * const *fields, struct
expert_field* exp, const
unsigned encoding);
3226 const
char *name, const
char *fallback,
3227 const
int ett,
int * const *fields, const
unsigned encoding, const
int flags);
3229#define BMT_NO_FLAGS 0x00
3230#define BMT_NO_APPEND 0x01
3231#define BMT_NO_INT 0x02
3232#define BMT_NO_FALSE 0x04
3233#define BMT_NO_TFS 0x08
3246 const int no_of_bits,
const unsigned encoding);
3265 const unsigned bit_offset,
const crumb_spec_t *crumb_spec, uint64_t *return_value);
3282 const unsigned bit_offset,
const crumb_spec_t *crumb_spec, uint16_t crumb_index);
3296 const unsigned bit_offset,
const int no_of_bits, uint64_t *return_value,
const unsigned encoding);
3312 const unsigned bit_offset,
const int no_of_bits, uint32_t value,
const unsigned encoding,
3313 const char *format, ...)
3330 const
unsigned bit_offset, const
int no_of_bits, uint64_t value, const
unsigned encoding,
3331 const
char *format, ...)
3349 const
unsigned bit_offset, const
int no_of_bits, uint64_t value, const
unsigned encoding,
3350 const
char *format, ...)
3368 const
unsigned bit_offset, const
int no_of_bits, int32_t value, const
unsigned encoding,
3369 const
char *format, ...)
3387 const
unsigned bit_offset, const
int no_of_bits, int64_t value, const
unsigned encoding,
3388 const
char *format, ...)
3406 const
unsigned bit_offset, const
int no_of_bits,
float value, const
unsigned encoding,
3407 const
char *format, ...)
3421 const
unsigned bit_offset, const
int no_of_chars);
3432 const
unsigned bit_offset, const
int no_of_chars);
3453 const
int hf_checksum, const
int hf_checksum_status, struct
expert_field* bad_checksum_expert,
3454 packet_info *pinfo, uint32_t computed_checksum, const
unsigned encoding, const
unsigned flags);
3475 const
int hf_checksum, const
int hf_checksum_status, struct
expert_field* bad_checksum_expert,
3476 packet_info *pinfo, const uint8_t *computed_checksum,
size_t checksum_len, const
unsigned flags);
3480 PROTO_CHECKSUM_E_BAD = 0,
3481 PROTO_CHECKSUM_E_GOOD,
3482 PROTO_CHECKSUM_E_UNVERIFIED,
3483 PROTO_CHECKSUM_E_NOT_PRESENT,
3484 PROTO_CHECKSUM_E_ILLEGAL
3485} proto_checksum_enum_e;
3487#define PROTO_CHECKSUM_NO_FLAGS 0x00
3488#define PROTO_CHECKSUM_VERIFY 0x01
3489#define PROTO_CHECKSUM_GENERATED 0x02
3490#define PROTO_CHECKSUM_IN_CKSUM 0x04
3491#define PROTO_CHECKSUM_ZERO 0x08
3492#define PROTO_CHECKSUM_NOT_PRESENT 0x10
3499WS_DLL_PUBLIC
unsigned char
3506WS_DLL_PUBLIC
unsigned char
3521 bool display_details,
3523 char *expr,
const int size );
3536hfinfo_char_value_format_display(
int display,
char buf[7], uint32_t value);
WS_DLL_PUBLIC bool proto_registrar_dump_fieldcount(void)
Definition proto.c:11781
WS_DLL_PUBLIC unsigned char proto_check_field_name_lower(const char *field_name)
Definition proto.c:14044
WS_DLL_PUBLIC int hf_text_only
Definition proto.h:48
WS_DLL_PUBLIC void proto_tree_add_bitmask_list_ret_uint64(proto_tree *tree, tvbuff_t *tvb, const unsigned offset, const int len, int *const *fields, const unsigned encoding, uint64_t *retval)
Definition proto.c:12955
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_eui64(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const uint64_t value)
Definition proto.c:6205
WS_DLL_PUBLIC proto_item * proto_tree_add_bitmask_value(proto_tree *tree, tvbuff_t *tvb, const unsigned offset, const int hf_hdr, const int ett, int *const *fields, const uint64_t value)
Definition proto.c:12905
#define ITEM_LABEL_LENGTH
Definition proto.h:51
WS_DLL_PUBLIC proto_item * proto_tree_add_string_format_value(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const char *value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC const char * proto_get_protocol_name(const int proto_id)
Definition proto.c:8476
WS_DLL_PUBLIC void proto_get_frame_protocols(const wmem_list_t *layers, bool *is_ip, bool *is_tcp, bool *is_udp, bool *is_sctp, bool *is_tls, bool *is_rtp, bool *is_lte_rlc)
Definition proto.c:8537
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_oid_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const uint8_t *value_ptr, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC bool proto_is_protocol_enabled(const protocol_t *protocol)
Definition proto.c:8632
struct _item_label_t item_label_t
WS_DLL_PUBLIC proto_item * proto_tree_add_int_format_value(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, int32_t value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_ether_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const uint8_t *value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_ipv4_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, ws_in4_addr value, const char *format,...) G_GNUC_PRINTF(7
proto_item * proto_tree_add_format_wsp_text(proto_tree *tree, tvbuff_t *tvb, int start, int length)
Definition proto.c:1529
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_eui64_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const uint64_t value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item * proto_tree_add_time_format_value(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, nstime_t *value_ptr, const char *format,...) G_GNUC_PRINTF(7
#define FI_URL
Definition proto.h:858
WS_DLL_PUBLIC bool proto_field_is_referenced(proto_tree *tree, int proto_id)
Definition proto.c:901
WS_DLL_PUBLIC void proto_register_subtree_array(int *const *indices, const int num_indices)
Definition proto.c:9783
WS_DLL_PUBLIC proto_item * proto_tree_add_bits_item(proto_tree *tree, const int hf_index, tvbuff_t *tvb, const unsigned bit_offset, const int no_of_bits, const unsigned encoding)
Definition proto.c:13068
WS_DLL_PUBLIC bool tree_expanded(int tree_type)
Definition proto.c:14050
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item proto_item proto_item proto_item proto_item * proto_tree_add_float_bits_format_value(proto_tree *tree, const int hf_index, tvbuff_t *tvb, const unsigned bit_offset, const int no_of_bits, float value, const unsigned encoding, const char *format,...) G_GNUC_PRINTF(8
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_bytes(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const uint8_t *start_ptr)
Definition proto.c:4759
WS_DLL_PUBLIC proto_item * proto_tree_add_item_ret_int(proto_tree *tree, int hfindex, tvbuff_t *tvb, const int start, int length, const unsigned encoding, int32_t *retval)
Definition proto.c:3263
WS_DLL_PUBLIC proto_item * proto_tree_add_bytes_format_value(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const uint8_t *start_ptr, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item * proto_tree_add_bits_ret_val(proto_tree *tree, const int hf_index, tvbuff_t *tvb, const unsigned bit_offset, const int no_of_bits, uint64_t *return_value, const unsigned encoding)
Definition proto.c:13453
WS_DLL_PUBLIC proto_item * proto_tree_add_item_new_ret_length(proto_tree *tree, header_field_info *hfinfo, tvbuff_t *tvb, const int start, int length, const unsigned encoding, int *lenretval)
Definition proto.c:4397
WS_DLL_PUBLIC proto_item * proto_tree_add_split_bits_item_ret_val(proto_tree *tree, const int hf_index, tvbuff_t *tvb, const unsigned bit_offset, const crumb_spec_t *crumb_spec, uint64_t *return_value)
Definition proto.c:13245
WS_DLL_PUBLIC char * proto_list_layers(const packet_info *pinfo)
Definition proto.c:8602
WS_DLL_PUBLIC void proto_deregister_field(const int parent, int hf_id)
Definition proto.c:8796
void proto_tree_prime_with_hfid(proto_tree *tree, const int hfid)
void proto_add_deregistered_slice(size_t block_size, void *mem_block)
Definition proto.c:8832
WS_DLL_PUBLIC int proto_item_get_len(const proto_item *pi)
Definition proto.c:7831
WS_DLL_PUBLIC int proto_get_id_by_short_name(const char *short_name)
Definition proto.c:8462
WS_DLL_PUBLIC proto_item * proto_tree_add_checksum(proto_tree *tree, tvbuff_t *tvb, const unsigned offset, const int hf_checksum, const int hf_checksum_status, struct expert_field *bad_checksum_expert, packet_info *pinfo, uint32_t computed_checksum, const unsigned encoding, const unsigned flags)
Definition proto.c:13848
WS_DLL_PUBLIC void proto_tree_add_bitmask_list_value(proto_tree *tree, tvbuff_t *tvb, const unsigned offset, const int len, int *const *fields, const uint64_t value)
Definition proto.c:12971
WS_DLL_PUBLIC proto_item * proto_tree_add_boolean_format_value(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, uint64_t value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_oid(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const uint8_t *value_ptr)
Definition proto.c:5250
WS_DLL_PUBLIC bool proto_is_pino(const protocol_t *protocol)
Definition proto.c:8625
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_uint(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, uint32_t value)
Definition proto.c:5830
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_bytes_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const uint8_t *start_ptr, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_int_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, int32_t value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_string(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const char *value)
Definition proto.c:5353
WS_DLL_PUBLIC proto_item * proto_tree_add_bytes_item(proto_tree *tree, int hfindex, tvbuff_t *tvb, const int start, int length, const unsigned encoding, GByteArray *retval, int *endoff, int *err)
Definition proto.c:4465
int proto_registrar_get_length(const int n)
Definition proto.c:11244
WS_DLL_PUBLIC const char * proto_registrar_get_name(const int n)
Definition proto.c:11195
WS_DLL_PUBLIC void proto_registrar_dump_elastic(const char *filter)
Definition proto.c:11889
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_float_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, float value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC void proto_item_fill_label(const field_info *finfo, char *label_str, size_t *value_offset)
Definition proto.c:9933
WS_DLL_PUBLIC void proto_set_decoding(const int proto_id, const bool enabled)
Definition proto.c:8682
WS_DLL_PUBLIC bool proto_name_already_registered(const char *name)
Definition proto.c:8438
WS_DLL_PUBLIC void proto_register_field_array(const int parent, hf_register_info *hf, const int num_records)
Definition proto.c:8762
WS_DLL_PUBLIC GPtrArray * proto_find_first_finfo(proto_tree *tree, const int hfindex)
Definition proto.c:11363
WS_DLL_PUBLIC const char * proto_get_protocol_filter_name(const int proto_id)
Definition proto.c:8504
hf_ref_type
Definition proto.h:753
WS_DLL_PUBLIC void WS_DLL_PUBLIC void proto_item_append_text(proto_item *pi, const char *format,...) G_GNUC_PRINTF(2
WS_DLL_PUBLIC proto_item * proto_tree_add_float_format_value(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, float value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_double_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, double value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC const char * proto_get_protocol_long_name(const protocol_t *protocol)
Definition proto.c:8496
WS_DLL_PUBLIC proto_item * proto_tree_add_ether_format_value(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const uint8_t *value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC enum ftenum proto_registrar_get_ftype(const int n)
Definition proto.c:11213
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_guid_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const e_guid_t *value_ptr, const char *format,...) G_GNUC_PRINTF(7
#define FI_RESET_FLAG(fi, flag)
Definition proto.h:881
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_string_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const char *value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC void proto_initialize_all_prefixes(void)
Definition proto.c:1000
WS_DLL_PUBLIC proto_item * proto_item_get_parent(const proto_item *pi)
Definition proto.c:7987
WS_DLL_PUBLIC int proto_registrar_get_id_byname(const char *field_name)
Definition proto.c:1084
WS_DLL_PUBLIC proto_item * proto_tree_add_item_ret_display_string_and_length(proto_tree *tree, int hfindex, tvbuff_t *tvb, const int start, int length, const unsigned encoding, wmem_allocator_t *scope, char **retval, int *lenretval)
Definition proto.c:4150
WS_DLL_PUBLIC header_field_info * proto_registrar_get_byalias(const char *alias_name)
Definition proto.c:1053
WS_DLL_PUBLIC proto_item * proto_tree_add_item_ret_float(proto_tree *tree, int hfindex, tvbuff_t *tvb, const int start, int length, const unsigned encoding, float *retval)
Parse a float from the buffer and add it to the tree, returning the item added and the parsed value v...
Definition proto.c:3860
WS_DLL_PUBLIC GPtrArray * proto_all_finfos(proto_tree *tree)
Definition proto.c:11393
WS_DLL_PUBLIC void proto_tree_set_appendix(proto_tree *tree, tvbuff_t *tvb, int start, const int length)
Definition proto.c:8101
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_float(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, float value)
Definition proto.c:5700
WS_DLL_PUBLIC void proto_heuristic_dissector_foreach(const protocol_t *protocol, GFunc func, void *user_data)
Definition proto.c:8528
WS_DLL_PUBLIC proto_item * proto_tree_add_ipxnet_format_value(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, uint32_t value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_tree * proto_tree_get_parent_tree(proto_tree *tree)
Definition proto.c:8030
WS_DLL_PUBLIC int proto_register_protocol_in_name_only(const char *name, const char *short_name, const char *filter_name, int parent_proto, enum ftenum field_type)
Definition proto.c:8236
struct _proto_node proto_node
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_time_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, nstime_t *value_ptr, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC char * proto_construct_match_selected_string(const field_info *finfo, struct epan_dissect *edt)
Definition proto.c:12418
WS_DLL_PUBLIC const char * proto_get_protocol_short_name(const protocol_t *protocol)
Definition proto.c:8488
WS_DLL_PUBLIC char * proto_find_undecoded_data(proto_tree *tree, unsigned length)
Definition proto.c:11479
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_int64(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, int64_t value)
Definition proto.c:6110
WS_DLL_PUBLIC int proto_item_fill_display_label(const field_info *fi, char *display_label_str, const int label_str_size)
Definition proto.c:6952
WS_DLL_PUBLIC bool proto_is_protocol_enabled_by_default(const protocol_t *protocol)
Definition proto.c:8646
WS_DLL_PUBLIC field_info * proto_find_field_from_offset(proto_tree *tree, unsigned offset, tvbuff_t *tvb)
Definition proto.c:11440
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_ipxnet_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, uint32_t value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC void proto_registrar_dump_values(void)
Definition proto.c:11566
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_guid(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const e_guid_t *value_ptr)
Definition proto.c:5173
WS_DLL_PUBLIC proto_item * proto_tree_add_bitmask_len(proto_tree *tree, tvbuff_t *tvb, const unsigned offset, const unsigned len, const int hf_hdr, const int ett, int *const *fields, struct expert_field *exp, const unsigned encoding)
Definition proto.c:12993
WS_DLL_PUBLIC void tree_expanded_set(int tree_type, bool value)
Definition proto.c:14060
WS_DLL_PUBLIC proto_item * proto_tree_add_item_ret_double(proto_tree *tree, int hfindex, tvbuff_t *tvb, const int start, int length, const unsigned encoding, double *retval)
Parse a double from the buffer and add it to the tree, returning the item added and the parsed value ...
Definition proto.c:3899
WS_DLL_PUBLIC void proto_item_set_bits_offset_len(proto_item *ti, int bits_offset, int bits_len)
Definition proto.c:7842
proto_item proto_item WS_DLL_PUBLIC proto_tree * proto_tree_add_subtree(proto_tree *tree, tvbuff_t *tvb, int start, int length, int idx, proto_item **tree_item, const char *text)
Definition proto.c:1459
#define FI_GET_FLAG(fi, flag)
Definition proto.h:873
void proto_tree_add_split_bits_crumb(proto_tree *tree, const int hf_index, tvbuff_t *tvb, const unsigned bit_offset, const crumb_spec_t *crumb_spec, uint16_t crumb_index)
Definition proto.c:13423
proto_node proto_item
Definition proto.h:913
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item struct _mac_hf_list_t mac_hf_list_t
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_ipxnet(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, uint32_t value)
Definition proto.c:4950
WS_DLL_PUBLIC proto_item * proto_tree_add_oid_format_value(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const uint8_t *value_ptr, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC int proto_registrar_get_parent(const int n)
Definition proto.c:11222
WS_DLL_PUBLIC proto_item * proto_tree_add_uint64_format_value(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, uint64_t value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_tree * proto_item_add_subtree(proto_item *pi, const int idx) G_GNUC_WARN_UNUSED_RESULT
Definition proto.c:7957
proto_item * proto_tree_add_text_internal(proto_tree *tree, tvbuff_t *tvb, int start, int length, const char *format,...) G_GNUC_PRINTF(5
WS_DLL_PUBLIC proto_item * proto_tree_add_double_format_value(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, double value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item proto_item proto_item * proto_tree_add_int_bits_format_value(proto_tree *tree, const int hf_index, tvbuff_t *tvb, const unsigned bit_offset, const int no_of_bits, int32_t value, const unsigned encoding, const char *format,...) G_GNUC_PRINTF(8
WS_DLL_PUBLIC proto_item * proto_tree_add_uint_bits_format_value(proto_tree *tree, const int hf_index, tvbuff_t *tvb, const unsigned bit_offset, const int no_of_bits, uint32_t value, const unsigned encoding, const char *format,...) G_GNUC_PRINTF(8
WS_DLL_PUBLIC proto_item * proto_tree_add_mac48_detail(const mac_hf_list_t *list_specific, const mac_hf_list_t *list_generic, int idx, tvbuff_t *tvb, proto_tree *tree, int offset)
Definition proto.c:6279
WS_DLL_PUBLIC header_field_info * proto_registrar_get_nth(unsigned hfindex)
Definition proto.c:925
#define FI_HIDDEN
Definition proto.h:853
WS_DLL_PUBLIC proto_item * proto_tree_add_item_ret_ether(proto_tree *tree, int hfindex, tvbuff_t *tvb, const int start, int length, const unsigned encoding, uint8_t *retval)
Parse an ethernet address from the buffer and add it to the tree, writing the value to the pointer sp...
Definition proto.c:4030
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_ipv4(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, ws_in4_addr value)
Definition proto.c:5015
WS_DLL_PUBLIC proto_item * proto_item_get_parent_nth(proto_item *pi, int gen)
Definition proto.c:8009
WS_DLL_PUBLIC unsigned char proto_check_field_name(const char *field_name)
Definition proto.c:14038
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_double(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, double value)
Definition proto.c:5765
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_ipv6(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const ws_in6_addr *value_ptr)
Definition proto.c:5082
WS_DLL_PUBLIC proto_item * proto_tree_add_uint_format_value(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, uint32_t value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC GPtrArray * proto_get_finfo_ptr_array(const proto_tree *tree, const int hfindex)
Definition proto.c:11273
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item proto_item proto_item proto_item proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_ts_23_038_7bits_packed_item(proto_tree *tree, const int hfindex, tvbuff_t *tvb, const unsigned bit_offset, const int no_of_chars)
Definition proto.c:13782
void proto_tree_set_fake_protocols(proto_tree *tree, bool fake_protocols)
Definition proto.c:887
void proto_tree_prime_with_hfid_print(proto_tree *tree, const int hfid)
WS_DLL_PUBLIC proto_item * proto_tree_add_bitmask_with_flags_ret_uint64(proto_tree *tree, tvbuff_t *tvb, const unsigned offset, const int hf_hdr, const int ett, int *const *fields, const unsigned encoding, const int flags, uint64_t *retval)
Definition proto.c:12845
bool proto_deregister_protocol(const char *short_name)
Definition proto.c:8295
WS_DLL_PUBLIC proto_item * proto_tree_add_guid_format_value(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const e_guid_t *value_ptr, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC bool proto_is_frame_protocol(const wmem_list_t *layers, const char *proto_name)
Definition proto.c:8577
WS_DLL_PUBLIC void proto_add_deregistered_data(void *data)
Definition proto.c:8826
field_display_e
Definition proto.h:680
WS_DLL_PUBLIC const char * proto_registrar_get_abbrev(const int n)
Definition proto.c:11204
void(* prefix_initializer_t)(const char *match)
Definition proto.h:2606
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item proto_item proto_item proto_item * proto_tree_add_int64_bits_format_value(proto_tree *tree, const int hf_index, tvbuff_t *tvb, const unsigned bit_offset, const int no_of_bits, int64_t value, const unsigned encoding, const char *format,...) G_GNUC_PRINTF(8
proto_item proto_item * proto_tree_add_text_valist_internal(proto_tree *tree, tvbuff_t *tvb, int start, int length, const char *format, va_list ap) G_GNUC_PRINTF(5
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item proto_item * proto_tree_add_boolean_bits_format_value(proto_tree *tree, const int hf_index, tvbuff_t *tvb, const unsigned bit_offset, const int no_of_bits, uint64_t value, const unsigned encoding, const char *format,...) G_GNUC_PRINTF(8
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_int(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, int32_t value)
Definition proto.c:6015
WS_DLL_PUBLIC bool proto_tree_set_visible(proto_tree *tree, bool visible)
Definition proto.c:877
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_int64_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, int64_t value, const char *format,...) G_GNUC_PRINTF(7
void proto_cleanup(void)
Definition proto.c:735
WS_DLL_PUBLIC proto_item * proto_tree_add_time_item(proto_tree *tree, int hfindex, tvbuff_t *tvb, const int start, int length, const unsigned encoding, nstime_t *retval, int *endoff, int *err)
Definition proto.c:4593
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_ipv6_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const ws_in6_addr *value_ptr, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC WS_NORETURN void proto_report_dissector_bug(const char *format,...) G_GNUC_PRINTF(1
WS_DLL_PUBLIC int proto_get_id_by_filter_name(const char *filter_name)
Definition proto.c:8448
void proto_add_heuristic_dissector(protocol_t *protocol, const char *short_name)
Definition proto.c:8514
WS_DLL_PUBLIC proto_tree * proto_item_get_subtree(proto_item *pi)
Definition proto.c:7975
WS_DLL_PUBLIC void proto_tree_free(proto_tree *tree)
Definition proto.c:851
WS_DLL_PUBLIC void proto_registrar_dump_fields(void)
Definition proto.c:12051
WS_DLL_PUBLIC int proto_get_first_protocol(void **cookie)
Definition proto.c:8355
WS_DLL_PUBLIC void WS_DLL_PUBLIC void WS_DLL_PUBLIC void WS_DLL_PUBLIC void proto_item_set_len(proto_item *pi, const int length)
Definition proto.c:7786
WS_DLL_PUBLIC proto_item * proto_tree_add_none_format(proto_tree *tree, const int hfindex, tvbuff_t *tvb, const int start, int length, const char *format,...) G_GNUC_PRINTF(6
WS_DLL_PUBLIC proto_item * proto_tree_add_bitmask(proto_tree *tree, tvbuff_t *tvb, const unsigned offset, const int hf_hdr, const int ett, int *const *fields, const unsigned encoding)
Definition proto.c:12833
WS_DLL_PUBLIC proto_item * proto_tree_add_bitmask_value_with_flags(proto_tree *tree, tvbuff_t *tvb, const unsigned offset, const int hf_hdr, const int ett, int *const *fields, const uint64_t value, const int flags)
Definition proto.c:12914
WS_DLL_PUBLIC proto_item * proto_tree_add_item_ret_time_string(proto_tree *tree, int hfindex, tvbuff_t *tvb, const int start, int length, const unsigned encoding, wmem_allocator_t *scope, char **retval)
Definition proto.c:4278
WS_DLL_PUBLIC void proto_tree_move_item(proto_tree *tree, proto_item *fixed_item, proto_item *item_to_move)
Definition proto.c:8054
WS_DLL_PUBLIC proto_item * proto_tree_add_ascii_7bits_item(proto_tree *tree, const int hfindex, tvbuff_t *tvb, const unsigned bit_offset, const int no_of_chars)
Definition proto.c:13810
proto_node proto_tree
Definition proto.h:911
WS_DLL_PUBLIC char * proto_item_get_display_repr(wmem_allocator_t *scope, proto_item *pi)
Definition proto.c:7851
WS_DLL_PUBLIC bool proto_can_match_selected(const field_info *finfo, struct epan_dissect *edt)
Definition proto.c:12406
WS_DLL_PUBLIC GPtrArray * proto_find_finfo(proto_tree *tree, const int hfindex)
Definition proto.c:11344
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_uint64_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, uint64_t value, const char *format,...) G_GNUC_PRINTF(7
proto_tree * proto_tree_create_root(struct _packet_info *pinfo)
Definition proto.c:7863
WS_DLL_PUBLIC void proto_disable_by_default(const int proto_id)
Definition proto.c:8670
WS_DLL_PUBLIC void proto_item_set_text(proto_item *pi, const char *format,...) G_GNUC_PRINTF(2
WS_DLL_PUBLIC proto_item * proto_tree_add_debug_text(proto_tree *tree, const char *format,...) G_GNUC_PRINTF(2
WS_DLL_PUBLIC proto_item * proto_tree_add_bytes_with_length(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const uint8_t *start_ptr, int ptr_length)
Definition proto.c:4784
WS_DLL_PUBLIC void WS_DLL_PUBLIC void WS_DLL_PUBLIC void proto_item_prepend_text(proto_item *pi, const char *format,...) G_GNUC_PRINTF(2
WS_DLL_PUBLIC proto_item * proto_tree_add_item_new(proto_tree *tree, header_field_info *hfinfo, tvbuff_t *tvb, const int start, int length, const unsigned encoding)
Definition proto.c:4362
WS_DLL_PUBLIC proto_item * proto_tree_add_int64_format_value(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, int64_t value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC void proto_tree_add_bitmask_list(proto_tree *tree, tvbuff_t *tvb, const unsigned offset, const int len, int *const *fields, const unsigned encoding)
Definition proto.c:12942
WS_DLL_PUBLIC proto_item * proto_tree_get_parent(proto_tree *tree)
Definition proto.c:8023
WS_DLL_PUBLIC void proto_register_plugin(const proto_plugin *plugin)
WS_DLL_PUBLIC proto_item * proto_tree_add_item_ret_string_and_length(proto_tree *tree, int hfindex, tvbuff_t *tvb, const int start, int length, const unsigned encoding, wmem_allocator_t *scope, const uint8_t **retval, int *lenretval)
Definition proto.c:4069
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_boolean_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, uint64_t value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item * proto_tree_add_item_ret_display_string(proto_tree *tree, int hfindex, tvbuff_t *tvb, const int start, int length, const unsigned encoding, wmem_allocator_t *scope, char **retval)
Definition proto.c:4266
WS_DLL_PUBLIC proto_tree * proto_tree_add_subtree_format(proto_tree *tree, tvbuff_t *tvb, int start, int length, int idx, proto_item **tree_item, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC void proto_set_cant_toggle(const int proto_id)
Definition proto.c:8741
WS_DLL_PUBLIC bool proto_tracking_interesting_fields(const proto_tree *tree)
Definition proto.c:11286
WS_DLL_PUBLIC void proto_register_prefix(const char *prefix, prefix_initializer_t initializer)
Definition proto.c:983
WS_DLL_PUBLIC int proto_register_protocol(const char *name, const char *short_name, const char *filter_name)
Definition proto.c:8166
WS_DLL_PUBLIC void proto_registrar_dump_protocols(void)
Definition proto.c:11503
WS_DLL_PUBLIC proto_item * proto_tree_add_checksum_bytes(proto_tree *tree, tvbuff_t *tvb, const unsigned offset, const int hf_checksum, const int hf_checksum_status, struct expert_field *bad_checksum_expert, packet_info *pinfo, const uint8_t *computed_checksum, size_t checksum_len, const unsigned flags)
Definition proto.c:13945
const char * proto_custom_set(proto_tree *tree, GSList *field_id, int occurrence, bool display_details, char *result, char *expr, const int size)
Definition proto.c:7236
bool proto_check_for_protocol_or_field(const proto_tree *tree, const int id)
Definition proto.c:11255
WS_DLL_PUBLIC proto_item * proto_tree_add_ipv6_format_value(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const ws_in6_addr *value_ptr, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_time(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const nstime_t *value_ptr)
Definition proto.c:4883
char * proto_custom_get_filter(struct epan_dissect *edt, GSList *field_id, int occurrence)
Definition proto.c:7469
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_protocol_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const char *format,...) G_GNUC_PRINTF(6
WS_DLL_PUBLIC proto_item * proto_tree_add_bitmask_with_flags(proto_tree *tree, tvbuff_t *tvb, const unsigned offset, const int hf_hdr, const int ett, int *const *fields, const unsigned encoding, const int flags)
Definition proto.c:12880
WS_DLL_PUBLIC proto_tree proto_item * proto_tree_add_format_text(proto_tree *tree, tvbuff_t *tvb, int start, int length)
Definition proto.c:1510
WS_DLL_PUBLIC proto_tree * proto_tree_get_root(proto_tree *tree)
Definition proto.c:8044
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_uint_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, uint32_t value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_uint64_bits_format_value(proto_tree *tree, const int hf_index, tvbuff_t *tvb, const unsigned bit_offset, const int no_of_bits, uint64_t value, const unsigned encoding, const char *format,...) G_GNUC_PRINTF(8
WS_DLL_PUBLIC bool proto_registrar_dump_field_completions(const char *prefix)
Definition proto.c:12162
WS_DLL_PUBLIC bool proto_can_toggle_protocol(const int proto_id)
Definition proto.c:8657
void proto_init(GSList *register_all_plugin_protocols_list, GSList *register_all_plugin_handoffs_list, register_cb cb, void *client_data)
Definition proto.c:557
WS_DLL_PUBLIC void proto_registrar_dump_ftypes(void)
Definition proto.c:12227
WS_DLL_PUBLIC proto_item * proto_tree_add_ipv4_format_value(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, ws_in4_addr value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC protocol_t * find_protocol_by_id(const int proto_id)
Definition proto.c:8417
WS_DLL_PUBLIC void proto_reenable_all(void)
Definition proto.c:8723
WS_DLL_PUBLIC bool proto_registrar_is_protocol(const int n)
Definition proto.c:11231
WS_DLL_PUBLIC void proto_disable_all(void)
Definition proto.c:8693
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_uint64(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, uint64_t value)
Definition proto.c:5923
WS_DLL_PUBLIC header_field_info * proto_registrar_get_byname(const char *field_name)
Definition proto.c:1011
WS_DLL_PUBLIC int num_tree_types
Definition proto.h:2931
#define PITEM_FINFO(proto_item)
Definition proto.h:981
WS_DLL_PUBLIC const char * proto_field_display_to_string(int field_display)
Definition proto.c:9037
WS_DLL_PUBLIC void proto_free_deregistered_fields(void)
Definition proto.c:8988
#define FI_GENERATED
Definition proto.h:856
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_boolean(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, uint64_t value)
Definition proto.c:5539
#define FI_SET_FLAG(fi, flag)
Definition proto.h:875
WS_DLL_PUBLIC proto_item * proto_tree_add_item_ret_ipv6(proto_tree *tree, int hfindex, tvbuff_t *tvb, const int start, int length, const unsigned encoding, ws_in6_addr *retval)
Parse an ipv6 address from the buffer and add it to the tree, writing the value to the pointer specif...
Definition proto.c:3991
WS_DLL_PUBLIC proto_item * proto_tree_add_item_ret_string(proto_tree *tree, int hfindex, tvbuff_t *tvb, const int start, int length, const unsigned encoding, wmem_allocator_t *scope, const uint8_t **retval)
Definition proto.c:4140
WS_DLL_PUBLIC int proto_get_id(const protocol_t *protocol)
Definition proto.c:8432
WS_DLL_PUBLIC proto_item * proto_tree_add_eui64_format_value(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const uint64_t value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC void proto_register_alias(const int proto_id, const char *alias_name)
Definition proto.c:8337
WS_DLL_PUBLIC void proto_free_field_strings(ftenum_t field_type, unsigned int field_display, const void *field_strings)
Definition proto.c:8842
WS_DLL_PUBLIC proto_item * proto_tree_add_bitmask_text(proto_tree *tree, tvbuff_t *tvb, const unsigned offset, const unsigned len, const char *name, const char *fallback, const int ett, int *const *fields, const unsigned encoding, const int flags)
Definition proto.c:13045
WS_DLL_PUBLIC void proto_item_set_end(proto_item *pi, tvbuff_t *tvb, int end)
Definition proto.c:7811
WS_DLL_PUBLIC proto_item * proto_tree_add_bitmask_ret_uint64(proto_tree *tree, tvbuff_t *tvb, const unsigned offset, const int hf_hdr, const int ett, int *const *fields, const unsigned encoding, uint64_t *retval)
Definition proto.c:12807
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * proto_tree_add_ether(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, const uint8_t *value)
Definition proto.c:5468
@ HF_REF_TYPE_INDIRECT
Definition proto.h:755
@ HF_REF_TYPE_NONE
Definition proto.h:754
@ HF_REF_TYPE_DIRECT
Definition proto.h:756
@ HF_REF_TYPE_PRINT
Definition proto.h:757
@ ABSOLUTE_TIME_DOY_UTC
Definition proto.h:713
@ BASE_PT_UDP
Definition proto.h:702
@ BASE_HEX_DEC
Definition proto.h:688
@ BASE_HEX
Definition proto.h:685
@ ABSOLUTE_TIME_NTP_UTC
Definition proto.h:714
@ BASE_EXP
Definition proto.h:690
@ ABSOLUTE_TIME_UTC
Definition proto.h:712
@ BASE_DEC
Definition proto.h:684
@ ABSOLUTE_TIME_UNIX
Definition proto.h:715
@ BASE_PT_TCP
Definition proto.h:703
@ BASE_DEC_HEX
Definition proto.h:687
@ BASE_OUI
Definition proto.h:708
@ SEP_COLON
Definition proto.h:695
@ BASE_PT_SCTP
Definition proto.h:705
@ BASE_NETMASK
Definition proto.h:699
@ ABSOLUTE_TIME_LOCAL
Definition proto.h:711
@ BASE_PT_DCCP
Definition proto.h:704
@ BASE_STR_WSP
Definition proto.h:718
@ BASE_NONE
Definition proto.h:681
@ SEP_DOT
Definition proto.h:693
@ SEP_DASH
Definition proto.h:694
@ SEP_SPACE
Definition proto.h:696
@ BASE_OCT
Definition proto.h:686
@ BASE_CUSTOM
Definition proto.h:689
Definition guid-utils.h:23
Definition ftypes-int.h:17
size_t value_pos
Definition proto.h:808
size_t value_len
Definition proto.h:809
Definition packet_info.h:43
Definition value_string.h:25
Definition wmem_allocator.h:27
Definition wmem_list.c:23
Definition inet_addr.h:21
Definition epan_dissect.h:28
tvbuff_t * ds_tvb
Definition proto.h:822
int proto_layer_num
Definition proto.h:825
int length
Definition proto.h:816
int total_layer_num
Definition proto.h:824
int appendix_start
Definition proto.h:817
uint32_t flags
Definition proto.h:820
const header_field_info * hfinfo
Definition proto.h:814
item_label_t * rep
Definition proto.h:821
int start
Definition proto.h:815
int appendix_length
Definition proto.h:818
int tree_type
Definition proto.h:819
int * p_id
Definition proto.h:801
header_field_info hfinfo
Definition proto.h:802
Definition tvbuff-int.h:35