Wireshark 4.7.3
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
packet-udx.h
1/* packet-udx.h
2 * Routines for UDX dissection
3 * Copyright 2026, Prabakaran Sivakumar <zkasuran@gmail.com>
4 *
5 * Wireshark - Network traffic analyzer
6 * By Gerald Combs <gerald@wireshark.org>
7 * Copyright 1998 Gerald Combs
8 *
9 * SPDX-License-Identifier: GPL-2.0-or-later
10 */
11
12#ifndef __PACKET_UDX_H__
13#define __PACKET_UDX_H__
14
15#include "ws_symbol_export.h"
16
17#include <epan/conversation.h>
18
19#ifdef __cplusplus
20extern "C" {
21#endif /* __cplusplus */
22
23/* Bounds the SACK blocks carried per packet; data_offset caps the area at
24 * 255 bytes, i.e. 31 blocks. */
25#define UDX_MAX_SACK_BLOCKS 32
26
27/*
28 * Queued on the "udx" tap: one decoded UDX header, with the stream it belongs
29 * to and the addresses and ports of the datagram that carried it.
30 *
31 * Sequence and acknowledgement numbers count packets rather than bytes, so
32 * seq advances by one per packet whatever the payload size. Consumers that
33 * want a byte offset have to accumulate payload_len themselves.
34 */
35typedef struct udx_info {
36 uint32_t id; /* the receiver's stream id, as carried on the wire */
37 uint32_t seq; /* per-packet sequence counter */
38 uint32_t ack; /* next seq expected from the peer */
39 uint32_t window; /* sender's receive window, in bytes */
40 uint32_t payload_len; /* payload bytes, excluding SACK blocks and padding */
41 uint32_t stream; /* Wireshark UDX stream index, as in udx.stream */
42 uint32_t sport; /* UDP source port of the carrying datagram */
43 uint32_t dport; /* UDP destination port of the carrying datagram */
44 uint8_t flags; /* UDX type flags */
45 uint8_t data_offset; /* bytes between the fixed header and the payload */
46 address ip_src;
47 address ip_dst;
48 unsigned num_sack_blocks;
49 uint32_t sack_start[UDX_MAX_SACK_BLOCKS];
50 uint32_t sack_end[UDX_MAX_SACK_BLOCKS];
51} udx_info_t;
52
53#ifdef __cplusplus
54}
55#endif /* __cplusplus */
56
57#endif /* __PACKET_UDX_H__ */
58
59/*
60 * Editor modelines - https://www.wireshark.org/tools/modelines.html
61 *
62 * Local variables:
63 * c-basic-offset: 4
64 * tab-width: 8
65 * indent-tabs-mode: nil
66 * End:
67 *
68 * vi: set shiftwidth=4 tabstop=8 expandtab:
69 * :indentSize=4:tabSize=8:noTabs=true:
70 */
struct _address address
Holds a network or link-layer address of any supported type.
Definition packet-udx.h:35