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 TIME_VALS(x) (cast_same(const struct _time_value_string*, (x)))
73#define TFS(x) (cast_same(const struct true_false_string*, (x)))
76#define UNS(x) (cast_same(const struct unit_name_string*, (x)))
78typedef void (*custom_fmt_func_t)(
char *, uint32_t);
80typedef void (*custom_fmt_func_64_t)(
char *, uint64_t);
82typedef void (*custom_fmt_func_double_t)(
char *, double);
91#define CF_FUNC(x) ((const void *) (size_t) (x))
95#define RVALS(x) (cast_same(const struct _range_string*, (x)))
98#define FRAMENUM_TYPE(x) GINT_TO_POINTER(x)
115WS_DLL_PUBLIC WS_NORETURN
119#define REPORT_DISSECTOR_BUG(...) \
120 proto_report_dissector_bug(__VA_ARGS__)
127#define __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT(expression) \
128 ; __analysis_assume(expression);
130#define __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT(expression)
144#define __DISSECTOR_ASSERT_STRINGIFY(s) # s
146#define __DISSECTOR_ASSERT(expression, file, lineno) \
147 (REPORT_DISSECTOR_BUG("%s:%u: failed assertion \"%s\"", \
148 file, lineno, __DISSECTOR_ASSERT_STRINGIFY(expression)))
150#define __DISSECTOR_ASSERT_HINT(expression, file, lineno, hint) \
151 (REPORT_DISSECTOR_BUG("%s:%u: failed assertion \"%s\" (%s)", \
152 file, lineno, __DISSECTOR_ASSERT_STRINGIFY(expression), hint))
154#define DISSECTOR_ASSERT(expression) \
155 ((void) ((expression) ? (void)0 : \
156 __DISSECTOR_ASSERT (expression, __FILE__, __LINE__))) \
157 __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT(expression)
166#define DISSECTOR_ASSERT_HINT(expression, hint) \
167 ((void) ((expression) ? (void)0 : \
168 __DISSECTOR_ASSERT_HINT (expression, __FILE__, __LINE__, hint))) \
169 __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT(expression)
174#define DISSECTOR_ASSERT(expression) \
175{ if(!(expression)) _asm { int 3}; }
186#define DISSECTOR_ASSERT_NOT_REACHED() \
187 (REPORT_DISSECTOR_BUG("%s:%u: failed assertion \"DISSECTOR_ASSERT_NOT_REACHED\"", \
209#define __DISSECTOR_ASSERT_CMPINT(a, op, b, type, fmt) \
210 (REPORT_DISSECTOR_BUG("%s:%u: failed assertion " #a " " #op " " #b " (" fmt " " #op " " fmt ")", \
211 __FILE__, __LINE__, (type)a, (type)b))
213#define DISSECTOR_ASSERT_CMPINT(a, op, b) \
214 ((void) ((a op b) ? (void)0 : \
215 __DISSECTOR_ASSERT_CMPINT (a, op, b, int64_t, "%" PRId64))) \
216 __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT(a op b)
223#define DISSECTOR_ASSERT_CMPUINT(a, op, b) \
224 ((void) ((a op b) ? (void)0 : \
225 __DISSECTOR_ASSERT_CMPINT (a, op, b, uint64_t, "%" PRIu64))) \
226 __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT(a op b)
231#define DISSECTOR_ASSERT_CMPUINTHEX(a, op, b) \
232 ((void) ((a op b) ? (void)0 : \
233 __DISSECTOR_ASSERT_CMPINT (a, op, b, uint64_t, "0x%" PRIX64))) \
234 __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT(a op b)
244#define __DISSECTOR_ASSERT_FIELD_TYPE(hfinfo, t) \
245 (REPORT_DISSECTOR_BUG("%s:%u: field %s is not of type "#t, \
246 __FILE__, __LINE__, (hfinfo)->abbrev))
248#define DISSECTOR_ASSERT_FIELD_TYPE(hfinfo, t) \
249 ((void) (((hfinfo)->type == t) ? (void)0 : \
250 __DISSECTOR_ASSERT_FIELD_TYPE ((hfinfo), t))) \
251 __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT((hfinfo)->type == t)
253#define DISSECTOR_ASSERT_FIELD_TYPE_IS_INTEGRAL(hfinfo) \
254 ((void) ((FT_IS_INTEGER((hfinfo)->type)) ? (void)0 : \
255 REPORT_DISSECTOR_BUG("%s:%u: field %s is not of type FT_CHAR or an FT_{U}INTn type", \
256 __FILE__, __LINE__, (hfinfo)->abbrev))) \
257 __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT(FT_IS_INTEGER((hfinfo)->type))
259#define __DISSECTOR_ASSERT_FIELD_TYPE_IS_STRING(hfinfo) \
260 (REPORT_DISSECTOR_BUG("%s:%u: field %s is not of type FT_STRING, FT_STRINGZ, FT_STRINGZPAD, FT_STRINGZTRUNC, or FT_UINT_STRING", \
261 __FILE__, __LINE__, (hfinfo)->abbrev))
263#define DISSECTOR_ASSERT_FIELD_TYPE_IS_STRING(hfinfo) \
264 ((void) (FT_IS_STRING((hfinfo)->type) ? (void)0 : \
265 __DISSECTOR_ASSERT_FIELD_TYPE_IS_STRING ((hfinfo)))) \
266 __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT(FT_IS_STRING((hfinfo)->type))
268#define __DISSECTOR_ASSERT_FIELD_TYPE_IS_TIME(hfinfo) \
269 (REPORT_DISSECTOR_BUG("%s:%u: field %s is not of type FT_ABSOLUTE_TIME or FT_RELATIVE_TIME", \
270 __FILE__, __LINE__, (hfinfo)->abbrev))
272#define DISSECTOR_ASSERT_FIELD_TYPE_IS_TIME(hfinfo) \
273 ((void) (((hfinfo)->type == FT_ABSOLUTE_TIME || \
274 (hfinfo)->type == FT_RELATIVE_TIME) ? (void)0 : \
275 __DISSECTOR_ASSERT_FIELD_TYPE_IS_TIME ((hfinfo)))) \
276 __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT((hfinfo)->type == FT_ABSOLUTE_TIME || \
277 (hfinfo)->type == FT_RELATIVE_TIME)
330#define ENC_BIG_ENDIAN 0x00000000
331#define ENC_LITTLE_ENDIAN 0x80000000
333#if G_BYTE_ORDER == G_LITTLE_ENDIAN
334 #define ENC_HOST_ENDIAN ENC_LITTLE_ENDIAN
335 #define ENC_ANTI_HOST_ENDIAN ENC_BIG_ENDIAN
337 #define ENC_HOST_ENDIAN ENC_BIG_ENDIAN
338 #define ENC_ANTI_HOST_ENDIAN ENC_LITTLE_ENDIAN
348#define ENC_NA 0x00000000
378#define ENC_CHARENCODING_MASK 0x0000FFFE
379#define ENC_ASCII 0x00000000
380#define ENC_ISO_646_IRV ENC_ASCII
381#define ENC_UTF_8 0x00000002
382#define ENC_UTF_16 0x00000004
383#define ENC_UCS_2 0x00000006
384#define ENC_UCS_4 0x00000008
385#define ENC_ISO_8859_1 0x0000000A
386#define ENC_ISO_8859_2 0x0000000C
387#define ENC_ISO_8859_3 0x0000000E
388#define ENC_ISO_8859_4 0x00000010
389#define ENC_ISO_8859_5 0x00000012
390#define ENC_ISO_8859_6 0x00000014
391#define ENC_ISO_8859_7 0x00000016
392#define ENC_ISO_8859_8 0x00000018
393#define ENC_ISO_8859_9 0x0000001A
394#define ENC_ISO_8859_10 0x0000001C
395#define ENC_ISO_8859_11 0x0000001E
397#define ENC_ISO_8859_13 0x00000022
398#define ENC_ISO_8859_14 0x00000024
399#define ENC_ISO_8859_15 0x00000026
400#define ENC_ISO_8859_16 0x00000028
401#define ENC_WINDOWS_1250 0x0000002A
402#define ENC_3GPP_TS_23_038_7BITS_PACKED 0x0000002C
403#define ENC_3GPP_TS_23_038_7BITS ENC_3GPP_TS_23_038_7BITS_PACKED
404#define ENC_EBCDIC 0x0000002E
405#define ENC_MAC_ROMAN 0x00000030
406#define ENC_CP437 0x00000032
407#define ENC_ASCII_7BITS 0x00000034
408#define ENC_T61 0x00000036
409#define ENC_EBCDIC_CP037 0x00000038
410#define ENC_WINDOWS_1252 0x0000003A
411#define ENC_WINDOWS_1251 0x0000003C
412#define ENC_CP855 0x0000003E
413#define ENC_CP866 0x00000040
414#define ENC_ISO_646_BASIC 0x00000042
415#define ENC_BCD_DIGITS_0_9 0x00000044
416#define ENC_KEYPAD_ABC_TBCD 0x00000046
417#define ENC_KEYPAD_BC_TBCD 0x00000048
418#define ENC_3GPP_TS_23_038_7BITS_UNPACKED 0x0000004C
419#define ENC_ETSI_TS_102_221_ANNEX_A 0x0000004E
420#define ENC_GB18030 0x00000050
421#define ENC_EUC_KR 0x00000052
422#define ENC_APN_STR 0x00000054
423#define ENC_DECT_STANDARD_8BITS 0x00000056
424#define ENC_DECT_STANDARD_4BITS_TBCD 0x00000058
425#define ENC_EBCDIC_CP500 0x00000060
457#define ENC_ZIGBEE 0x40000000
467#define ENC_BOM 0x20000000
481#define ENC_STR_NUM 0x01000000
483#define ENC_STR_HEX 0x02000000
485#define ENC_STRING 0x03000000
487#define ENC_STR_MASK 0x0000FFFE
502#define ENC_NUM_PREF 0x00200000
514#define ENC_SEP_NONE 0x00010000
515#define ENC_SEP_COLON 0x00020000
516#define ENC_SEP_DASH 0x00040000
517#define ENC_SEP_DOT 0x00080000
518#define ENC_SEP_SPACE 0x00100000
520#define ENC_SEP_MASK 0x001F0000
526#define ENC_BCD_ODD_NUM_DIG 0x00010000
527#define ENC_BCD_SKIP_FIRST 0x00020000
612#define ENC_TIME_SECS_NSECS 0x00000000
613#define ENC_TIME_TIMESPEC 0x00000000
614#define ENC_TIME_NTP 0x00000002
615#define ENC_TIME_TOD 0x00000004
616#define ENC_TIME_RTPS 0x00000008
617#define ENC_TIME_NTP_BASE_ZERO 0x00000008
618#define ENC_TIME_SECS_USECS 0x00000010
619#define ENC_TIME_TIMEVAL 0x00000010
620#define ENC_TIME_SECS 0x00000012
621#define ENC_TIME_MSECS 0x00000014
622#define ENC_TIME_SECS_NTP 0x00000018
623#define ENC_TIME_RFC_3971 0x00000020
624#define ENC_TIME_MSEC_NTP 0x00000022
625#define ENC_TIME_MIP6 0x00000024
626#define ENC_TIME_MP4_FILE_SECS 0x00000026
627#define ENC_TIME_CLASSIC_MAC_OS_SECS 0x00000026
628#define ENC_TIME_NSECS 0x00000028
629#define ENC_TIME_USECS 0x00000030
630#define ENC_TIME_ZBEE_ZCL 0x00000032
639#define ENC_ISO_8601_DATE 0x00010000
640#define ENC_ISO_8601_TIME 0x00020000
641#define ENC_ISO_8601_DATE_TIME 0x00030000
642#define ENC_IMF_DATE_TIME 0x00040000
643#define ENC_RFC_822 0x00040000
644#define ENC_RFC_1123 0x00040000
645#define ENC_ISO_8601_DATE_TIME_BASIC 0x00100000
647#define ENC_STR_TIME_MASK 0x001F0000
656#define ENC_VARINT_PROTOBUF 0x00000002
661#define ENC_VARINT_QUIC 0x00000004
666#define ENC_VARINT_ZIGZAG 0x00000008
671#define ENC_VARINT_SDNV 0x00000010
673#define ENC_VARINT_MASK (ENC_VARINT_PROTOBUF|ENC_VARINT_QUIC|ENC_VARINT_ZIGZAG|ENC_VARINT_SDNV)
681#define FIELD_DISPLAY_E_MASK 0xFF
724#define FIELD_DISPLAY(d) ((d) & FIELD_DISPLAY_E_MASK)
726#define FIELD_DISPLAY_IS_ABSOLUTE_TIME(d) \
727 (FIELD_DISPLAY(d) >= ABSOLUTE_TIME_LOCAL && FIELD_DISPLAY(d) <= ABSOLUTE_TIME_UNIX)
731#define BASE_RANGE_STRING 0x00000100
732#define BASE_EXT_STRING 0x00000200
733#define BASE_VAL64_STRING 0x00000400
735#define BASE_ALLOW_ZERO 0x00000800
737#define BASE_UNIT_STRING 0x00001000
739#define BASE_NO_DISPLAY_VALUE 0x00002000
742#define BASE_PROTOCOL_INFO 0x00004000
744#define BASE_SPECIAL_VALS 0x00008000
746#define BASE_SHOW_ASCII_PRINTABLE 0x00010000
748#define BASE_SHOW_UTF_8_PRINTABLE 0x00020000
751#define IS_BASE_DUAL(b) ((b)==BASE_DEC_HEX||(b)==BASE_HEX_DEC)
754#define IS_BASE_PORT(b) (((b)==BASE_PT_UDP||(b)==BASE_PT_TCP||(b)==BASE_PT_DCCP||(b)==BASE_PT_SCTP))
793#define HFILL -1, 0, HF_REF_TYPE_NONE, -1, NULL
795#define HFILL_INIT(hf) \
796 (hf).hfinfo.id = -1; \
797 (hf).hfinfo.parent = 0; \
798 (hf).hfinfo.ref_type = HF_REF_TYPE_NONE; \
799 (hf).hfinfo.same_name_prev_id = -1; \
800 (hf).hfinfo.same_name_next = NULL;
842 unsigned crumb_bit_offset;
843 uint8_t crumb_bit_length;
856#define FI_HIDDEN 0x00000001
859#define FI_GENERATED 0x00000002
861#define FI_URL 0x00000004
864#define FI_LITTLE_ENDIAN 0x00000008
866#define FI_BIG_ENDIAN 0x00000010
868#define FI_BITS_OFFSET(n) (((n) & 63) << 5)
871#define FI_BITS_SIZE(n) (((n) & 63) << 12)
873#define FI_VARINT 0x00040000
876#define FI_GET_FLAG(fi, flag) ((fi) ? ((fi)->flags & (flag)) : 0)
878#define FI_SET_FLAG(fi, flag) \
881 (fi)->flags = (fi)->flags | (flag); \
884#define FI_RESET_FLAG(fi, flag) \
887 (fi)->flags = (fi)->flags & ~(flag); \
890#define FI_GET_BITS_OFFSET(fi) (FI_GET_FLAG(fi, FI_BITS_OFFSET(63)) >> 5)
891#define FI_GET_BITS_SIZE(fi) (FI_GET_FLAG(fi, FI_BITS_SIZE(63)) >> 12)
896 GHashTable *interesting_hfids;
903 unsigned start_idle_count;
930#define PI_SEVERITY_MASK 0x00F00000
932#define PI_COMMENT 0x00100000
934#define PI_CHAT 0x00200000
936#define PI_NOTE 0x00400000
938#define PI_WARN 0x00600000
940#define PI_ERROR 0x00800000
943#define PI_GROUP_MASK 0xFF000000
945#define PI_CHECKSUM 0x01000000
947#define PI_SEQUENCE 0x02000000
949#define PI_RESPONSE_CODE 0x03000000
951#define PI_REQUEST_CODE 0x04000000
953#define PI_UNDECODED 0x05000000
955#define PI_REASSEMBLE 0x06000000
957#define PI_MALFORMED 0x07000000
959#define PI_DEBUG 0x08000000
961#define PI_PROTOCOL 0x09000000
963#define PI_SECURITY 0x0a000000
965#define PI_COMMENTS_GROUP 0x0b000000
967#define PI_DECRYPTION 0x0c000000
969#define PI_ASSUMPTION 0x0d000000
971#define PI_DEPRECATED 0x0e000000
973#define PI_RECEIVE 0x0f000000
975#define PI_INTERFACE 0x10000000
977#define PI_DISSECTOR_BUG 0x11000000
985#define PNODE_FINFO(proto_node) ((proto_node)->finfo)
988#define PITEM_FINFO(proto_item) PNODE_FINFO(proto_item)
991#define PTREE_FINFO(proto_tree) PNODE_FINFO(proto_tree)
994#define PNODE_HFINFO(proto_node) ((proto_node)->hfinfo)
997#define PITEM_HFINFO(proto_item) PNODE_HFINFO(proto_item)
1000#define PTREE_HFINFO(proto_tree) PNODE_HFINFO(proto_tree)
1003#define PTREE_DATA(proto_tree) ((proto_tree)->tree_data)
1006#define PNODE_POOL(proto_node) ((proto_node)->tree_data->pinfo->pool)
1013static inline bool proto_item_is_hidden(
const proto_item *ti) {
1020#define PROTO_ITEM_IS_HIDDEN(ti) proto_item_is_hidden((ti))
1026static inline void proto_item_set_hidden(
proto_item *ti) {
1031#define PROTO_ITEM_SET_HIDDEN(ti) proto_item_set_hidden((ti))
1036static inline void proto_item_set_visible(
proto_item *ti) {
1041#define PROTO_ITEM_SET_VISIBLE(ti) proto_item_set_visible((ti))
1047static inline bool proto_item_is_generated(
const proto_item *ti)
1054#define PROTO_ITEM_IS_GENERATED(ti) proto_item_is_generated((ti))
1059static inline void proto_item_set_generated(
proto_item *ti) {
1064#define PROTO_ITEM_SET_GENERATED(ti) proto_item_set_generated((ti))
1071static inline bool proto_item_is_url(
const proto_item *ti)
1078#define PROTO_ITEM_IS_URL(ti) proto_item_is_url((ti))
1083static inline void proto_item_set_url(
proto_item *ti) {
1088#define PROTO_ITEM_SET_URL(ti) proto_item_set_url((ti))
1090typedef void (*proto_tree_foreach_func)(
proto_node *,
void *);
1091typedef bool (*proto_tree_traverse_func)(
proto_node *,
void *);
1093WS_DLL_PUBLIC
void proto_tree_children_foreach(
proto_tree *tree,
1094 proto_tree_foreach_func func,
void *data);
1097 void (*register_protoinfo)(void);
1098 void (*register_handoff)(void);
1108void proto_init(GSList *register_all_plugin_protocols_list,
1109 GSList *register_all_plugin_handoffs_list,
1110 register_entity_func register_func, register_entity_func handoff_func,
1116typedef void (*proto_execute_in_directory_func)(
void* param);
1325 const
int start,
int length, const
unsigned encoding);
1350 const
int start,
int length, const
unsigned encoding);
1366 const
int start,
int length, const
unsigned encoding,
int *lenretval);
1370 const
int start,
int length, const
unsigned encoding,
int *lenretval);
1405 const
int start,
int length, const
unsigned encoding, int32_t *retval);
1409 const
int start,
int length, const
unsigned encoding, int64_t *retval);
1413 const
int start,
int length, const
unsigned encoding, uint32_t *retval);
1417 const
int start,
int length, const
unsigned encoding, uint32_t *retval);
1421 const
int start,
int length, const
unsigned encoding, uint8_t *retval);
1425 const
int start,
int length, const
unsigned encoding, uint16_t *retval);
1429 const
int start,
int length, const
unsigned encoding, uint64_t *retval);
1433 const
int start,
int length, const
unsigned encoding, uint64_t *retval,
int *lenretval);
1437 const
int start,
int length, const
unsigned encoding,
bool *retval);
1441 const
int start,
int length, const
unsigned encoding,
ws_in4_addr *retval);
1459 const
int start,
int length, const
unsigned encoding,
ws_in6_addr *retval);
1477 const
int start,
int length, const
unsigned encoding, uint8_t *retval);
1494 const
int start,
int length,
1495 const
unsigned encoding,
float *retval);
1512 const
int start,
int length,
1513 const
unsigned encoding,
double *retval);
1546 tvbuff_t *tvb, const
int start,
int length, const
unsigned encoding,
1578 const
int start,
int length, const
unsigned encoding,
1604 const
int start,
int length, const
unsigned encoding,
1627 const
int start,
int length, const
unsigned encoding,
1648 const
int start,
int length, const
unsigned encoding,
1661 ...) G_GNUC_PRINTF(5,6);
1673 int length, const
char *format, va_list ap) G_GNUC_PRINTF(5, 0);
1700 proto_item **tree_item, const
char *format, ...) G_GNUC_PRINTF(7,8);
1721 int length, const
char *format, ...) G_GNUC_PRINTF(6,7);
1734 int length, const
char *format, ...) G_GNUC_PRINTF(6,7);
1746 int length, const uint8_t* start_ptr);
1760 int length, const uint8_t *start_ptr,
int ptr_length);
1797 const
unsigned start,
unsigned length, const
unsigned encoding,
1798 GByteArray *retval,
unsigned *endoff,
int *err);
1815 int start,
int length, const uint8_t* start_ptr, const
char *format,
1816 ...) G_GNUC_PRINTF(7,8);
1832 int length, const uint8_t* start_ptr, const
char *format, ...) G_GNUC_PRINTF(7,8);
1844 int length, const
nstime_t* value_ptr);
1878 const
unsigned start, const
unsigned length, const
unsigned encoding,
1879 nstime_t *retval,
unsigned *endoff,
int *err);
1896 int start,
int length,
nstime_t* value_ptr, const
char *format, ...)
1913 int length,
nstime_t* value_ptr, const
char *format, ...) G_GNUC_PRINTF(7,8);
1925 int length, uint32_t value);
1941 int start,
int length, uint32_t value, const
char *format, ...)
1957 int length, uint32_t value, const
char *format, ...) G_GNUC_PRINTF(7,8);
1985 int start,
int length,
ws_in4_addr value, const
char *format, ...)
2001 int length,
ws_in4_addr value, const
char *format, ...) G_GNUC_PRINTF(7,8);
2029 int start,
int length, const
ws_in6_addr *value_ptr, const
char *format,
2030 ...) G_GNUC_PRINTF(7,8);
2045 int length, const
ws_in6_addr *value_ptr, const
char *format, ...) G_GNUC_PRINTF(7,8);
2057 int length, const uint8_t* value);
2073 int start,
int length, const uint8_t* value, const
char *format, ...)
2089 int length, const uint8_t* value, const
char *format, ...) G_GNUC_PRINTF(7,8);
2101 int length, const
e_guid_t *value_ptr);
2117 int start,
int length, const
e_guid_t *value_ptr, const
char *format,
2118 ...) G_GNUC_PRINTF(7,8);
2133 int length, const
e_guid_t *value_ptr, const
char *format, ...) G_GNUC_PRINTF(7,8);
2145 int length, const uint8_t* value_ptr);
2161 int start,
int length, const uint8_t* value_ptr, const
char *format,
2162 ...) G_GNUC_PRINTF(7,8);
2177 int length, const uint8_t* value_ptr, const
char *format, ...) G_GNUC_PRINTF(7,8);
2200 int length, const
char* value);
2216 int start,
int length, const
char* value, const
char *format, ...)
2233 int length, const
char* value, const
char *format, ...) G_GNUC_PRINTF(7,8);
2245 int length, uint64_t value);
2261 tvbuff_t *tvb,
int start,
int length, uint64_t value,
2262 const
char *format, ...) G_GNUC_PRINTF(7,8);
2277 int length, uint64_t value, const
char *format, ...) G_GNUC_PRINTF(7,8);
2289 int length,
float value);
2305 int start,
int length,
float value, const
char *format, ...)
2321 int length,
float value, const
char *format, ...) G_GNUC_PRINTF(7,8);
2333 int length,
double value);
2349 int start,
int length,
double value, const
char *format, ...)
2365 int length,
double value, const
char *format, ...) G_GNUC_PRINTF(7,8);
2377 int length, uint32_t value);
2393 int start,
int length, uint32_t value, const
char *format, ...)
2410 int length, uint32_t value, const
char *format, ...) G_GNUC_PRINTF(7,8);
2422 int length, uint64_t value);
2438 int start,
int length, uint64_t value, const
char *format, ...)
2454 int length, uint64_t value, const
char *format, ...) G_GNUC_PRINTF(7,8);
2466 int length, int32_t value);
2482 int start,
int length, int32_t value, const
char *format, ...)
2499 int length, int32_t value, const
char *format, ...) G_GNUC_PRINTF(7,8);
2511 int length, int64_t value);
2527 int start,
int length, int64_t value, const
char *format, ...)
2543 int length, int64_t value, const
char *format, ...) G_GNUC_PRINTF(7,8);
2555 int length, const uint64_t value);
2571 int start,
int length, const uint64_t value, const
char *format, ...)
2587 int length, const uint64_t value, const
char *format, ...) G_GNUC_PRINTF(7,8);
2592 int *hf_addr_resolved;
2594 int *hf_oui_resolved;
2621 ...) G_GNUC_PRINTF(2,3);
2665 int parent_proto, enum ftenum field_type);
2805 size_t protocol_count;
2806 size_t deregistered_count;
2807 size_t same_name_count;
2819WS_DLL_PUBLIC
int proto_get_data_protocol(
void *cookie);
2820WS_DLL_PUBLIC
int proto_get_next_protocol(
void **cookie);
2821WS_DLL_PUBLIC
header_field_info *proto_get_first_protocol_field(
const int proto_id,
void **cookie);
2822WS_DLL_PUBLIC
header_field_info *proto_get_next_protocol_field(
const int proto_id,
void **cookie);
2915 bool *is_ip,
bool *is_tcp,
bool *is_udp,
bool *is_sctp,
2916 bool *is_tls,
bool *is_rtp,
bool *is_lte_rlc);
3105 const int hf_hdr,
const int ett,
int *
const *fields,
const unsigned encoding);
3131 const int hf_hdr,
const int ett,
int *
const *fields,
3132 const unsigned encoding, uint64_t *retval);
3159 const int hf_hdr,
const int ett,
int *
const *fields,
const unsigned encoding,
const int flags);
3189 const int hf_hdr,
const int ett,
int *
const *fields,
3190 const unsigned encoding,
const int flags, uint64_t *retval);
3213 const int hf_hdr,
const int ett,
int *
const *fields,
const uint64_t value);
3240 const int hf_hdr,
const int ett,
int *
const *fields,
const uint64_t value,
const int flags);
3258 const int len,
int *
const *fields,
const unsigned encoding);
3277 const int len,
int *
const *fields,
const unsigned encoding, uint64_t *retval);
3295 const int len,
int *
const *fields,
const uint64_t value);
3321 const int hf_hdr,
const int ett,
int *
const *fields,
struct expert_field* exp,
const unsigned encoding);
3337 const char *name,
const char *fallback,
3338 const int ett,
int *
const *fields,
const unsigned encoding,
const int flags);
3340#define BMT_NO_FLAGS 0x00
3341#define BMT_NO_APPEND 0x01
3342#define BMT_NO_INT 0x02
3343#define BMT_NO_FALSE 0x04
3344#define BMT_NO_TFS 0x08
3357 const int no_of_bits,
const unsigned encoding);
3376 const unsigned bit_offset,
const crumb_spec_t *crumb_spec, uint64_t *return_value);
3393 const unsigned bit_offset,
const crumb_spec_t *crumb_spec, uint16_t crumb_index);
3407 const unsigned bit_offset,
const int no_of_bits, uint64_t *return_value,
const unsigned encoding);
3423 const unsigned bit_offset,
const int no_of_bits, uint32_t value,
const unsigned encoding,
3424 const char *format, ...)
3441 const
unsigned bit_offset, const
int no_of_bits, uint64_t value, const
unsigned encoding,
3442 const
char *format, ...)
3460 const
unsigned bit_offset, const
int no_of_bits, uint64_t value, const
unsigned encoding,
3461 const
char *format, ...)
3479 const
unsigned bit_offset, const
int no_of_bits, int32_t value, const
unsigned encoding,
3480 const
char *format, ...)
3498 const
unsigned bit_offset, const
int no_of_bits, int64_t value, const
unsigned encoding,
3499 const
char *format, ...)
3517 const
unsigned bit_offset, const
int no_of_bits,
float value, const
unsigned encoding,
3518 const
char *format, ...)
3532 const
unsigned bit_offset, const
int no_of_chars);
3543 const
unsigned bit_offset, const
int no_of_chars);
3564 const
int hf_checksum, const
int hf_checksum_status, struct
expert_field* bad_checksum_expert,
3565 packet_info *pinfo, uint32_t computed_checksum, const
unsigned encoding, const
unsigned flags);
3586 const
int hf_checksum, const
int hf_checksum_status, struct
expert_field* bad_checksum_expert,
3587 packet_info *pinfo, const uint8_t *computed_checksum,
size_t checksum_len, const
unsigned flags);
3591 PROTO_CHECKSUM_E_BAD = 0,
3592 PROTO_CHECKSUM_E_GOOD,
3593 PROTO_CHECKSUM_E_UNVERIFIED,
3594 PROTO_CHECKSUM_E_NOT_PRESENT,
3595 PROTO_CHECKSUM_E_ILLEGAL
3596} proto_checksum_enum_e;
3598#define PROTO_CHECKSUM_NO_FLAGS 0x00
3599#define PROTO_CHECKSUM_VERIFY 0x01
3600#define PROTO_CHECKSUM_GENERATED 0x02
3601#define PROTO_CHECKSUM_IN_CKSUM 0x04
3602#define PROTO_CHECKSUM_ZERO 0x08
3603#define PROTO_CHECKSUM_NOT_PRESENT 0x10
3613WS_DLL_PUBLIC
unsigned char
3620WS_DLL_PUBLIC
unsigned char
3636 bool display_details,
3638 char *expr,
const int size );
WS_DLL_PUBLIC bool proto_registrar_dump_fieldcount(void)
Definition proto.c:12113
WS_DLL_PUBLIC unsigned char proto_check_field_name_lower(const char *field_name)
Definition proto.c:14358
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,...)
Definition proto.c:5489
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:13261
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,...)
Definition proto.c:6221
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:13211
#define ITEM_LABEL_LENGTH
Definition proto.h:51
WS_DLL_PUBLIC const char * proto_get_protocol_name(const int proto_id)
Definition proto.c:8692
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:8753
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,...)
Definition proto.c:4892
WS_DLL_PUBLIC bool proto_is_protocol_enabled(const protocol_t *protocol)
Definition proto.c:8861
struct _item_label_t item_label_t
WS_DLL_PUBLIC 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:13729
WS_DLL_PUBLIC proto_item * proto_tree_add_time_item(proto_tree *tree, int hfindex, tvbuff_t *tvb, const unsigned start, const unsigned length, const unsigned encoding, nstime_t *retval, unsigned *endoff, int *err)
Definition proto.c:4672
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,...)
Definition proto.c:5943
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,...)
Definition proto.c:4980
#define FI_URL
Definition proto.h:861
size_t value_pos
Definition proto.h:811
WS_DLL_PUBLIC bool proto_field_is_referenced(proto_tree *tree, int proto_id)
Definition proto.c:978
WS_DLL_PUBLIC void proto_register_subtree_array(int *const *indices, const int num_indices)
Definition proto.c:10034
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:13374
WS_DLL_PUBLIC bool tree_expanded(int tree_type)
Definition proto.c:14364
uint64_t bitmask
Definition proto.h:777
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:3302
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:13759
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:4462
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:13551
WS_DLL_PUBLIC char * proto_list_layers(const packet_info *pinfo)
Definition proto.c:8818
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:4961
WS_DLL_PUBLIC void proto_deregister_field(const int parent, int hf_id)
Definition proto.c:9031
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:9094
WS_DLL_PUBLIC int proto_item_get_len(const proto_item *pi)
Definition proto.c:8061
int same_name_prev_id
Definition proto.h:784
WS_DLL_PUBLIC int proto_get_id_by_short_name(const char *short_name)
Definition proto.c:8678
WS_DLL_PUBLIC void proto_item_set_len(proto_item *pi, const int length)
Definition proto.c:8019
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:14154
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,...)
Definition proto.c:4801
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:13277
WS_DLL_PUBLIC proto_item * proto_tree_add_bytes_item(proto_tree *tree, int hfindex, tvbuff_t *tvb, const unsigned start, unsigned length, const unsigned encoding, GByteArray *retval, unsigned *endoff, int *err)
Definition proto.c:4530
WS_DLL_PUBLIC bool proto_is_pino(const protocol_t *protocol)
Definition proto.c:8854
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,...)
Definition proto.c:6267
proto_item * proto_tree_add_text_valist_internal(proto_tree *tree, tvbuff_t *tvb, int start, int length, const char *format, va_list ap)
Definition proto.c:1508
WS_DLL_PUBLIC 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,...)
Definition proto.c:14000
tvbuff_t * ds_tvb
Definition proto.h:825
WS_DLL_PUBLIC proto_item * proto_tree_add_format_wsp_text(proto_tree *tree, tvbuff_t *tvb, int start, int length)
Definition proto.c:1606
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,...)
Definition proto.c:4912
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,...)
Definition proto.c:5289
WS_DLL_PUBLIC const char * proto_registrar_get_name(const int n)
Definition proto.c:11499
WS_DLL_PUBLIC void proto_registrar_dump_elastic(const char *filter)
Definition proto.c:12214
WS_DLL_PUBLIC void proto_set_decoding(const int proto_id, const bool enabled)
Definition proto.c:8911
WS_DLL_PUBLIC bool proto_name_already_registered(const char *name)
Definition proto.c:8654
WS_DLL_PUBLIC void proto_register_field_array(const int parent, hf_register_info *hf, const int num_records)
Definition proto.c:8989
WS_DLL_PUBLIC GPtrArray * proto_find_first_finfo(proto_tree *tree, const int hfindex)
Definition proto.c:11695
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,...)
Definition proto.c:5885
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,...)
Definition proto.c:1544
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:5848
WS_DLL_PUBLIC int proto_registrar_get_length(const int n)
Definition proto.c:11548
WS_DLL_PUBLIC const char * proto_get_protocol_filter_name(const int proto_id)
Definition proto.c:8720
hf_ref_type
Definition proto.h:756
WS_DLL_PUBLIC const char * proto_get_protocol_long_name(const protocol_t *protocol)
Definition proto.c:8712
WS_DLL_PUBLIC enum ftenum proto_registrar_get_ftype(const int n)
Definition proto.c:11517
#define FI_RESET_FLAG(fi, flag)
Definition proto.h:884
WS_DLL_PUBLIC void proto_initialize_all_prefixes(void)
Definition proto.c:1077
int proto_layer_num
Definition proto.h:828
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,...)
Definition proto.c:5270
WS_DLL_PUBLIC proto_item * proto_item_get_parent(const proto_item *pi)
Definition proto.c:8227
WS_DLL_PUBLIC int proto_registrar_get_id_byname(const char *field_name)
Definition proto.c:1161
int display
Definition proto.h:772
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:14088
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,...)
Definition proto.c:6144
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:4216
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,...)
Definition proto.c:5179
WS_DLL_PUBLIC header_field_info * proto_registrar_get_byalias(const char *alias_name)
Definition proto.c:1130
struct _mac_hf_list_t mac_hf_list_t
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:5622
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:3926
WS_DLL_PUBLIC GPtrArray * proto_all_finfos(proto_tree *tree)
Definition proto.c:11725
WS_DLL_PUBLIC void proto_execute_in_directory(const char *dir, proto_execute_in_directory_func func, void *param)
Definition proto.c:805
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,...)
Definition proto.c:6126
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:5028
WS_DLL_PUBLIC size_t proto_registrar_get_count(struct proto_registrar_stats *stats)
Definition proto.c:11557
WS_DLL_PUBLIC void proto_tree_set_appendix(proto_tree *tree, tvbuff_t *tvb, int start, const int length)
Definition proto.c:8324
WS_DLL_PUBLIC void proto_item_fill_label(const field_info *finfo, char *label_str, size_t *value_offset)
Definition proto.c:10200
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,...)
Definition proto.c:6053
WS_DLL_PUBLIC void proto_heuristic_dissector_foreach(const protocol_t *protocol, GFunc func, void *user_data)
Definition proto.c:8744
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:1536
int total_layer_num
Definition proto.h:827
WS_DLL_PUBLIC proto_tree * proto_tree_get_parent_tree(proto_tree *tree)
Definition proto.c:8254
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:8452
struct _proto_node proto_node
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,...)
Definition proto.c:5047
WS_DLL_PUBLIC char * proto_construct_match_selected_string(const field_info *finfo, struct epan_dissect *edt)
Definition proto.c:12724
WS_DLL_PUBLIC const char * proto_get_protocol_short_name(const protocol_t *protocol)
Definition proto.c:8704
WS_DLL_PUBLIC char * proto_find_undecoded_data(proto_tree *tree, unsigned length)
Definition proto.c:11811
void proto_pre_init(void)
Definition proto.c:564
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:7177
WS_DLL_PUBLIC bool proto_is_protocol_enabled_by_default(const protocol_t *protocol)
Definition proto.c:8875
WS_DLL_PUBLIC field_info * proto_find_field_from_offset(proto_tree *tree, unsigned offset, tvbuff_t *tvb)
Definition proto.c:11772
WS_DLL_PUBLIC void proto_registrar_dump_values(void)
Definition proto.c:11898
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:13299
WS_DLL_PUBLIC void tree_expanded_set(int tree_type, bool value)
Definition proto.c:14374
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:3965
WS_DLL_PUBLIC void proto_item_set_bits_offset_len(proto_item *ti, int bits_offset, int bits_len)
Definition proto.c:8075
#define FI_GET_FLAG(fi, flag)
Definition proto.h:876
WS_DLL_PUBLIC uint8_t proto_get_layer_num(const packet_info *pinfo, const int proto_id)
Definition proto.c:8841
proto_node proto_item
Definition proto.h:920
const void * strings
Definition proto.h:773
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,...)
Definition proto.c:13945
int appendix_start
Definition proto.h:820
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,...)
Definition proto.c:5198
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,...)
Definition proto.c:5570
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,...)
Definition proto.c:5130
WS_DLL_PUBLIC int proto_registrar_get_parent(const int n)
Definition proto.c:11526
WS_DLL_PUBLIC proto_tree * proto_item_add_subtree(proto_item *pi, const int idx) G_GNUC_WARN_UNUSED_RESULT
Definition proto.c:8197
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:5783
WS_DLL_PUBLIC proto_item * proto_tree_add_item(proto_tree *tree, int hfindex, tvbuff_t *tvb, const int start, int length, const unsigned encoding)
Append a decoded field to a protocol tree using a registered header-field index.
Definition proto.c:4448
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:6365
WS_DLL_PUBLIC header_field_info * proto_registrar_get_nth(unsigned hfindex)
Definition proto.c:1002
#define FI_HIDDEN
Definition proto.h:856
WS_DLL_PUBLIC proto_item * proto_tree_add_format_text(proto_tree *tree, tvbuff_t *tvb, int start, int length)
Definition proto.c:1587
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,...)
Definition proto.c:6325
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:4096
WS_DLL_PUBLIC 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,...)
Definition proto.c:14033
WS_DLL_PUBLIC proto_item * proto_item_get_parent_nth(proto_item *pi, int gen)
Definition proto.c:8234
uint32_t flags
Definition proto.h:823
WS_DLL_PUBLIC unsigned char proto_check_field_name(const char *field_name)
Check if a given string is a valid protocol field name.
Definition proto.c:14352
WS_DLL_PUBLIC proto_item * proto_tree_add_debug_text(proto_tree *tree, const char *format,...)
Definition proto.c:1566
WS_DLL_PUBLIC void proto_item_prepend_text(proto_item *pi, const char *format,...)
Definition proto.c:7941
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,...)
Definition proto.c:5961
proto_item * proto_tree_add_text_internal(proto_tree *tree, tvbuff_t *tvb, int start, int length, const char *format,...)
Definition proto.c:1478
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:5328
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,...)
Definition proto.c:5065
const header_field_info * hfinfo
Definition proto.h:817
WS_DLL_PUBLIC GPtrArray * proto_get_finfo_ptr_array(const proto_tree *tree, const int hfindex)
Definition proto.c:11605
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,...)
Definition proto.c:5347
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:6098
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,...)
Definition proto.c:4998
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:5431
unsigned start
Definition proto.h:818
void proto_tree_set_fake_protocols(proto_tree *tree, bool fake_protocols)
Definition proto.c:964
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:13151
bool proto_deregister_protocol(const char *short_name)
Definition proto.c:8511
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,...)
Definition proto.c:6307
WS_DLL_PUBLIC bool proto_is_frame_protocol(const wmem_list_t *layers, const char *proto_name)
Definition proto.c:8793
const char * name
Definition proto.h:769
WS_DLL_PUBLIC void proto_add_deregistered_data(void *data)
Definition proto.c:9088
field_display_e
Definition proto.h:683
WS_DLL_PUBLIC void proto_item_set_end(proto_item *pi, tvbuff_t *tvb, unsigned end)
Definition proto.c:8041
WS_DLL_PUBLIC const char * proto_registrar_get_abbrev(const int n)
Definition proto.c:11508
void(* prefix_initializer_t)(const char *match)
Definition proto.h:2686
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,...)
Definition proto.c:5659
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,...)
Definition proto.c:5588
item_label_t * rep
Definition proto.h:824
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,...)
Definition proto.c:13912
WS_DLL_PUBLIC bool proto_tree_set_visible(proto_tree *tree, bool visible)
Definition proto.c:954
int * p_id
Definition proto.h:804
size_t value_len
Definition proto.h:812
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,...)
Definition proto.c:4742
void proto_cleanup(void)
Definition proto.c:760
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:6193
WS_DLL_PUBLIC int proto_get_id_by_filter_name(const char *filter_name)
Definition proto.c:8664
WS_DLL_PUBLIC WS_NORETURN void proto_report_dissector_bug(const char *format,...)
Definition proto.c:1627
void proto_add_heuristic_dissector(protocol_t *protocol, const char *short_name)
Definition proto.c:8730
WS_DLL_PUBLIC proto_tree * proto_item_get_subtree(proto_item *pi)
Definition proto.c:8215
WS_DLL_PUBLIC void proto_tree_free(proto_tree *tree)
Definition proto.c:928
hf_ref_type ref_type
Definition proto.h:783
WS_DLL_PUBLIC void proto_registrar_dump_fields(void)
Definition proto.c:12374
WS_DLL_PUBLIC int proto_get_first_protocol(void **cookie)
Definition proto.c:8571
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:13139
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:13220
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:4344
WS_DLL_PUBLIC void proto_tree_move_item(proto_tree *tree, proto_item *fixed_item, proto_item *item_to_move)
Definition proto.c:8277
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:14116
proto_node proto_tree
Definition proto.h:918
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,...)
Definition proto.c:5470
WS_DLL_PUBLIC char * proto_item_get_display_repr(wmem_allocator_t *scope, proto_item *pi)
Definition proto.c:8084
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:5551
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:5093
WS_DLL_PUBLIC bool proto_can_match_selected(const field_info *finfo, struct epan_dissect *edt)
Definition proto.c:12712
WS_DLL_PUBLIC GPtrArray * proto_find_finfo(proto_tree *tree, const int hfindex)
Definition proto.c:11676
int parent
Definition proto.h:782
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:6288
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,...)
Definition proto.c:5820
WS_DLL_PUBLIC void proto_disable_by_default(const int proto_id)
Definition proto.c:8899
void proto_init(GSList *register_all_plugin_protocols_list, GSList *register_all_plugin_handoffs_list, register_entity_func register_func, register_entity_func handoff_func, register_cb cb, void *client_data)
Definition proto.c:591
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:4868
WS_DLL_PUBLIC void proto_item_set_text(proto_item *pi, const char *format,...)
Definition proto.c:7860
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,...)
Definition proto.c:5802
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:4427
WS_DLL_PUBLIC void proto_deregister_all_fields_with_prefix(const int parent, const char *prefix)
Definition proto.c:9062
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:13248
WS_DLL_PUBLIC proto_item * proto_tree_get_parent(proto_tree *tree)
Definition proto.c:8247
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:4135
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:4332
WS_DLL_PUBLIC void proto_set_cant_toggle(const int proto_id)
Definition proto.c:8970
WS_DLL_PUBLIC bool proto_tracking_interesting_fields(const proto_tree *tree)
Definition proto.c:11618
WS_DLL_PUBLIC void proto_register_prefix(const char *prefix, prefix_initializer_t initializer)
Definition proto.c:1060
enum ftenum type
Definition proto.h:771
WS_DLL_PUBLIC int proto_register_protocol(const char *name, const char *short_name, const char *filter_name)
Definition proto.c:8389
WS_DLL_PUBLIC void proto_registrar_dump_protocols(void)
Definition proto.c:11835
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:6006
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:14259
const char * proto_custom_set(proto_tree *tree, GSList *field_id, int occurrence, bool display_details, char *result, char *expr, const int size)
Set the column text for a custom column.
Definition proto.c:7468
bool proto_check_for_protocol_or_field(const proto_tree *tree, const int id)
Definition proto.c:11587
const char * abbrev
Definition proto.h:770
char * proto_custom_get_filter(struct epan_dissect *edt, GSList *field_id, int occurrence)
Construct a display filter string for a custom column.
Definition proto.c:7704
const char * blurb
Definition proto.h:778
WS_DLL_PUBLIC proto_tree * proto_tree_create_root(packet_info *pinfo)
Definition proto.c:8098
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:13186
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:5913
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:5251
WS_DLL_PUBLIC proto_tree * proto_tree_get_root(proto_tree *tree)
Definition proto.c:8267
int appendix_length
Definition proto.h:821
WS_DLL_PUBLIC bool proto_registrar_dump_field_completions(const char *prefix)
Definition proto.c:12485
WS_DLL_PUBLIC bool proto_can_toggle_protocol(const int proto_id)
Definition proto.c:8886
WS_DLL_PUBLIC void proto_registrar_dump_ftypes(void)
Definition proto.c:12550
WS_DLL_PUBLIC 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,...)
Definition proto.c:13978
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:5160
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,...)
Definition proto.c:5867
WS_DLL_PUBLIC protocol_t * find_protocol_by_id(const int proto_id)
Definition proto.c:8633
WS_DLL_PUBLIC void proto_reenable_all(void)
Definition proto.c:8952
WS_DLL_PUBLIC bool proto_registrar_is_protocol(const int n)
Definition proto.c:11535
WS_DLL_PUBLIC void proto_disable_all(void)
Definition proto.c:8922
WS_DLL_PUBLIC header_field_info * proto_registrar_get_byname(const char *field_name)
Definition proto.c:1088
WS_DLL_PUBLIC int num_tree_types
Definition proto.h:3042
#define PITEM_FINFO(proto_item)
Definition proto.h:988
WS_DLL_PUBLIC const char * proto_field_display_to_string(int field_display)
Definition proto.c:9299
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,...)
Definition proto.c:5112
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,...)
Definition proto.c:5641
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,...)
Definition proto.c:5366
WS_DLL_PUBLIC void proto_free_deregistered_fields(void)
Definition proto.c:9250
int id
Definition proto.h:781
#define FI_GENERATED
Definition proto.h:859
unsigned length
Definition proto.h:819
#define FI_SET_FLAG(fi, flag)
Definition proto.h:878
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:4057
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,...)
Definition proto.c:6035
int tree_type
Definition proto.h:822
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:4840
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:4206
WS_DLL_PUBLIC int proto_get_id(const protocol_t *protocol)
Definition proto.c:8648
header_field_info hfinfo
Definition proto.h:805
WS_DLL_PUBLIC void proto_register_alias(const int proto_id, const char *alias_name)
Definition proto.c:8553
WS_DLL_PUBLIC void proto_free_field_strings(ftenum_t field_type, unsigned int field_display, const void *field_strings)
Definition proto.c:9104
WS_DLL_PUBLIC 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,...)
Definition proto.c:14066
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:13351
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:13113
WS_DLL_PUBLIC void proto_item_append_text(proto_item *pi, const char *format,...)
Definition proto.c:7883
header_field_info * same_name_next
Definition proto.h:785
@ HF_REF_TYPE_INDIRECT
Definition proto.h:758
@ HF_REF_TYPE_NONE
Definition proto.h:757
@ HF_REF_TYPE_DIRECT
Definition proto.h:759
@ HF_REF_TYPE_PRINT
Definition proto.h:760
@ ABSOLUTE_TIME_DOY_UTC
Definition proto.h:716
@ BASE_PT_UDP
Definition proto.h:705
@ BASE_HEX_DEC
Definition proto.h:691
@ BASE_HEX
Definition proto.h:688
@ ABSOLUTE_TIME_NTP_UTC
Definition proto.h:717
@ BASE_EXP
Definition proto.h:693
@ ABSOLUTE_TIME_UTC
Definition proto.h:715
@ BASE_DEC
Definition proto.h:687
@ ABSOLUTE_TIME_UNIX
Definition proto.h:718
@ BASE_PT_TCP
Definition proto.h:706
@ BASE_DEC_HEX
Definition proto.h:690
@ BASE_OUI
Definition proto.h:711
@ SEP_COLON
Definition proto.h:698
@ BASE_PT_SCTP
Definition proto.h:708
@ BASE_NETMASK
Definition proto.h:702
@ ABSOLUTE_TIME_LOCAL
Definition proto.h:714
@ BASE_PT_DCCP
Definition proto.h:707
@ BASE_STR_WSP
Definition proto.h:721
@ BASE_NONE
Definition proto.h:684
@ SEP_DOT
Definition proto.h:696
@ SEP_DASH
Definition proto.h:697
@ SEP_SPACE
Definition proto.h:699
@ BASE_OCT
Definition proto.h:689
@ BASE_CUSTOM
Definition proto.h:692
uint32_t ws_in4_addr
Represents a 32-bit IPv4 address in network byte order.
Definition inet_addr.h:22
Definition guid-utils.h:23
Represents a typed field value used in protocol dissection.
Definition ftypes-int.h:24
Definition packet_info.h:43
Mapping between a 32-bit integer value and its string representation.
Definition value_string.h:33
Internal memory allocator interface used by the wmem subsystem.
Definition wmem_allocator.h:34
Definition wmem_list.c:23
Definition packet-bt-dht.c:99
Represents a 128-bit IPv6 address.
Definition inet_addr.h:27
Definition epan_dissect.h:28
Definition tvbuff-int.h:36