Wireshark 2.9.0-477-g68ec514b The Wireshark network protocol analyzer

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

Classes | Macros | Typedefs | Enumerations | Functions | Variables
proto.h File Reference
`#include <stdarg.h>`
`#include <glib.h>`
`#include <epan/wmem/wmem.h>`
`#include "ipv4.h"`
`#include "wsutil/nstime.h"`
`#include "time_fmt.h"`
`#include "tvbuff.h"`
`#include "value_string.h"`
`#include "tfs.h"`
`#include "packet_info.h"`
`#include "ftypes/ftypes.h"`
`#include "register.h"`
`#include "ws_symbol_export.h"`
`#include "ws_attributes.h"`

Go to the source code of this file.

## Classes
struct | _header_field_info
struct | hf_register_info
struct | _item_label_t
struct | field_info
struct | crumb_spec_t
struct | tree_data_t
struct | _proto_node

## Macros
#define | ITEM_LABEL_LENGTH 240
#define | ITEM_LABEL_UNKNOWN_STR "Unknown"
#define | VALS(x) (const struct _value_string*)(x)
#define | VALS64(x) (const struct _val64_string*)(x)
#define | VALS_EXT_PTR(x) (x)
#define | TFS(x) (const struct true_false_string*)(x)
#define | CF_FUNC(x) ((const void *) (gsize) (x))
#define | RVALS(x) (const struct _range_string*)(x)
#define | FRAMENUM_TYPE(x) GINT_TO_POINTER(x)
#define | REPORT_DISSECTOR_BUG(...) proto_report_dissector_bug(__VA_ARGS__)
#define | __DISSECTOR_ASSERT_STATIC_ANALYSIS_HINT(expression)
#define | __DISSECTOR_ASSERT_STRINGIFY(s) # s
#define | __DISSECTOR_ASSERT(expression, file, lineno)
#define | __DISSECTOR_ASSERT_HINT(expression, file, lineno, hint)
#define | DISSECTOR_ASSERT(expression)
#define | DISSECTOR_ASSERT_HINT(expression, hint)
#define | DISSECTOR_ASSERT_NOT_REACHED()
#define | __DISSECTOR_ASSERT_CMPINT(a, op, b, type, fmt)
#define | DISSECTOR_ASSERT_CMPINT(a, op, b)
#define | DISSECTOR_ASSERT_CMPUINT(a, op, b)
#define | DISSECTOR_ASSERT_CMPUINTHEX(a, op, b)
#define | __DISSECTOR_ASSERT_FIELD_TYPE(hfinfo, t)
#define | DISSECTOR_ASSERT_FIELD_TYPE(hfinfo, t)
#define | DISSECTOR_ASSERT_FIELD_TYPE_IS_INTEGRAL(hfinfo)
#define | __DISSECTOR_ASSERT_FIELD_TYPE_IS_STRING(hfinfo)
#define | DISSECTOR_ASSERT_FIELD_TYPE_IS_STRING(hfinfo)
#define | __DISSECTOR_ASSERT_FIELD_TYPE_IS_TIME(hfinfo)
#define | DISSECTOR_ASSERT_FIELD_TYPE_IS_TIME(hfinfo)
#define | ENC_BIG_ENDIAN 0x00000000
#define | ENC_LITTLE_ENDIAN 0x80000000
#define | ENC_HOST_ENDIAN ENC_LITTLE_ENDIAN
#define | ENC_TIME_TIMESPEC 0x00000000
#define | ENC_TIME_NTP 0x00000002
#define | ENC_TIME_TOD 0x00000004
#define | ENC_TIME_RTPS 0x00000008
#define | ENC_TIME_NTP_BASE_ZERO ENC_TIME_RTPS /* for backwards source compatibility */
#define | ENC_TIME_TIMEVAL 0x00000010
#define | ENC_TIME_SECS 0x00000012
#define | ENC_TIME_MSECS 0x00000014
#define | ENC_TIME_SECS_NTP 0x00000018
#define | ENC_TIME_RFC_3971 0x00000020
#define | ENC_TIME_MSEC_NTP 0x00000022
#define | ENC_CHARENCODING_MASK 0x7FFFFFFE /* mask out byte-order bits */
#define | ENC_ASCII 0x00000000
#define | ENC_UTF_8 0x00000002
#define | ENC_UTF_16 0x00000004
#define | ENC_UCS_2 0x00000006
#define | ENC_UCS_4 0x00000008
#define | ENC_ISO_8859_1 0x0000000A
#define | ENC_ISO_8859_2 0x0000000C
#define | ENC_ISO_8859_3 0x0000000E
#define | ENC_ISO_8859_4 0x00000010
#define | ENC_ISO_8859_5 0x00000012
#define | ENC_ISO_8859_6 0x00000014
#define | ENC_ISO_8859_7 0x00000016
#define | ENC_ISO_8859_8 0x00000018
#define | ENC_ISO_8859_9 0x0000001A
#define | ENC_ISO_8859_10 0x0000001C
#define | ENC_ISO_8859_11 0x0000001E
#define | ENC_ISO_8859_13 0x00000022
#define | ENC_ISO_8859_14 0x00000024
#define | ENC_ISO_8859_15 0x00000026
#define | ENC_ISO_8859_16 0x00000028
#define | ENC_WINDOWS_1250 0x0000002A
#define | ENC_3GPP_TS_23_038_7BITS 0x0000002C
#define | ENC_EBCDIC 0x0000002E
#define | ENC_MAC_ROMAN 0x00000030
#define | ENC_CP437 0x00000032
#define | ENC_ASCII_7BITS 0x00000034
#define | ENC_T61 0x00000036
#define | ENC_EBCDIC_CP037 0x00000038
#define | ENC_ZIGBEE 0x0000003A
#define | ENC_NA 0x00000000
#define | ENC_STR_NUM 0x01000000
#define | ENC_STR_HEX 0x02000000
#define | ENC_STRING 0x03000000
#define | ENC_STR_MASK 0x0000FFFE
#define | ENC_NUM_PREF 0x00200000
#define | ENC_VARINT_PROTOBUF 0x00000002
#define | ENC_VARINT_QUIC 0x00000004
#define | ENC_SEP_NONE 0x00010000
#define | ENC_SEP_COLON 0x00020000
#define | ENC_SEP_DASH 0x00040000
#define | ENC_SEP_DOT 0x00080000
#define | ENC_SEP_SPACE 0x00100000
#define | ENC_SEP_MASK 0x001F0000
#define | ENC_ISO_8601_DATE 0x00010000
#define | ENC_ISO_8601_TIME 0x00020000
#define | ENC_ISO_8601_DATE_TIME 0x00030000
#define | ENC_RFC_822 0x00040000
#define | ENC_RFC_1123 0x00080000
#define | ENC_STR_TIME_MASK 0x000F0000
#define | FIELD_DISPLAY_E_MASK 0xFF
#define | FIELD_DISPLAY(d) ((d) & FIELD_DISPLAY_E_MASK)
#define | BASE_RANGE_STRING 0x0100
#define | BASE_EXT_STRING 0x0200
#define | BASE_VAL64_STRING 0x0400
#define | BASE_ALLOW_ZERO 0x0800
#define | BASE_UNIT_STRING 0x1000
#define | BASE_NO_DISPLAY_VALUE 0x2000
#define | BASE_PROTOCOL_INFO 0x4000
#define | BASE_SPECIAL_VALS 0x8000
#define | IS_BASE_DUAL(b) ((b)==BASE_DEC_HEX||(b)==BASE_HEX_DEC)
#define | IS_BASE_PORT(b) (((b)==BASE_PT_UDP||(b)==BASE_PT_TCP||(b)==BASE_PT_DCCP||(b)==BASE_PT_SCTP))
#define | HFILL -1, 0, HF_REF_TYPE_NONE, -1, NULL
#define | HFILL_INIT(hf)
#define | FI_HIDDEN 0x00000001
#define | FI_GENERATED 0x00000002
#define | FI_URL 0x00000004
#define | FI_LITTLE_ENDIAN 0x00000008
#define | FI_BIG_ENDIAN 0x00000010
#define | FI_BITS_OFFSET(n) (((n) & 7) << 5)
#define | FI_BITS_SIZE(n) (((n) & 63) << 8)
#define | FI_VARINT 0x00004000
#define | FI_GET_FLAG(fi, flag) ((fi) ? ((fi)->flags & (flag)) : 0)
#define | FI_SET_FLAG(fi, flag)
#define | FI_RESET_FLAG(fi, flag)
#define | FI_GET_BITS_OFFSET(fi) (FI_GET_FLAG(fi, FI_BITS_OFFSET(7)) >> 5)
#define | FI_GET_BITS_SIZE(fi) (FI_GET_FLAG(fi, FI_BITS_SIZE(63)) >> 8)
#define | PI_SEVERITY_MASK 0x00F00000
#define | PI_COMMENT 0x00100000
#define | PI_CHAT 0x00200000
#define | PI_NOTE 0x00400000
#define | PI_WARN 0x00600000
#define | PI_ERROR 0x00800000
#define | PI_GROUP_MASK 0xFF000000
#define | PI_CHECKSUM 0x01000000
#define | PI_SEQUENCE 0x02000000
#define | PI_RESPONSE_CODE 0x03000000
#define | PI_REQUEST_CODE 0x04000000
#define | PI_UNDECODED 0x05000000
#define | PI_REASSEMBLE 0x06000000
#define | PI_MALFORMED 0x07000000
#define | PI_DEBUG 0x08000000
#define | PI_PROTOCOL 0x09000000
#define | PI_SECURITY 0x0a000000
#define | PI_COMMENTS_GROUP 0x0b000000
#define | PI_DECRYPTION 0x0c000000
#define | PI_ASSUMPTION 0x0d000000
#define | PI_DEPRECATED 0x0e000000
#define | PROTO_ITEM_IS_HIDDEN(proto_item) ((proto_item) ? FI_GET_FLAG(PITEM_FINFO(proto_item), FI_HIDDEN) : 0)
#define | PROTO_ITEM_SET_HIDDEN(proto_item)
#define | PROTO_ITEM_SET_VISIBLE(proto_item)
#define | PROTO_ITEM_IS_GENERATED(proto_item) ((proto_item) ? FI_GET_FLAG(PITEM_FINFO(proto_item), FI_GENERATED) : 0)
#define | PROTO_ITEM_SET_GENERATED(proto_item)
#define | PROTO_ITEM_IS_URL(proto_item) ((proto_item) ? FI_GET_FLAG(PITEM_FINFO(proto_item), FI_URL) : 0)
#define | PROTO_ITEM_SET_URL(proto_item)
#define | PNODE_FINFO(proto_node) ((proto_node)->finfo)
#define | PITEM_FINFO(proto_item) PNODE_FINFO(proto_item)
#define | PTREE_FINFO(proto_tree) PNODE_FINFO(proto_tree)
#define | PTREE_DATA(proto_tree) ((proto_tree)->tree_data)
#define | PNODE_POOL(proto_node) ((proto_node)->tree_data->pinfo->pool)
#define | g_ptr_array_len(a) ((a)?(a)->len:0)
#define | BMT_NO_FLAGS 0x00
#define | BMT_NO_APPEND 0x01
#define | BMT_NO_INT 0x02
#define | BMT_NO_FALSE 0x04
#define | BMT_NO_TFS 0x08
#define | PROTO_CHECKSUM_NO_FLAGS 0x00
#define | PROTO_CHECKSUM_VERIFY 0x01
#define | PROTO_CHECKSUM_GENERATED 0x02
#define | PROTO_CHECKSUM_IN_CKSUM 0x04
#define | PROTO_CHECKSUM_ZERO 0x08
#define | PROTO_CHECKSUM_NOT_PRESENT 0x10
#define | HFI_INIT(proto)
#define | proto_register_fields(proto, hfi, count) proto_register_fields_manual(proto, hfi, count)

