Wireshark 4.5.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Enumerations | Functions
packet.h File Reference
#include <wsutil/array.h>
#include <wiretap/wtap_opttypes.h>
#include "proto.h"
#include "tvbuff.h"
#include "epan.h"
#include "frame_data.h"
#include "packet_info.h"
#include "column-utils.h"
#include "guid-utils.h"

Go to the source code of this file.

Classes

struct  _guid_key
 
struct  heur_dtbl_entry
 
struct  frame_data_s
 
struct  file_data_s
 
struct  ethertype_data_s
 

Macros

#define hi_nibble(b)   (((b) & 0xf0) >> 4)
 
#define lo_nibble(b)   ((b) & 0x0f)
 
#define BYTES_ARE_IN_FRAME(offset, captured_len, len)
 
#define STRING_CASE_SENSITIVE   0
 
#define STRING_CASE_INSENSITIVE   1
 

Typedefs

typedef struct dissector_handledissector_handle_t
 
typedef struct dissector_tabledissector_table_t
 
typedef int(* dissector_t) (tvbuff_t *, packet_info *, proto_tree *, void *)
 
typedef int(* dissector_cb_t) (tvbuff_t *, packet_info *, proto_tree *, void *, void *)
 
typedef bool(* heur_dissector_t) (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *)
 
typedef void(* DATFunc) (const char *table_name, ftenum_t selector_type, void *key, void *value, void *user_data)
 
typedef void(* DATFunc_handle) (const char *table_name, void *value, void *user_data)
 
typedef void(* DATFunc_table) (const char *table_name, const char *ui_name, void *user_data)
 
typedef struct dtbl_entry dtbl_entry_t
 
typedef struct _guid_key guid_key
 
typedef struct heur_dissector_listheur_dissector_list_t
 
typedef struct heur_dtbl_entry heur_dtbl_entry_t
 
typedef void(* DATFunc_heur) (const char *table_name, struct heur_dtbl_entry *entry, void *user_data)
 
typedef void(* DATFunc_heur_table) (const char *table_name, struct heur_dissector_list *table, void *user_data)
 
typedef struct depend_dissector_listdepend_dissector_list_t
 
typedef struct frame_data_s frame_data_t
 
typedef struct file_data_s file_data_t
 
typedef struct ethertype_data_s ethertype_data_t
 

Enumerations

enum  heuristic_enable_e { HEURISTIC_DISABLE , HEURISTIC_ENABLE }
 

Functions

void packet_init (void)
 
void packet_cache_proto_handles (void)
 
void packet_all_tables_sort_handles (void)
 
void packet_cleanup (void)
 
WS_DLL_PUBLIC dissector_handle_t dtbl_entry_get_handle (dtbl_entry_t *dtbl_entry)
 
WS_DLL_PUBLIC dissector_handle_t dtbl_entry_get_initial_handle (dtbl_entry_t *entry)
 
void dissector_table_foreach_changed (const char *table_name, DATFunc func, void *user_data)
 
WS_DLL_PUBLIC void dissector_table_foreach (const char *table_name, DATFunc func, void *user_data)
 
WS_DLL_PUBLIC void dissector_all_tables_foreach_changed (DATFunc func, void *user_data)
 
WS_DLL_PUBLIC void dissector_table_foreach_handle (const char *table_name, DATFunc_handle func, void *user_data)
 
WS_DLL_PUBLIC void dissector_all_tables_foreach_table (DATFunc_table func, void *user_data, GCompareFunc compare_key_func)
 
WS_DLL_PUBLIC dissector_table_t register_dissector_table (const char *name, const char *ui_name, const int proto, const ftenum_t type, const int param)
 
WS_DLL_PUBLIC dissector_table_t register_custom_dissector_table (const char *name, const char *ui_name, const int proto, GHashFunc hash_func, GEqualFunc key_equal_func, GDestroyNotify key_destroy_func)
 
WS_DLL_PUBLIC void register_dissector_table_alias (dissector_table_t dissector_table, const char *alias_name)
 
void deregister_dissector_table (const char *name)
 
WS_DLL_PUBLIC dissector_table_t find_dissector_table (const char *name)
 
WS_DLL_PUBLIC const char * get_dissector_table_ui_name (const char *name)
 
WS_DLL_PUBLIC ftenum_t get_dissector_table_selector_type (const char *name)
 
WS_DLL_PUBLIC int get_dissector_table_param (const char *name)
 
