Wireshark 4.7.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
tap-dis-common.h
1/* tap-dis-common.h
2 * DIS streams handler functions used by tshark and wireshark.
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef __TAP_DIS_COMMON_H__
8#define __TAP_DIS_COMMON_H__
9
10#include <stdio.h>
11
12#include <glib.h>
13
14#include <epan/address.h>
15#include <epan/epan_dissect.h>
16#include <epan/packet_info.h>
17#include <epan/tap.h>
18
19#ifdef __cplusplus
20extern "C" {
21#endif /* __cplusplus */
22
36
37
52
53
57typedef struct _disstream_info {
60 /* --- Stream metadata --- */
61 uint8_t payload_type;
62 const char *payload_type_str;
66 /* --- Packet and byte counts --- */
67 uint32_t packet_count;
73 /* --- Frame and timing extents --- */
75 uint32_t last_packet_num;
81 /* --- Timing quality statistics --- */
82 double max_delta_ms;
87 /* --- Stream status flags --- */
89 bool problem;
91 /* --- Packet storage --- */
92 GPtrArray *signal_packets;
94 /* --- Internal running analysis state (not for external use) --- */
100 double first_tx_ms;
101 double prev_tx_ms;
105
106
110typedef enum {
111 DISSTREAM_TAP_ANALYSE,
112 DISSTREAM_TAP_SAVE,
113 DISSTREAM_TAP_MARK
114} disstream_tap_mode_t;
115
116struct _disstream_tapinfo;
117typedef void (*disstream_tap_draw_cb)(struct _disstream_tapinfo *tapinfo);
118typedef void (*disstream_tap_reset_cb)(struct _disstream_tapinfo *tapinfo);
119typedef void (*disstream_tap_error_cb)(GString *error);
120
124typedef struct _disstream_tapinfo {
126 GHashTable *strinfo_hash;
127 uint32_t nstreams;
128 uint32_t npackets;
130 disstream_tap_mode_t mode;
132 FILE *save_file;
134 disstream_tap_draw_cb tap_draw;
135 disstream_tap_reset_cb tap_reset;
138
145void disstream_id_copy(const disstream_id_t *src, disstream_id_t *dst);
146
154void disstream_id_copy_pinfo(const packet_info *pinfo, disstream_id_t *dst);
155
165void disstream_id_copy_pinfo_shallow(const packet_info *pinfo, disstream_id_t *dst);
166
172void disstream_id_free(disstream_id_t *id);
173
180unsigned disstream_id_to_hash(const disstream_id_t *id);
181
189bool disstream_id_equal(const disstream_id_t *id1, const disstream_id_t *id2);
190
196void disstream_info_init(disstream_info_t *info);
197
203disstream_info_t *disstream_info_malloc_and_init(void);
204
211void disstream_info_free_data(disstream_info_t *info);
212
218void disstream_info_free_all(disstream_info_t *info);
219
225void disstream_packet_free(disstream_packet_t *packet);
226
234void register_tap_listener_disstream(disstream_tapinfo_t *tapinfo, const char *fstring,
235 disstream_tap_error_cb tap_error);
236
242void remove_tap_listener_disstream(disstream_tapinfo_t *tapinfo);
243
249void disstream_reset(disstream_tapinfo_t *tapinfo);
250
256void disstream_reset_cb(void *arg);
257
268tap_packet_status disstream_packet_cb(void *arg, packet_info *pinfo, epan_dissect_t *edt,
269 const void *arg2, tap_flags_t flags);
270
271#ifdef __cplusplus
272}
273#endif /* __cplusplus */
274
275#endif /* __TAP_DIS_COMMON_H__ */
Holds a network or link-layer address of any supported type.
Definition address.h:62
Uniquely identifies a DIS (Distributed Interactive Simulation) stream by its network and radio addres...
Definition tap-dis-common.h:26
uint16_t entity_id_appl
Definition tap-dis-common.h:33
address src_addr
Definition tap-dis-common.h:27
uint16_t entity_id_site
Definition tap-dis-common.h:32
uint16_t entity_id_entity
Definition tap-dis-common.h:34
uint16_t src_port
Definition tap-dis-common.h:28
address dst_addr
Definition tap-dis-common.h:29
uint16_t radio_id
Definition tap-dis-common.h:31
uint16_t dst_port
Definition tap-dis-common.h:30
Aggregated analysis state and statistics for a single DIS stream.
Definition tap-dis-common.h:57
double start_arrival_ms
Definition tap-dis-common.h:97
double excess_codec_time_ms
Definition tap-dis-common.h:103
bool first_timing_packet
Definition tap-dis-common.h:95
uint8_t payload_type
Definition tap-dis-common.h:61
const char * payload_type_str
Definition tap-dis-common.h:62
uint32_t first_packet_num
Definition tap-dis-common.h:74
uint32_t last_packet_num
Definition tap-dis-common.h:75
nstime_t start_rel_time
Definition tap-dis-common.h:78
double filtered_jitter_ms
Definition tap-dis-common.h:102
uint64_t total_payload_bytes
Definition tap-dis-common.h:70
uint8_t transmit_state
Definition tap-dis-common.h:64
uint32_t last_signal_frame_num
Definition tap-dis-common.h:77
uint32_t estimated_lost_packets
Definition tap-dis-common.h:71
uint8_t radio_input_source
Definition tap-dis-common.h:63
nstime_t stop_rel_time
Definition tap-dis-common.h:79
double mean_jitter_ms
Definition tap-dis-common.h:85
bool problem
Definition tap-dis-common.h:89
disstream_id_t id
Definition tap-dis-common.h:58
GPtrArray * signal_packets
Definition tap-dis-common.h:92
double max_jitter_ms
Definition tap-dis-common.h:84
double prev_arrival_ms
Definition tap-dis-common.h:98
uint32_t signal_packet_count
Definition tap-dis-common.h:68
double prev_tx_ms
Definition tap-dis-common.h:101
uint32_t first_signal_frame_num
Definition tap-dis-common.h:76
uint32_t transmitter_packet_count
Definition tap-dis-common.h:69
bool transmission_stopped
Definition tap-dis-common.h:88
uint32_t packet_count
Definition tap-dis-common.h:67
double max_delta_ms
Definition tap-dis-common.h:82
double mean_delta_ms
Definition tap-dis-common.h:83
double prev_nominal_ms
Definition tap-dis-common.h:99
double first_tx_ms
Definition tap-dis-common.h:100
uint32_t timing_packet_count
Definition tap-dis-common.h:96
Captures the decoded content and timing metrics for a single DIS stream packet.
Definition tap-dis-common.h:41
uint32_t estimated_lost_added
Definition tap-dis-common.h:49
guint8 * payload_data
Definition tap-dis-common.h:46
double jitter_ms
Definition tap-dis-common.h:48
bool problem
Definition tap-dis-common.h:50
double delta_ms
Definition tap-dis-common.h:47
nstime_t rel_time
Definition tap-dis-common.h:43
guint payload_len
Definition tap-dis-common.h:45
uint8_t payload_type
Definition tap-dis-common.h:44
uint32_t frame_num
Definition tap-dis-common.h:42
Top-level tap context for DIS stream analysis, holding all discovered streams and tap configuration.
Definition tap-dis-common.h:124
GHashTable * strinfo_hash
Definition tap-dis-common.h:126
GList * strinfo_list
Definition tap-dis-common.h:125
disstream_tap_reset_cb tap_reset
Definition tap-dis-common.h:135
disstream_info_t * filter_stream
Definition tap-dis-common.h:131
bool is_registered
Definition tap-dis-common.h:136
disstream_tap_draw_cb tap_draw
Definition tap-dis-common.h:134
disstream_tap_mode_t mode
Definition tap-dis-common.h:130
FILE * save_file
Definition tap-dis-common.h:132
uint32_t npackets
Definition tap-dis-common.h:128
uint32_t nstreams
Definition tap-dis-common.h:127
Represents the metadata and indexing information for a single captured frame.
Definition packet_info.h:43
Holds all state for the dissection of a single byte array, including session, buffer,...
Definition epan_dissect.h:28
Definition file-pcapng.h:57
Definition nstime.h:26
tap_packet_status
Definition tap.h:22