Wireshark 4.7.3
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
pcapng-netflix-custom.h
Go to the documentation of this file.
1
9
10#ifndef WTAP_PCAPNG_NETFLIX_CUSTOM_H
11#define WTAP_PCAPNG_NETFLIX_CUSTOM_H
12
13#ifdef __cplusplus
14extern "C" {
15#endif /* __cplusplus */
16
17/*
18 * Netflix custom blocks and options.
19 *
20 * https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers
21 */
22#define PEN_NFLX 10949
23
24/*
25 * Netflix BBLog custom block types.
26 */
27#define NFLX_BLOCK_TYPE_EVENT 1
28#define NFLX_BLOCK_TYPE_SKIP 2
29
33typedef struct nflx {
34 uint32_t type;
35 uint32_t skipped;
37
38#define NFLX_OPT_TYPE_VERSION 1
39#define NFLX_OPT_TYPE_TCPINFO 2
40#define NFLX_OPT_TYPE_DUMPINFO 4
41#define NFLX_OPT_TYPE_DUMPTIME 5
42#define NFLX_OPT_TYPE_STACKNAME 6
43
44/* Flags used in tlb_eventflags */
45#define NFLX_TLB_FLAG_RXBUF 0x0001 /* Includes receive buffer info */
46#define NFLX_TLB_FLAG_TXBUF 0x0002 /* Includes send buffer info */
47#define NFLX_TLB_FLAG_HDR 0x0004 /* Includes a TCP header */
48#define NFLX_TLB_FLAG_VERBOSE 0x0008 /* Includes function/line numbers */
49#define NFLX_TLB_FLAG_STACKINFO 0x0010 /* Includes stack-specific info */
50
51/* Flags used in tlb_flags */
52#define NFLX_TLB_TF_REQ_SCALE 0x00000020 /* Sent WS option */
53#define NFLX_TLB_TF_RCVD_SCALE 0x00000040 /* Received WS option */
54
55/* Values of tlb_state */
56#define NFLX_TLB_TCPS_ESTABLISHED 4
57#define NFLX_TLB_IS_SYNCHRONIZED(state) (state >= NFLX_TLB_TCPS_ESTABLISHED)
58
59/*
60 * DO NOT USE sizeof (struct nflx_tcpinfo) AS THE SIZE OF THE CUSTOM
61 * OPTION DATA FOLLOWING THE TYPE. This structure has 64-bit integral
62 * type values in it, but the sum of the sizes of the elements plus
63 * internal padding is *not* a multiple of 8, so, on a platform
64 * on which 64-bit integral type values are aligned on an 8-byte
65 * boundary - i.e., on all 64-bit platforms on which we run,
66 * probably meaning on the majority of machines on which Wireshark
67 * is run these days, especially given that we don't support 32-bit
68 * Windows or macOS any more - it will have 4 bytes of unnamed padding
69 * at the end.
70 *
71 * The custom option data in capture files does *not* necessarily include
72 * the unnamed padding.
73 */
74#define OPT_NFLX_TCPINFO_SIZE 268U
75
80 uint64_t tlb_tv_sec;
81 uint64_t tlb_tv_usec;
82 uint32_t tlb_ticks;
83 uint32_t tlb_sn;
84 uint8_t tlb_stackid;
85 uint8_t tlb_eventid;
86 uint16_t tlb_eventflags;
87 int32_t tlb_errno;
94 int32_t tlb_state;
95 uint32_t tlb_starttime;
96 uint32_t tlb_iss;
97 uint32_t tlb_flags;
98 uint32_t tlb_snd_una;
99 uint32_t tlb_snd_max;
100 uint32_t tlb_snd_cwnd;
101 uint32_t tlb_snd_nxt;
103 uint32_t tlb_snd_wnd;
105 uint32_t tlb_srtt;
106 uint32_t tlb_rttvar;
107 uint32_t tlb_rcv_up;
108 uint32_t tlb_rcv_adv;
109 uint32_t tlb_flags2;
110 uint32_t tlb_rcv_nxt;
111 uint32_t tlb_rcv_wnd;
112 uint32_t tlb_dupacks;
113 int32_t tlb_segqlen;
115 uint32_t tlb_flex1;
116 uint32_t tlb_flex2;
117 uint32_t tlb_fbyte_in;
118 uint32_t tlb_fbyte_out;
119 uint8_t tlb_snd_scale:4,
121 uint8_t _pad[3];
122
123 /* The following fields might become part of a union */
152
153 uint32_t tlb_len;
154};
155
156/*
157 * This is 208 bytes long, and that's a multiple of 8, so the padding
158 * problem that struct nflx_tcpinfo has doesn't appear here.
159 */
160
165 uint32_t tlh_version;
166 uint32_t tlh_type;
167 uint64_t tlh_length;
168 uint16_t tlh_ie_fport;
169 uint16_t tlh_ie_lport;
172 uint32_t tlh_ie_zoneid;
175 char tlh_id[64];
176 char tlh_reason[32];
177 char tlh_tag[32];
178 uint8_t tlh_af;
179 uint8_t _pad[7];
180};
181
182#ifdef __cplusplus
183}
184#endif /* __cplusplus */
185
186#endif /* WTAP_PCAPNG_NETFLIX_CUSTOM_H */
struct nflx wtapng_nflx_custom_mandatory_t
Mandatory payload of a Netflix-specific WTAP_BLOCK_CUSTOM block in a pcapng file.
Netflix BBLog dump info block describing the identity and context of a TCP connection log stream.
Definition pcapng-netflix-custom.h:164
uint16_t tlh_ie_fport
Definition pcapng-netflix-custom.h:168
char tlh_reason[32]
Definition pcapng-netflix-custom.h:176
uint8_t _pad[7]
Definition pcapng-netflix-custom.h:179
char tlh_tag[32]
Definition pcapng-netflix-custom.h:177
uint32_t tlh_version
Definition pcapng-netflix-custom.h:165
uint8_t tlh_af
Definition pcapng-netflix-custom.h:178
uint32_t tlh_ie_faddr_addr32[4]
Definition pcapng-netflix-custom.h:170
uint64_t tlh_offset_tv_sec
Definition pcapng-netflix-custom.h:173
char tlh_id[64]
Definition pcapng-netflix-custom.h:175
uint32_t tlh_type
Definition pcapng-netflix-custom.h:166
uint64_t tlh_length
Definition pcapng-netflix-custom.h:167
uint32_t tlh_ie_laddr_addr32[4]
Definition pcapng-netflix-custom.h:171
uint32_t tlh_ie_zoneid
Definition pcapng-netflix-custom.h:172
uint16_t tlh_ie_lport
Definition pcapng-netflix-custom.h:169
uint64_t tlh_offset_tv_usec
Definition pcapng-netflix-custom.h:174
Netflix BBLog per-event TCP state snapshot recorded at each TCP stack event.
Definition pcapng-netflix-custom.h:79
int32_t tlb_snd_numholes
Definition pcapng-netflix-custom.h:114
uint32_t tlb_stackinfo_bbr_epoch
Definition pcapng-netflix-custom.h:132
uint32_t tlb_snd_nxt
Definition pcapng-netflix-custom.h:101
uint8_t tlb_stackinfo_bbr_bbr_substate
Definition pcapng-netflix-custom.h:146
uint32_t tlb_stackinfo_bbr_pkt_epoch
Definition pcapng-netflix-custom.h:151
uint32_t tlb_snd_una
Definition pcapng-netflix-custom.h:98
uint8_t tlb_snd_scale
Definition pcapng-netflix-custom.h:119
uint8_t tlb_stackid
Definition pcapng-netflix-custom.h:84
uint32_t tlb_snd_wnd
Definition pcapng-netflix-custom.h:103
uint32_t tlb_snd_max
Definition pcapng-netflix-custom.h:99
uint64_t tlb_stackinfo_bbr_rttProp
Definition pcapng-netflix-custom.h:126
uint32_t tlb_stackinfo_bbr_pkts_out
Definition pcapng-netflix-custom.h:134
uint32_t tlb_snd_recover
Definition pcapng-netflix-custom.h:102
uint32_t tlb_rcv_wnd
Definition pcapng-netflix-custom.h:111
uint32_t tlb_snd_ssthresh
Definition pcapng-netflix-custom.h:104
uint32_t tlb_rcv_up
Definition pcapng-netflix-custom.h:107
uint8_t tlb_stackinfo_bbr_bbr_state
Definition pcapng-netflix-custom.h:145
uint32_t tlb_rttvar
Definition pcapng-netflix-custom.h:106
uint32_t tlb_fbyte_in
Definition pcapng-netflix-custom.h:117
uint32_t tlb_rxbuf_tls_sb_acc
Definition pcapng-netflix-custom.h:88
uint64_t tlb_stackinfo_bbr_delRate
Definition pcapng-netflix-custom.h:125
uint32_t tlb_stackinfo_bbr_flex5
Definition pcapng-netflix-custom.h:139
uint32_t tlb_stackinfo_bbr_flex6
Definition pcapng-netflix-custom.h:140
int32_t tlb_errno
Definition pcapng-netflix-custom.h:87
uint8_t _pad[3]
Definition pcapng-netflix-custom.h:121
uint32_t tlb_flags
Definition pcapng-netflix-custom.h:97
uint16_t tlb_stackinfo_bbr_flex7
Definition pcapng-netflix-custom.h:144
uint32_t tlb_flex2
Definition pcapng-netflix-custom.h:116
uint32_t tlb_rxbuf_tls_sb_ccc
Definition pcapng-netflix-custom.h:89
uint32_t tlb_ticks
Definition pcapng-netflix-custom.h:82
uint32_t tlb_len
Definition pcapng-netflix-custom.h:153
uint32_t tlb_dupacks
Definition pcapng-netflix-custom.h:112
uint32_t tlb_stackinfo_bbr_inflight
Definition pcapng-netflix-custom.h:128
uint8_t tlb_rcv_scale
Definition pcapng-netflix-custom.h:120
uint32_t tlb_stackinfo_bbr_flex4
Definition pcapng-netflix-custom.h:138
uint32_t tlb_stackinfo_bbr_flex1
Definition pcapng-netflix-custom.h:135
uint32_t tlb_txbuf_tls_sb_acc
Definition pcapng-netflix-custom.h:91
uint32_t tlb_stackinfo_bbr_timeStamp
Definition pcapng-netflix-custom.h:131
uint32_t tlb_srtt
Definition pcapng-netflix-custom.h:105
uint64_t tlb_tv_usec
Definition pcapng-netflix-custom.h:81
uint32_t tlb_txbuf_tls_sb_spare
Definition pcapng-netflix-custom.h:93
uint8_t tlb_stackinfo_bbr_inhpts
Definition pcapng-netflix-custom.h:147
uint32_t tlb_flex1
Definition pcapng-netflix-custom.h:115
uint32_t tlb_fbyte_out
Definition pcapng-netflix-custom.h:118
uint16_t tlb_stackinfo_bbr_pacing_gain
Definition pcapng-netflix-custom.h:142
uint32_t tlb_stackinfo_bbr_lt_epoch
Definition pcapng-netflix-custom.h:133
uint32_t tlb_iss
Definition pcapng-netflix-custom.h:96
uint32_t tlb_sn
Definition pcapng-netflix-custom.h:83
uint8_t tlb_stackinfo_bbr_use_lt_bw
Definition pcapng-netflix-custom.h:149
uint8_t tlb_stackinfo_bbr_flex8
Definition pcapng-netflix-custom.h:150
uint8_t tlb_eventid
Definition pcapng-netflix-custom.h:85
uint32_t tlb_snd_cwnd
Definition pcapng-netflix-custom.h:100
uint32_t tlb_stackinfo_bbr_lost
Definition pcapng-netflix-custom.h:141
uint32_t tlb_stackinfo_bbr_flex2
Definition pcapng-netflix-custom.h:136
uint32_t tlb_starttime
Definition pcapng-netflix-custom.h:95
uint64_t tlb_stackinfo_bbr_bw_inuse
Definition pcapng-netflix-custom.h:127
uint32_t tlb_rcv_adv
Definition pcapng-netflix-custom.h:108
uint32_t tlb_rcv_nxt
Definition pcapng-netflix-custom.h:110
uint32_t tlb_rxbuf_tls_sb_spare
Definition pcapng-netflix-custom.h:90
uint32_t tlb_flags2
Definition pcapng-netflix-custom.h:109
uint8_t tlb_stackinfo_bbr_ininput
Definition pcapng-netflix-custom.h:148
uint32_t tlb_txbuf_tls_sb_ccc
Definition pcapng-netflix-custom.h:92
uint32_t tlb_stackinfo_bbr_flex3
Definition pcapng-netflix-custom.h:137
uint32_t tlb_stackinfo_bbr_applimited
Definition pcapng-netflix-custom.h:129
uint64_t tlb_stackinfo_bbr_cur_del_rate
Definition pcapng-netflix-custom.h:124
int32_t tlb_segqlen
Definition pcapng-netflix-custom.h:113
int32_t tlb_state
Definition pcapng-netflix-custom.h:94
uint32_t tlb_stackinfo_bbr_delivered
Definition pcapng-netflix-custom.h:130
uint64_t tlb_tv_sec
Definition pcapng-netflix-custom.h:80
uint16_t tlb_stackinfo_bbr_cwnd_gain
Definition pcapng-netflix-custom.h:143
uint16_t tlb_eventflags
Definition pcapng-netflix-custom.h:86
Mandatory payload of a Netflix-specific WTAP_BLOCK_CUSTOM block in a pcapng file.
Definition pcapng-netflix-custom.h:33
uint32_t skipped
Definition pcapng-netflix-custom.h:35
uint32_t type
Definition pcapng-netflix-custom.h:34