WS_DLL_PUBLIC void dissector_dump_dissector_tables (void)
 
WS_DLL_PUBLIC void dissector_add_uint (const char *name, const uint32_t pattern, dissector_handle_t handle)
 
WS_DLL_PUBLIC void dissector_add_uint_with_preference (const char *name, const uint32_t pattern, dissector_handle_t handle)
 
WS_DLL_PUBLIC void dissector_add_uint_range (const char *abbrev, struct epan_range *range, dissector_handle_t handle)
 
WS_DLL_PUBLIC void dissector_add_uint_range_with_preference (const char *abbrev, const char *range_str, dissector_handle_t handle)
 
WS_DLL_PUBLIC void dissector_delete_uint (const char *name, const uint32_t pattern, dissector_handle_t handle)
 
WS_DLL_PUBLIC void dissector_delete_uint_range (const char *abbrev, struct epan_range *range, dissector_handle_t handle)
 
WS_DLL_PUBLIC void dissector_delete_all (const char *name, dissector_handle_t handle)
 
WS_DLL_PUBLIC void dissector_change_uint (const char *abbrev, const uint32_t pattern, dissector_handle_t handle)
 
WS_DLL_PUBLIC void dissector_reset_uint (const char *name, const uint32_t pattern)
 
WS_DLL_PUBLIC bool dissector_is_uint_changed (dissector_table_t const sub_dissectors, const uint32_t uint_val)
 