## Typedefs
typedef void(* | custom_fmt_func_t) (gchar *, guint32)
typedef void(* | custom_fmt_func_64_t) (gchar *, guint64)
typedef struct _protocol | protocol_t
typedef struct _header_field_info | header_field_info
typedef struct hf_register_info | hf_register_info
typedef struct _item_label_t | item_label_t
typedef struct field_info | field_info
typedef struct _proto_node | proto_node
typedef proto_node | proto_tree
typedef proto_node | proto_item
typedef void(* | proto_tree_foreach_func) (proto_node *, gpointer)
typedef gboolean(* | proto_tree_traverse_func) (proto_node *, gpointer)
typedef void(* | prefix_initializer_t) (const char *match)

## Enumerations
enum | field_display_e { BASE_NONE = 0, BASE_DEC = 1, BASE_HEX = 2, BASE_OCT = 3, BASE_DEC_HEX = 4, BASE_HEX_DEC = 5, BASE_CUSTOM = 6, BASE_FLOAT = BASE_NONE, STR_ASCII = 0, STR_UNICODE = 7, SEP_DOT = 8, SEP_DASH = 9, SEP_COLON = 10, SEP_SPACE = 11, BASE_NETMASK = 12, BASE_PT_UDP = 13, BASE_PT_TCP = 14, BASE_PT_DCCP = 15, BASE_PT_SCTP = 16, BASE_OUI = 17 }
enum | hf_ref_type { HF_REF_TYPE_NONE, HF_REF_TYPE_INDIRECT, HF_REF_TYPE_DIRECT }
enum | proto_checksum_enum_e { PROTO_CHECKSUM_E_BAD = 0, PROTO_CHECKSUM_E_GOOD, PROTO_CHECKSUM_E_UNVERIFIED, PROTO_CHECKSUM_E_NOT_PRESENT }