WS_DLL_PUBLIC int dissector_try_uint (dissector_table_t sub_dissectors, const uint32_t uint_val, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
WS_DLL_PUBLIC int dissector_try_uint_new (dissector_table_t sub_dissectors, const uint32_t uint_val, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, const bool add_proto_name, void *data)
 
WS_DLL_PUBLIC dissector_handle_t dissector_get_uint_handle (dissector_table_t const sub_dissectors, const uint32_t uint_val)
 
WS_DLL_PUBLIC dissector_handle_t dissector_get_default_uint_handle (const char *name, const uint32_t uint_val)
 
WS_DLL_PUBLIC void dissector_add_string (const char *name, const char *pattern, dissector_handle_t handle)
 
WS_DLL_PUBLIC void dissector_delete_string (const char *name, const char *pattern, dissector_handle_t handle)
 
WS_DLL_PUBLIC void dissector_change_string (const char *name, const char *pattern, dissector_handle_t handle)
 
WS_DLL_PUBLIC void dissector_reset_string (const char *name, const char *pattern)
 
WS_DLL_PUBLIC bool dissector_is_string_changed (dissector_table_t const subdissectors, const char *string)
 
WS_DLL_PUBLIC int dissector_try_string (dissector_table_t sub_dissectors, const char *string, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
 
WS_DLL_PUBLIC int dissector_try_string_new (dissector_table_t sub_dissectors, const char *string, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, const bool add_proto_name, void *data)
 
WS_DLL_PUBLIC dissector_handle_t dissector_get_string_handle (dissector_table_t sub_dissectors, const char *string)
 
WS_DLL_PUBLIC dissector_handle_t dissector_get_default_string_handle (const char *name, const char *string)
 
WS_DLL_PUBLIC void dissector_add_custom_table_handle (const char *name, void *pattern, dissector_handle_t handle)
 
WS_DLL_PUBLIC dissector_handle_t dissector_get_custom_table_handle (dissector_table_t sub_dissectors, void *key)
 
WS_DLL_PUBLIC void dissector_add_guid (const char *name, guid_key *guid_val, dissector_handle_t handle)
 
WS_DLL_PUBLIC int dissector_try_guid (dissector_table_t sub_dissectors, guid_key *guid_val, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
WS_DLL_PUBLIC int dissector_try_guid_new (dissector_table_t sub_dissectors, guid_key *guid_val, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, const bool add_proto_name, void *data)
 
WS_DLL_PUBLIC void dissector_delete_guid (const char *name, guid_key *guid_val, dissector_handle_t handle)
 
WS_DLL_PUBLIC dissector_handle_t dissector_get_guid_handle (dissector_table_t const sub_dissectors, guid_key *guid_val)
 
WS_DLL_PUBLIC int dissector_try_payload (dissector_table_t sub_dissectors, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
WS_DLL_PUBLIC int dissector_try_payload_new (dissector_table_t sub_dissectors, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, const bool add_proto_name, void *data)
 
WS_DLL_PUBLIC void dissector_change_payload (const char *abbrev, dissector_handle_t handle)
 
WS_DLL_PUBLIC void dissector_reset_payload (const char *name)
 
WS_DLL_PUBLIC dissector_handle_t dissector_get_payload_handle (dissector_table_t const dissector_table)
 
WS_DLL_PUBLIC void dissector_add_for_decode_as (const char *name, dissector_handle_t handle)
 
WS_DLL_PUBLIC void dissector_add_for_decode_as_with_preference (const char *name, dissector_handle_t handle)
 
WS_DLL_PUBLIC GSList * dissector_table_get_dissector_handles (dissector_table_t dissector_table)
 
WS_DLL_PUBLIC dissector_handle_t dissector_table_get_dissector_handle (dissector_table_t dissector_table, const char *description)
 
WS_DLL_PUBLIC ftenum_t dissector_table_get_type (dissector_table_t dissector_table)
 
WS_DLL_PUBLIC void dissector_table_allow_decode_as (dissector_table_t dissector_table)
 
WS_DLL_PUBLIC bool dissector_table_supports_decode_as (dissector_table_t dissector_table)
 
WS_DLL_PUBLIC heur_dissector_list_t register_heur_dissector_list_with_description (const char *name, const char *ui_name, const int proto)
 
WS_DLL_PUBLIC const char * heur_dissector_list_get_description (heur_dissector_list_t list)
 
WS_DLL_PUBLIC heur_dissector_list_t register_heur_dissector_list (const char *name, const int proto)
 
void deregister_heur_dissector_list (const char *name)
 
WS_DLL_PUBLIC void heur_dissector_table_foreach (const char *table_name, DATFunc_heur func, void *user_data)
 
WS_DLL_PUBLIC void dissector_all_heur_tables_foreach_table (DATFunc_heur_table func, void *user_data, GCompareFunc compare_key_func)
 
WS_DLL_PUBLIC bool has_heur_dissector_list (const char *name)
 
WS_DLL_PUBLIC bool dissector_try_heuristic (heur_dissector_list_t sub_dissectors, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, heur_dtbl_entry_t **hdtbl_entry, void *data)
 
WS_DLL_PUBLIC heur_dissector_list_t find_heur_dissector_list (const char *name)
 
WS_DLL_PUBLIC heur_dtbl_entry_tfind_heur_dissector_by_unique_short_name (const char *short_name)
 
WS_DLL_PUBLIC void heur_dissector_add (const char *name, heur_dissector_t dissector, const char *display_name, const char *internal_name, const int proto, heuristic_enable_e enable)
 
WS_DLL_PUBLIC void heur_dissector_delete (const char *name, heur_dissector_t dissector, const int proto)
 
WS_DLL_PUBLIC dissector_handle_t register_dissector (const char *name, dissector_t dissector, const int proto)
 
WS_DLL_PUBLIC dissector_handle_t register_dissector_with_description (const char *name, const char *description, dissector_t dissector, const int proto)
 
WS_DLL_PUBLIC dissector_handle_t register_dissector_with_data (const char *name, dissector_cb_t dissector, const int proto, void *cb_data)
 
void deregister_dissector (const char *name)
 
WS_DLL_PUBLIC const char * dissector_handle_get_protocol_long_name (const dissector_handle_t handle)
 
WS_DLL_PUBLIC const char * dissector_handle_get_protocol_short_name (const dissector_handle_t handle)
 
WS_DLL_PUBLIC const char * dissector_handle_get_short_name (const dissector_handle_t handle)
 
WS_DLL_PUBLIC const char * dissector_handle_get_description (const dissector_handle_t handle)
 
WS_DLL_PUBLIC int dissector_handle_get_protocol_index (const dissector_handle_t handle)
 
WS_DLL_PUBLIC GList * get_dissector_names (void)
 
WS_DLL_PUBLIC dissector_handle_t find_dissector (const char *name)
 
WS_DLL_PUBLIC dissector_handle_t find_dissector_add_dependency (const char *name, const int parent_proto)
 
WS_DLL_PUBLIC const char * dissector_handle_get_dissector_name (const dissector_handle_t handle)
 
WS_DLL_PUBLIC const char * dissector_handle_get_pref_suffix (const dissector_handle_t handle)
 
WS_DLL_PUBLIC dissector_handle_t create_dissector_handle (dissector_t dissector, const int proto)
 
WS_DLL_PUBLIC dissector_handle_t create_dissector_handle_with_name (dissector_t dissector, const int proto, const char *name)
 
WS_DLL_PUBLIC dissector_handle_t create_dissector_handle_with_name_and_description (dissector_t dissector, const int proto, const char *name, const char *description)
 
WS_DLL_PUBLIC dissector_handle_t create_dissector_handle_with_data (dissector_cb_t dissector, const int proto, void *cb_data)
 
WS_DLL_PUBLIC void dissector_dump_dissectors (void)
 
WS_DLL_PUBLIC int call_dissector_with_data (dissector_handle_t handle, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
 
WS_DLL_PUBLIC int call_dissector (dissector_handle_t handle, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
WS_DLL_PUBLIC int call_data_dissector (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
WS_DLL_PUBLIC int call_dissector_only (dissector_handle_t handle, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
 
WS_DLL_PUBLIC void call_heur_dissector_direct (heur_dtbl_entry_t *heur_dtbl_entry, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
 
WS_DLL_PUBLIC bool register_depend_dissector (const char *parent, const char *dependent)
 
WS_DLL_PUBLIC bool deregister_depend_dissector (const char *parent, const char *dependent)
 
WS_DLL_PUBLIC depend_dissector_list_t find_depend_dissector_list (const char *name)
 
void dissect_init (void)
 
void dissect_cleanup (void)
 
WS_DLL_PUBLIC void set_actual_length (tvbuff_t *tvb, const unsigned specified_len)
 
WS_DLL_PUBLIC void register_init_routine (void(*func)(void))
 
WS_DLL_PUBLIC void register_cleanup_routine (void(*func)(void))
 
WS_DLL_PUBLIC void register_shutdown_routine (void(*func)(void))
 
void init_dissection (void)
 
void cleanup_dissection (void)
 
WS_DLL_PUBLIC void register_postseq_cleanup_routine (void(*func)(void))
 
WS_DLL_PUBLIC void postseq_cleanup_all_protocols (void)
 
WS_DLL_PUBLIC void register_final_registration_routine (void(*func)(void))
 
void final_registration_all_protocols (void)
 
WS_DLL_PUBLIC void add_new_data_source (packet_info *pinfo, tvbuff_t *tvb, const char *name)
 
WS_DLL_PUBLIC void remove_last_data_source (packet_info *pinfo)
 
WS_DLL_PUBLIC char * get_data_source_name (const struct data_source *src)
 
WS_DLL_PUBLIC tvbuff_tget_data_source_tvb (const struct data_source *src)
 
WS_DLL_PUBLIC tvbuff_tget_data_source_tvb_by_name (packet_info *pinfo, const char *name)
 
void free_data_sources (packet_info *pinfo)
 
WS_DLL_PUBLIC void mark_frame_as_depended_upon (frame_data *fd, uint32_t frame_num)
 
void dissect_record (struct epan_dissect *edt, int file_type_subtype, wtap_rec *rec, tvbuff_t *tvb, frame_data *fd, column_info *cinfo)
 
void dissect_file (struct epan_dissect *edt, wtap_rec *rec, tvbuff_t *tvb, frame_data *fd, column_info *cinfo)
 
WS_DLL_PUBLIC void dissector_dump_decodes (void)
 
WS_DLL_PUBLIC void dissector_dump_heur_decodes (void)
 
WS_DLL_PUBLIC void register_postdissector (dissector_handle_t handle)
 
WS_DLL_PUBLIC void set_postdissector_wanted_hfids (dissector_handle_t handle, GArray *wanted_hfids)
 
void deregister_postdissector (dissector_handle_t handle)
 
bool have_postdissector (void)
 
void call_all_postdissectors (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
WS_DLL_PUBLIC bool postdissectors_want_hfids (void)
 
WS_DLL_PUBLIC void prime_epan_dissect_with_postdissector_wanted_hfids (epan_dissect_t *edt)
 
WS_DLL_PUBLIC void increment_dissection_depth (packet_info *pinfo)
 
WS_DLL_PUBLIC void decrement_dissection_depth (packet_info *pinfo)
 

Detailed Description

Definitions for packet disassembly structures and routines

Wireshark - Network traffic analyzer By Gerald Combs geral.nosp@m.d@wi.nosp@m.resha.nosp@m.rk.o.nosp@m.rg Copyright 1998 Gerald Combs

SPDX-License-Identifier: GPL-2.0-or-later