## Functions
WS_DLL_PUBLIC WS_NORETURN void | proto_report_dissector_bug (const char *format,...) G_GNUC_PRINTF(1
gboolean | proto_tree_traverse_post_order (proto_tree *tree, proto_tree_traverse_func func, gpointer data)
WS_DLL_PUBLIC void | proto_tree_children_foreach (proto_tree *tree, proto_tree_foreach_func func, gpointer data)
void | proto_init (GSList *register_all_protocols_list, GSList *register_all_handoffs_list, register_cb cb, void *client_data)
void | proto_cleanup (void)
WS_DLL_PUBLIC gboolean | proto_field_is_referenced (proto_tree *tree, int proto_id)
WS_DLL_PUBLIC proto_tree * | proto_item_add_subtree (proto_item *ti, const gint idx) G_GNUC_WARN_UNUSED_RESULT
WS_DLL_PUBLIC proto_tree * | proto_item_get_subtree (proto_item *ti)
WS_DLL_PUBLIC proto_item * | proto_item_get_parent (const proto_item *ti)
WS_DLL_PUBLIC proto_item * | proto_item_get_parent_nth (proto_item *ti, int gen)
WS_DLL_PUBLIC void | proto_item_set_text (proto_item *ti, const char *format,...) G_GNUC_PRINTF(2
WS_DLL_PUBLIC void WS_DLL_PUBLIC void | proto_item_append_text (proto_item *ti, const char *format,...) G_GNUC_PRINTF(2
WS_DLL_PUBLIC void WS_DLL_PUBLIC void WS_DLL_PUBLIC void | proto_item_prepend_text (proto_item *ti, const char *format,...) G_GNUC_PRINTF(2
WS_DLL_PUBLIC void WS_DLL_PUBLIC void WS_DLL_PUBLIC void WS_DLL_PUBLIC void | proto_item_set_len (proto_item *ti, const gint length)
WS_DLL_PUBLIC void | proto_item_set_end (proto_item *ti, tvbuff_t *tvb, gint end)
WS_DLL_PUBLIC int | proto_item_get_len (const proto_item *ti)
proto_tree * | proto_tree_create_root (struct _packet_info *pinfo)
void | proto_tree_reset (proto_tree *tree)
WS_DLL_PUBLIC void | proto_tree_free (proto_tree *tree)
WS_DLL_PUBLIC gboolean | proto_tree_set_visible (proto_tree *tree, gboolean visible)
void | proto_tree_set_fake_protocols (proto_tree *tree, gboolean fake_protocols)
void | proto_tree_prime_with_hfid (proto_tree *tree, const int hfid)
WS_DLL_PUBLIC proto_item * | proto_tree_get_parent (proto_tree *tree)
WS_DLL_PUBLIC proto_tree * | proto_tree_get_parent_tree (proto_tree *tree)
WS_DLL_PUBLIC proto_tree * | proto_tree_get_root (proto_tree *tree)
WS_DLL_PUBLIC void | proto_tree_move_item (proto_tree *tree, proto_item *fixed_item, proto_item *item_to_move)
WS_DLL_PUBLIC void | proto_tree_set_appendix (proto_tree *tree, tvbuff_t *tvb, gint start, const gint length)
WS_DLL_PUBLIC proto_item * | proto_tree_add_item_new (proto_tree *tree, header_field_info *hfinfo, tvbuff_t *tvb, const gint start, gint length, const guint encoding)
WS_DLL_PUBLIC proto_item * | proto_tree_add_item (proto_tree *tree, int hfindex, tvbuff_t *tvb, const gint start, gint length, const guint encoding)
WS_DLL_PUBLIC proto_item * | proto_tree_add_item_new_ret_length (proto_tree *tree, header_field_info *hfinfo, tvbuff_t *tvb, const gint start, gint length, const guint encoding, gint *lenretval)
WS_DLL_PUBLIC proto_item * | proto_tree_add_item_ret_length (proto_tree *tree, int hfindex, tvbuff_t *tvb, const gint start, gint length, const guint encoding, gint *lenretval)
WS_DLL_PUBLIC proto_item * | proto_tree_add_item_ret_int (proto_tree *tree, int hfindex, tvbuff_t *tvb, const gint start, gint length, const guint encoding, gint32 *retval)
WS_DLL_PUBLIC proto_item * | proto_tree_add_item_ret_uint (proto_tree *tree, int hfindex, tvbuff_t *tvb, const gint start, gint length, const guint encoding, guint32 *retval)
WS_DLL_PUBLIC proto_item * | proto_tree_add_item_ret_uint64 (proto_tree *tree, int hfindex, tvbuff_t *tvb, const gint start, gint length, const guint encoding, guint64 *retval)
WS_DLL_PUBLIC proto_item * | proto_tree_add_item_ret_varint (proto_tree *tree, int hfindex, tvbuff_t *tvb, const gint start, gint length, const guint encoding, guint64 *retval, gint *lenretval)
WS_DLL_PUBLIC proto_item * | proto_tree_add_item_ret_boolean (proto_tree *tree, int hfindex, tvbuff_t *tvb, const gint start, gint length, const guint encoding, gboolean *retval)
WS_DLL_PUBLIC proto_item * | proto_tree_add_item_ret_string_and_length (proto_tree *tree, int hfindex, tvbuff_t *tvb, const gint start, gint length, const guint encoding, wmem_allocator_t *scope, const guint8 **retval, gint *lenretval)
WS_DLL_PUBLIC proto_item * | proto_tree_add_item_ret_string (proto_tree *tree, int hfindex, tvbuff_t *tvb, const gint start, gint length, const guint encoding, wmem_allocator_t *scope, const guint8 **retval)
proto_item * | proto_tree_add_text_internal (proto_tree *tree, tvbuff_t *tvb, gint start, gint length, const char *format,...) G_GNUC_PRINTF(5
proto_item proto_item * | proto_tree_add_text_valist_internal (proto_tree *tree, tvbuff_t *tvb, gint start, gint length, const char *format, va_list ap) G_GNUC_PRINTF(5
proto_item proto_item WS_DLL_PUBLIC proto_tree * | proto_tree_add_subtree (proto_tree *tree, tvbuff_t *tvb, gint start, gint length, gint idx, proto_item **tree_item, const char *text)
WS_DLL_PUBLIC proto_tree * | proto_tree_add_subtree_format (proto_tree *tree, tvbuff_t *tvb, gint start, gint length, gint idx, proto_item **tree_item, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_tree proto_item * | proto_tree_add_format_text (proto_tree *tree, tvbuff_t *tvb, gint start, gint length)
proto_item * | proto_tree_add_format_wsp_text (proto_tree *tree, tvbuff_t *tvb, gint start, gint length)
WS_DLL_PUBLIC proto_item * | proto_tree_add_none_format (proto_tree *tree, const int hfindex, tvbuff_t *tvb, const gint start, gint length, const char *format,...) G_GNUC_PRINTF(6
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * | proto_tree_add_protocol_format (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const char *format,...) G_GNUC_PRINTF(6
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, gint start, gint length, const guint8 *start_ptr)
WS_DLL_PUBLIC proto_item * | proto_tree_add_bytes_with_length (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const guint8 *start_ptr, gint ptr_length)
WS_DLL_PUBLIC proto_item * | proto_tree_add_bytes_item (proto_tree *tree, int hfindex, tvbuff_t *tvb, const gint start, gint length, const guint encoding, GByteArray *retval, gint *endoff, gint *err)
WS_DLL_PUBLIC proto_item * | proto_tree_add_bytes_format_value (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const guint8 *start_ptr, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * | proto_tree_add_bytes_format (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const guint8 *start_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, gint start, gint length, const nstime_t *value_ptr)
WS_DLL_PUBLIC proto_item * | proto_tree_add_time_item (proto_tree *tree, int hfindex, tvbuff_t *tvb, const gint start, gint length, const guint encoding, nstime_t *retval, gint *endoff, gint *err)
WS_DLL_PUBLIC proto_item * | proto_tree_add_time_format_value (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, nstime_t *value_ptr, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * | proto_tree_add_time_format (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, nstime_t *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_ipxnet (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 value)
WS_DLL_PUBLIC proto_item * | proto_tree_add_ipxnet_format_value (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * | proto_tree_add_ipxnet_format (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 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_ipv4 (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 value)
WS_DLL_PUBLIC proto_item * | proto_tree_add_ipv4_format_value (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 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, gint start, gint length, guint32 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_ipv6 (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const ws_in6_addr *value_ptr)
WS_DLL_PUBLIC proto_item * | proto_tree_add_ipv6_format_value (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const ws_in6_addr *value_ptr, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * | proto_tree_add_ipv6_format (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint 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_ether (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const guint8 *value)
WS_DLL_PUBLIC proto_item * | proto_tree_add_ether_format_value (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const guint8 *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, gint start, gint length, const guint8 *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_guid (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const e_guid_t *value_ptr)
WS_DLL_PUBLIC proto_item * | proto_tree_add_guid_format_value (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const e_guid_t *value_ptr, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * | proto_tree_add_guid_format (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const e_guid_t *value_ptr, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item proto_item * | proto_tree_add_oid (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const guint8 *value_ptr)
proto_item * | proto_tree_add_oid_format_value (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const guint8 *value_ptr, const char *format,...) G_GNUC_PRINTF(7
proto_item proto_item * | proto_tree_add_oid_format (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const guint8 *value_ptr, const char *format,...) G_GNUC_PRINTF(7
proto_item proto_item WS_DLL_PUBLIC proto_item * | proto_tree_add_string (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const char *value)
WS_DLL_PUBLIC proto_item * | proto_tree_add_string_format_value (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const char *value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * | proto_tree_add_string_format (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const char *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_boolean (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 value)
WS_DLL_PUBLIC proto_item * | proto_tree_add_boolean_format_value (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * | proto_tree_add_boolean_format (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 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_float (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, float value)
WS_DLL_PUBLIC proto_item * | proto_tree_add_float_format_value (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, float value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * | proto_tree_add_float_format (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, float 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_double (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, double value)
WS_DLL_PUBLIC proto_item * | proto_tree_add_double_format_value (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, double 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, gint start, gint length, double 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_uint (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 value)
WS_DLL_PUBLIC proto_item * | proto_tree_add_uint_format_value (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * | proto_tree_add_uint_format (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 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_uint64 (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint64 value)
WS_DLL_PUBLIC proto_item * | proto_tree_add_uint64_format_value (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint64 value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * | proto_tree_add_uint64_format (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint64 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_int (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, gint32 value)
WS_DLL_PUBLIC proto_item * | proto_tree_add_int_format_value (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, gint32 value, 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, gint start, gint length, gint32 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_int64 (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, gint64 value)
WS_DLL_PUBLIC proto_item * | proto_tree_add_int64_format_value (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, gint64 value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * | proto_tree_add_int64_format (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, gint64 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_eui64 (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const guint64 value)
WS_DLL_PUBLIC proto_item * | proto_tree_add_eui64_format_value (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const guint64 value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item * | proto_tree_add_eui64_format (proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const guint64 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_debug_text (proto_tree *tree, const char *format,...) G_GNUC_PRINTF(2
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC void | proto_item_fill_label (field_info *fi, gchar *label_str)
WS_DLL_PUBLIC int | proto_register_protocol (const char *name, const char *short_name, const char *filter_name)
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)
gboolean | proto_deregister_protocol (const char *short_name)
WS_DLL_PUBLIC void | proto_register_prefix (const char *prefix, prefix_initializer_t initializer)
WS_DLL_PUBLIC void | proto_initialize_all_prefixes (void)
WS_DLL_PUBLIC void | proto_register_fields_manual (const int parent, header_field_info **hfi, const int num_records)
WS_DLL_PUBLIC void | proto_register_fields_section (const int parent, header_field_info *hfi, const int num_records)
WS_DLL_PUBLIC void | proto_register_field_array (const int parent, hf_register_info *hf, const int num_records)
WS_DLL_PUBLIC void | proto_deregister_field (const int parent, gint hf_id)
WS_DLL_PUBLIC void | proto_add_deregistered_data (void *data)
WS_DLL_PUBLIC void | proto_free_deregistered_fields (void)
WS_DLL_PUBLIC void | proto_register_subtree_array (gint *const *indices, const int num_indices)
WS_DLL_PUBLIC const char * | proto_registrar_get_name (const int n)
WS_DLL_PUBLIC const char * | proto_registrar_get_abbrev (const int n)
WS_DLL_PUBLIC header_field_info * | proto_registrar_get_nth (guint hfindex)
WS_DLL_PUBLIC header_field_info * | proto_registrar_get_byname (const char *field_name)
WS_DLL_PUBLIC int | proto_registrar_get_id_byname (const char *field_name)
WS_DLL_PUBLIC enum ftenum | proto_registrar_get_ftype (const int n)
WS_DLL_PUBLIC int | proto_registrar_get_parent (const int n)
WS_DLL_PUBLIC gboolean | proto_registrar_is_protocol (const int n)
gint | proto_registrar_get_length (const int n)
WS_DLL_PUBLIC int | proto_get_first_protocol (void **cookie)
WS_DLL_PUBLIC int | proto_get_data_protocol (void *cookie)
WS_DLL_PUBLIC int | proto_get_next_protocol (void **cookie)
WS_DLL_PUBLIC header_field_info * | proto_get_first_protocol_field (const int proto_id, void **cookie)
WS_DLL_PUBLIC header_field_info * | proto_get_next_protocol_field (const int proto_id, void **cookie)
WS_DLL_PUBLIC int | proto_name_already_registered (const gchar *name)
WS_DLL_PUBLIC int | proto_get_id_by_filter_name (const gchar *filter_name)
WS_DLL_PUBLIC int | proto_get_id_by_short_name (const gchar *short_name)
WS_DLL_PUBLIC gboolean | proto_can_toggle_protocol (const int proto_id)
WS_DLL_PUBLIC protocol_t * | find_protocol_by_id (const int proto_id)
WS_DLL_PUBLIC const char * | proto_get_protocol_name (const int proto_id)
WS_DLL_PUBLIC int | proto_get_id (const protocol_t *protocol)
WS_DLL_PUBLIC const char * | proto_get_protocol_short_name (const protocol_t *protocol)
WS_DLL_PUBLIC const char * | proto_get_protocol_long_name (const protocol_t *protocol)
WS_DLL_PUBLIC gboolean | proto_is_protocol_enabled (const protocol_t *protocol)
WS_DLL_PUBLIC gboolean | proto_is_protocol_enabled_by_default (const protocol_t *protocol)
WS_DLL_PUBLIC gboolean | proto_is_pino (const protocol_t *protocol)
WS_DLL_PUBLIC const char * | proto_get_protocol_filter_name (const int proto_id)
void | proto_add_heuristic_dissector (protocol_t *protocol, const char *short_name)
WS_DLL_PUBLIC void | proto_heuristic_dissector_foreach (const protocol_t *protocol, GFunc func, gpointer user_data)
WS_DLL_PUBLIC void | proto_get_frame_protocols (const wmem_list_t *layers, gboolean *is_ip, gboolean *is_tcp, gboolean *is_udp, gboolean *is_sctp, gboolean *is_ssl, gboolean *is_rtp, gboolean *is_lte_rlc)
WS_DLL_PUBLIC gboolean | proto_is_frame_protocol (const wmem_list_t *layers, const char *proto_name)
WS_DLL_PUBLIC void | proto_disable_by_default (const int proto_id)
WS_DLL_PUBLIC void | proto_set_decoding (const int proto_id, const gboolean enabled)
WS_DLL_PUBLIC void | proto_reenable_all (void)
WS_DLL_PUBLIC void | proto_set_cant_toggle (const int proto_id)
gboolean | proto_check_for_protocol_or_field (const proto_tree *tree, const int id)
WS_DLL_PUBLIC GPtrArray * | proto_get_finfo_ptr_array (const proto_tree *tree, const int hfindex)
WS_DLL_PUBLIC gboolean | proto_tracking_interesting_fields (const proto_tree *tree)
WS_DLL_PUBLIC GPtrArray * | proto_find_finfo (proto_tree *tree, const int hfindex)
WS_DLL_PUBLIC GPtrArray * | proto_find_first_finfo (proto_tree *tree, const int hfindex)
WS_DLL_PUBLIC GPtrArray * | proto_all_finfos (proto_tree *tree)
WS_DLL_PUBLIC void | proto_registrar_dump_protocols (void)
WS_DLL_PUBLIC void | proto_registrar_dump_values (void)
WS_DLL_PUBLIC gboolean | proto_registrar_dump_fieldcount (void)
WS_DLL_PUBLIC void | proto_registrar_dump_fields (void)
WS_DLL_PUBLIC void | proto_registrar_dump_ftypes (void)
WS_DLL_PUBLIC const char * | proto_field_display_to_string (int field_display)
WS_DLL_PUBLIC gboolean | tree_expanded (int tree_type)
WS_DLL_PUBLIC void | tree_expanded_set (int tree_type, gboolean value)
WS_DLL_PUBLIC int | hfinfo_bitshift (const header_field_info *hfinfo)
WS_DLL_PUBLIC gboolean | proto_can_match_selected (field_info *finfo, struct epan_dissect *edt)
WS_DLL_PUBLIC char * | proto_construct_match_selected_string (field_info *finfo, struct epan_dissect *edt)
WS_DLL_PUBLIC field_info * | proto_find_field_from_offset (proto_tree *tree, guint offset, tvbuff_t *tvb)
WS_DLL_PUBLIC gchar * | proto_find_undecoded_data (proto_tree *tree, guint length)
WS_DLL_PUBLIC proto_item * | proto_tree_add_bitmask (proto_tree *tree, tvbuff_t *tvb, const guint offset, const int hf_hdr, const gint ett, const int **fields, const guint encoding)
WS_DLL_PUBLIC proto_item * | proto_tree_add_bitmask_ret_uint64 (proto_tree *tree, tvbuff_t *tvb, const guint offset, const int hf_hdr, const gint ett, const int **fields, const guint encoding, guint64 *retval)
WS_DLL_PUBLIC proto_item * | proto_tree_add_bitmask_with_flags (proto_tree *tree, tvbuff_t *tvb, const guint offset, const int hf_hdr, const gint ett, const int **fields, const guint encoding, const int flags)
WS_DLL_PUBLIC proto_item * | proto_tree_add_bitmask_with_flags_ret_uint64 (proto_tree *tree, tvbuff_t *tvb, const guint offset, const int hf_hdr, const gint ett, const int **fields, const guint encoding, const int flags, guint64 *retval)
WS_DLL_PUBLIC proto_item * | proto_tree_add_bitmask_value (proto_tree *tree, tvbuff_t *tvb, const guint offset, const int hf_hdr, const gint ett, const int **fields, const guint64 value)
WS_DLL_PUBLIC proto_item * | proto_tree_add_bitmask_value_with_flags (proto_tree *tree, tvbuff_t *tvb, const guint offset, const int hf_hdr, const gint ett, const int **fields, const guint64 value, const int flags)
WS_DLL_PUBLIC void | proto_tree_add_bitmask_list (proto_tree *tree, tvbuff_t *tvb, const guint offset, const int len, const int **fields, const guint encoding)
WS_DLL_PUBLIC void | proto_tree_add_bitmask_list_value (proto_tree *tree, tvbuff_t *tvb, const guint offset, const int len, const int **fields, const guint64 value)
WS_DLL_PUBLIC proto_item * | proto_tree_add_bitmask_len (proto_tree *tree, tvbuff_t *tvb, const guint offset, const guint len, const int hf_hdr, const gint ett, const int **fields, struct expert_field *exp, const guint encoding)
WS_DLL_PUBLIC proto_item * | proto_tree_add_bitmask_text (proto_tree *tree, tvbuff_t *tvb, const guint offset, const guint len, const char *name, const char *fallback, const gint ett, const int **fields, const guint encoding, const int flags)
WS_DLL_PUBLIC proto_item * | proto_tree_add_bits_item (proto_tree *tree, const int hf_index, tvbuff_t *tvb, const guint bit_offset, const gint no_of_bits, const guint encoding)
WS_DLL_PUBLIC proto_item * | proto_tree_add_split_bits_item_ret_val (proto_tree *tree, const int hf_index, tvbuff_t *tvb, const guint bit_offset, const crumb_spec_t *crumb_spec, guint64 *return_value)
void | proto_tree_add_split_bits_crumb (proto_tree *tree, const int hf_index, tvbuff_t *tvb, const guint bit_offset, const crumb_spec_t *crumb_spec, guint16 crumb_index)
WS_DLL_PUBLIC proto_item * | proto_tree_add_bits_ret_val (proto_tree *tree, const int hf_index, tvbuff_t *tvb, const guint bit_offset, const gint no_of_bits, guint64 *return_value, const guint encoding)
WS_DLL_PUBLIC proto_item * | proto_tree_add_uint_bits_format_value (proto_tree *tree, const int hf_index, tvbuff_t *tvb, const guint bit_offset, const gint no_of_bits, guint32 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 guint bit_offset, const gint no_of_bits, guint64 value, const char *format,...) G_GNUC_PRINTF(7
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 guint bit_offset, const gint no_of_bits, guint32 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_boolean_bits_format_value64 (proto_tree *tree, const int hf_index, tvbuff_t *tvb, const guint bit_offset, const gint no_of_bits, guint64 value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item proto_item proto_item proto_item * | proto_tree_add_int_bits_format_value (proto_tree *tree, const int hf_index, tvbuff_t *tvb, const guint bit_offset, const gint no_of_bits, gint32 value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item 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 guint bit_offset, const gint no_of_bits, gint64 value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item 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 guint bit_offset, const gint no_of_bits, float value, const char *format,...) G_GNUC_PRINTF(7
WS_DLL_PUBLIC proto_item WS_DLL_PUBLIC proto_item proto_item proto_item proto_item proto_item proto_item WS_DLL_PUBLIC proto_item * | proto_tree_add_ts_23_038_7bits_item (proto_tree *tree, const int hfindex, tvbuff_t *tvb, const guint bit_offset, const gint no_of_chars)
WS_DLL_PUBLIC proto_item * | proto_tree_add_ascii_7bits_item (proto_tree *tree, const int hfindex, tvbuff_t *tvb, const guint bit_offset, const gint no_of_chars)
WS_DLL_PUBLIC proto_item * | proto_tree_add_checksum (proto_tree *tree, tvbuff_t *tvb, const guint offset, const int hf_checksum, const int hf_checksum_status, struct expert_field *bad_checksum_expert, packet_info *pinfo, guint32 computed_checksum, const guint encoding, const guint flags)
WS_DLL_PUBLIC guchar | proto_check_field_name (const gchar *field_name)
const gchar * | proto_custom_set (proto_tree *tree, GSList *field_id, gint occurrence, gchar *result, gchar *expr, const int size)

## Variables
WS_DLL_PUBLIC int | hf_text_only
WS_DLL_PUBLIC int | num_tree_types
WS_DLL_PUBLIC const value_string | proto_checksum_vals []

## Detailed Description

The protocol tree related functions.
A protocol tree will hold all necessary data to display the whole dissected packet. Creating a protocol tree is done in a two stage process: A static part at program startup, and a dynamic part when the dissection with the real packet data is done.
The "static" information is provided by creating a hf_register_info hf[] array, and register it using the proto_register_field_array() function. This is usually done at dissector registering.
The "dynamic" information is added to the protocol tree by calling one of the proto_tree_add_...() functions, e.g. proto_tree_add_bytes().