Wireshark 4.7.2
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
wtap_opttypes.h
Go to the documentation of this file.
1
9
10#ifndef WTAP_OPT_TYPES_H
11#define WTAP_OPT_TYPES_H
12
13#include "ws_symbol_export.h"
14
15#include <wsutil/inet_addr.h>
16
17#ifdef __cplusplus
18extern "C" {
19#endif /* __cplusplus */
20
21/*
22 * We use the pcapng option codes for option type values.
23 */
24
25/* Options for all blocks */
26#define OPT_EOFOPT 0
27#define OPT_COMMENT 1
28#define OPT_CUSTOM_STR_COPY 2988
29#define OPT_CUSTOM_BIN_COPY 2989
30#define OPT_CUSTOM_STR_NO_COPY 19372
31#define OPT_CUSTOM_BIN_NO_COPY 19373
32
33/* Section Header block (SHB) */
34#define OPT_SHB_HARDWARE 2
37#define OPT_SHB_OS 3
40#define OPT_SHB_USERAPPL 4
43
44/* Interface Description block (IDB) */
45#define OPT_IDB_NAME 2
49#define OPT_IDB_DESCRIPTION 3
55#define OPT_IDB_IP4ADDR 4
60#define OPT_IDB_IP6ADDR 5
66#define OPT_IDB_MACADDR 6
67#define OPT_IDB_EUIADDR 7
68#define OPT_IDB_SPEED 8
70#define OPT_IDB_TSRESOL 9
79#define OPT_IDB_TZONE 10
85#define OPT_IDB_FILTER 11
92#define OPT_IDB_OS 12
100#define OPT_IDB_FCSLEN 13
105#define OPT_IDB_TSOFFSET 14
115#define OPT_IDB_HARDWARE 15
122#define OPT_IDB_TXSPEED 16
125#define OPT_IDB_RXSPEED 17
128#define OPT_IDB_IANA_TZNAME 18
131
132/*
133 * These are the options for an EPB, but we use them for all WTAP_BLOCK_PACKET
134 */
135#define OPT_PKT_FLAGS 2
136#define OPT_PKT_HASH 3
137#define OPT_PKT_DROPCOUNT 4
138#define OPT_PKT_PACKETID 5
139#define OPT_PKT_QUEUE 6
140#define OPT_PKT_VERDICT 7
141#define OPT_PKT_PROCIDTHRDID 8
142
143/* Name Resolution Block (NRB) */
144#define OPT_NS_DNSNAME 2
145#define OPT_NS_DNSIP4ADDR 3
146#define OPT_NS_DNSIP6ADDR 4
147
148/* Interface Statistics Block (ISB) */
149#define OPT_ISB_STARTTIME 2
150#define OPT_ISB_ENDTIME 3
151#define OPT_ISB_IFRECV 4
152#define OPT_ISB_IFDROP 5
153#define OPT_ISB_FILTERACCEPT 6
154#define OPT_ISB_OSDROP 7
155#define OPT_ISB_USRDELIV 8
156
157/* Darwin Process Info Block (DPIB) */
158#define OPT_DPIB_NAME 2
159#define OPT_DPIB_UUID 4
160
161/* Darwin-specific options for EPB */
162#define OPT_PKT_DARWIN_PIB_ID 32769
163#define OPT_PKT_DARWIN_SVC_CODE 32770
164#define OPT_PKT_DARWIN_EFFECTIVE_PIB_ID 32771
165#define OPT_PKT_DARWIN_MD_FLAGS 32772
166#define OPT_PKT_DARWIN_FLOW_ID 32773
167#define OPT_PKT_DARWIN_TRACE_TAG 32774
168#define OPT_PKT_DARWIN_DROP_REASON 32775
169#define OPT_PKT_DARWIN_DROP_LINE 32776
170#define OPT_PKT_DARWIN_DROP_FUNC 32777
171#define OPT_PKT_DARWIN_COMP_GENCNT 32778
172
173
250
251struct wtap_block;
252typedef struct wtap_block* wtap_block_t;
253
254typedef void (*wtap_block_create_func)(wtap_block_t block);
255typedef void (*wtap_mand_free_func)(wtap_block_t block);
256typedef void (*wtap_mand_copy_func)(wtap_block_t dest_block, wtap_block_t src_block);
257
270
277 GArray *options;
279#ifdef DEBUG_COUNT_REFS
280 unsigned id;
281#endif
282};
283
297
303 GArray *interface_data;
305
311 GArray *dpibs;
313
319 uint64_t time_units_per_second;
321
322 uint32_t snap_len;
323
324 uint8_t num_stat_entries;
328
333 GList *ipv4_addr_list;
334 GList *ipv6_addr_list;
336
341 uint32_t interface_id;
342 uint32_t ts_high;
343 uint32_t ts_low;
345
350 uint32_t secrets_type;
351 uint32_t secrets_len;
352 uint8_t *secrets_data;
354
359 uint32_t mev_block_type;
360 unsigned mev_data_len;
361 uint8_t *mev_data;
363
370#if 0
371/* Commented out for now, there's no mandatory data that isn't handled by
372 * Wireshark in other ways.
373 */
374typedef struct wtapng_packet_mandatory_s {
375 uint32_t interface_id;
376 uint32_t ts_high;
377 uint32_t ts_low;
378 uint32_t captured_len;
379 uint32_t orig_len;
380} wtapng_packet_mandatory_t;
381#endif
382
389
394 unsigned record_type; /* the type of record this is - file type-specific value */
396
421
435
436/* https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers */
437#define PEN_VCTR 46254
438
446
447
455
463
464/* Interface description data - if_filter option structure */
465
472typedef struct wtap_bpf_insn_s {
473 uint16_t code;
474 uint8_t jt;
475 uint8_t jf;
476 uint32_t k;
478
479
485typedef enum {
486 if_filter_pcap = 0, /* pcap filter string */
487 if_filter_bpf = 1 /* BPF program */
489
493typedef struct if_filter_opt_s {
495
499 union {
501
505 struct wtap_bpf_insns {
506 unsigned bpf_prog_len;
509 } data;
511
512/* Packet - packet_verdict option structure */
513
522
523
535
536
540typedef struct packet_hash_opt_s {
541 uint8_t type;
542 GByteArray *hash_bytes;
544
545
569
573typedef struct {
574 unsigned option_id;
577
582typedef void (*wtap_block_create_func)(wtap_block_t block);
583
588typedef void (*wtap_mand_free_func)(wtap_block_t block);
589
595typedef void (*wtap_mand_copy_func)(wtap_block_t dest_block, wtap_block_t src_block);
596
600typedef struct {
601 const char *name;
602 const char *description;
604 unsigned flags;
606
607#define GET_OPTION_TYPE(options, option_id) \
608 (const wtap_opttype_t *)g_hash_table_lookup((options), GUINT_TO_POINTER(option_id))
609
617WS_DLL_PUBLIC void
619
628WS_DLL_PUBLIC wtap_block_t
630
639WS_DLL_PUBLIC wtap_block_t
640wtap_block_ref(wtap_block_t block);
641
649WS_DLL_PUBLIC void
650wtap_block_unref(wtap_block_t block);
651
661WS_DLL_PUBLIC void
662wtap_block_array_free(GArray* block_array);
663
675WS_DLL_PUBLIC void
676wtap_block_array_unref(GArray* block_array);
677
686WS_DLL_PUBLIC void
687wtap_block_array_ref(GArray* block_array);
688
694WS_DLL_PUBLIC void
696
703WS_DLL_PUBLIC wtap_block_type_t
704wtap_block_get_type(wtap_block_t block);
705
712WS_DLL_PUBLIC void*
713wtap_block_get_mandatory_data(wtap_block_t block);
714
722WS_DLL_PUBLIC unsigned
723wtap_block_count_option(wtap_block_t block, unsigned option_id);
724
734WS_DLL_PUBLIC wtap_opttype_return_val
735wtap_block_add_uint8_option(wtap_block_t block, unsigned option_id, uint8_t value);
736
746WS_DLL_PUBLIC wtap_opttype_return_val
747wtap_block_set_uint8_option_value(wtap_block_t block, unsigned option_id, uint8_t value);
748
758WS_DLL_PUBLIC wtap_opttype_return_val
759wtap_block_get_uint8_option_value(wtap_block_t block, unsigned option_id, uint8_t* value) G_GNUC_WARN_UNUSED_RESULT;
760
770WS_DLL_PUBLIC wtap_opttype_return_val
771wtap_block_add_uint32_option(wtap_block_t block, unsigned option_id, uint32_t value);
772
782WS_DLL_PUBLIC wtap_opttype_return_val
783wtap_block_set_uint32_option_value(wtap_block_t block, unsigned option_id, uint32_t value);
784
794WS_DLL_PUBLIC wtap_opttype_return_val
795wtap_block_get_uint32_option_value(wtap_block_t block, unsigned option_id, uint32_t* value) G_GNUC_WARN_UNUSED_RESULT;
796
806WS_DLL_PUBLIC wtap_opttype_return_val
807wtap_block_add_uint64_option(wtap_block_t block, unsigned option_id, uint64_t value);
808
818WS_DLL_PUBLIC wtap_opttype_return_val
819wtap_block_set_uint64_option_value(wtap_block_t block, unsigned option_id, uint64_t value);
820
830WS_DLL_PUBLIC wtap_opttype_return_val
831wtap_block_get_uint64_option_value(wtap_block_t block, unsigned option_id, uint64_t* value) G_GNUC_WARN_UNUSED_RESULT;
832
842WS_DLL_PUBLIC wtap_opttype_return_val
843wtap_block_add_int8_option(wtap_block_t block, unsigned option_id, int8_t value);
844
854WS_DLL_PUBLIC wtap_opttype_return_val
855wtap_block_set_int8_option_value(wtap_block_t block, unsigned option_id, int8_t value);
856
866WS_DLL_PUBLIC wtap_opttype_return_val
867wtap_block_get_int8_option_value(wtap_block_t block, unsigned option_id, int8_t* value) G_GNUC_WARN_UNUSED_RESULT;
868
878WS_DLL_PUBLIC wtap_opttype_return_val
879wtap_block_add_int32_option(wtap_block_t block, unsigned option_id, int32_t value);
880
890WS_DLL_PUBLIC wtap_opttype_return_val
891wtap_block_set_int32_option_value(wtap_block_t block, unsigned option_id, int32_t value);
892
902WS_DLL_PUBLIC wtap_opttype_return_val
903wtap_block_get_int32_option_value(wtap_block_t block, unsigned option_id, int32_t* value) G_GNUC_WARN_UNUSED_RESULT;
904
914WS_DLL_PUBLIC wtap_opttype_return_val
915wtap_block_add_int64_option(wtap_block_t block, unsigned option_id, int64_t value);
916
926WS_DLL_PUBLIC wtap_opttype_return_val
927wtap_block_set_int64_option_value(wtap_block_t block, unsigned option_id, int64_t value);
928
938WS_DLL_PUBLIC wtap_opttype_return_val
939wtap_block_get_int64_option_value(wtap_block_t block, unsigned option_id, int64_t* value) G_GNUC_WARN_UNUSED_RESULT;
940
950WS_DLL_PUBLIC wtap_opttype_return_val
951wtap_block_add_ipv4_option(wtap_block_t block, unsigned option_id, uint32_t value);
952
962WS_DLL_PUBLIC wtap_opttype_return_val
963wtap_block_set_ipv4_option_value(wtap_block_t block, unsigned option_id, uint32_t value);
964
974WS_DLL_PUBLIC wtap_opttype_return_val
975wtap_block_get_ipv4_option_value(wtap_block_t block, unsigned option_id, uint32_t* value) G_GNUC_WARN_UNUSED_RESULT;
976
986WS_DLL_PUBLIC wtap_opttype_return_val
987wtap_block_add_ipv6_option(wtap_block_t block, unsigned option_id, ws_in6_addr *value);
988
998WS_DLL_PUBLIC wtap_opttype_return_val
999wtap_block_set_ipv6_option_value(wtap_block_t block, unsigned option_id, ws_in6_addr *value);
1000
1010WS_DLL_PUBLIC wtap_opttype_return_val
1011wtap_block_get_ipv6_option_value(wtap_block_t block, unsigned option_id, ws_in6_addr* value) G_GNUC_WARN_UNUSED_RESULT;
1012
1023WS_DLL_PUBLIC wtap_opttype_return_val
1024wtap_block_add_string_option(wtap_block_t block, unsigned option_id, const char *value, size_t value_length);
1025
1036WS_DLL_PUBLIC wtap_opttype_return_val
1037wtap_block_add_string_option_owned(wtap_block_t block, unsigned option_id, char *value) G_GNUC_WARN_UNUSED_RESULT;
1038
1048WS_DLL_PUBLIC wtap_opttype_return_val
1049wtap_block_add_string_option_format(wtap_block_t block, unsigned option_id, const char *format, ...)
1050 G_GNUC_PRINTF(3,4);
1051
1062WS_DLL_PUBLIC wtap_opttype_return_val
1063wtap_block_set_string_option_value(wtap_block_t block, unsigned option_id, const char* value, size_t value_length);
1064
1077WS_DLL_PUBLIC wtap_opttype_return_val
1078wtap_block_set_nth_string_option_value(wtap_block_t block, unsigned option_id, unsigned idx, const char* value, size_t value_length);
1079
1089WS_DLL_PUBLIC wtap_opttype_return_val
1090wtap_block_set_string_option_value_format(wtap_block_t block, unsigned option_id, const char *format, ...)
1091 G_GNUC_PRINTF(3,4);
1092
1104WS_DLL_PUBLIC wtap_opttype_return_val
1105wtap_block_set_nth_string_option_value_format(wtap_block_t block, unsigned option_id, unsigned idx, const char *format, ...)
1106 G_GNUC_PRINTF(4,5);
1107
1117WS_DLL_PUBLIC wtap_opttype_return_val
1118wtap_block_get_string_option_value(wtap_block_t block, unsigned option_id, char** value) G_GNUC_WARN_UNUSED_RESULT;
1119
1131WS_DLL_PUBLIC wtap_opttype_return_val
1132wtap_block_get_nth_string_option_value(wtap_block_t block, unsigned option_id, unsigned idx, char** value) G_GNUC_WARN_UNUSED_RESULT;
1133
1144WS_DLL_PUBLIC wtap_opttype_return_val
1145wtap_block_add_bytes_option(wtap_block_t block, unsigned option_id, const uint8_t *value, size_t value_length);
1146
1156WS_DLL_PUBLIC wtap_opttype_return_val
1157wtap_block_add_bytes_option_borrow(wtap_block_t block, unsigned option_id, GBytes *value);
1158
1169WS_DLL_PUBLIC wtap_opttype_return_val
1170wtap_block_set_bytes_option_value(wtap_block_t block, unsigned option_id, const uint8_t* value, size_t value_length);
1171
1182WS_DLL_PUBLIC wtap_opttype_return_val
1183wtap_block_set_nth_bytes_option_value(wtap_block_t block, unsigned option_id, unsigned idx, GBytes* value);
1184
1196WS_DLL_PUBLIC wtap_opttype_return_val
1197wtap_block_get_bytes_option_value(wtap_block_t block, unsigned option_id, GBytes** value) G_GNUC_WARN_UNUSED_RESULT;
1198
1211WS_DLL_PUBLIC wtap_opttype_return_val
1212wtap_block_get_nth_bytes_option_value(wtap_block_t block, unsigned option_id, unsigned idx, GBytes** value) G_GNUC_WARN_UNUSED_RESULT;
1213
1226WS_DLL_PUBLIC wtap_opttype_return_val
1227wtap_block_add_custom_string_option(wtap_block_t block, unsigned option_id, uint32_t pen, const char *value, size_t value_length);
1228
1240WS_DLL_PUBLIC wtap_opttype_return_val
1241wtap_block_add_custom_binary_option(wtap_block_t block, unsigned option_id, uint32_t pen, binary_optdata_t *value);
1242
1255WS_DLL_PUBLIC wtap_opttype_return_val
1256wtap_block_add_custom_binary_option_from_data(wtap_block_t block, unsigned option_id, uint32_t pen, const void *data, size_t data_size);
1257
1270WS_DLL_PUBLIC wtap_opttype_return_val
1271wtap_block_get_nth_custom_binary_option_value(wtap_block_t block, unsigned option_id, uint32_t pen, unsigned idx, binary_optdata_t *value);
1272
1282WS_DLL_PUBLIC wtap_opttype_return_val
1283wtap_block_add_if_filter_option(wtap_block_t block, unsigned option_id, if_filter_opt_t* value);
1284
1294WS_DLL_PUBLIC wtap_opttype_return_val
1295wtap_block_set_if_filter_option_value(wtap_block_t block, unsigned option_id, if_filter_opt_t* value);
1296
1306WS_DLL_PUBLIC wtap_opttype_return_val
1307wtap_block_get_if_filter_option_value(wtap_block_t block, unsigned option_id, if_filter_opt_t* value) G_GNUC_WARN_UNUSED_RESULT;
1308
1318WS_DLL_PUBLIC wtap_opttype_return_val
1319wtap_block_add_packet_verdict_option(wtap_block_t block, unsigned option_id, packet_verdict_opt_t* value);
1320
1332WS_DLL_PUBLIC wtap_opttype_return_val
1333wtap_block_set_nth_packet_verdict_option_value(wtap_block_t block, unsigned option_id, unsigned idx, packet_verdict_opt_t* value);
1334
1346WS_DLL_PUBLIC wtap_opttype_return_val
1347wtap_block_get_nth_packet_verdict_option_value(wtap_block_t block, unsigned option_id, unsigned idx, packet_verdict_opt_t* value) G_GNUC_WARN_UNUSED_RESULT;
1348
1354WS_DLL_PUBLIC void
1355wtap_packet_verdict_free(packet_verdict_opt_t* verdict);
1356
1366WS_DLL_PUBLIC wtap_opttype_return_val
1367wtap_block_add_packet_hash_option(wtap_block_t block, unsigned option_id, packet_hash_opt_t* value);
1368
1374WS_DLL_PUBLIC void
1375wtap_packet_hash_free(packet_hash_opt_t* hash);
1376
1385WS_DLL_PUBLIC wtap_opttype_return_val
1386wtap_block_remove_option(wtap_block_t block, unsigned option_id);
1387
1397WS_DLL_PUBLIC wtap_opttype_return_val
1398wtap_block_remove_nth_option_instance(wtap_block_t block, unsigned option_id, unsigned idx);
1399
1409WS_DLL_PUBLIC void
1410wtap_block_copy(wtap_block_t dest_block, wtap_block_t src_block);
1411
1418WS_DLL_PUBLIC wtap_block_t
1419wtap_block_make_copy(wtap_block_t block);
1420
1434typedef bool (*wtap_block_foreach_func)(wtap_block_t block, unsigned option_id,
1435 wtap_opttype_e option_type, wtap_optval_t *option,
1436 void *user_data);
1437
1448WS_DLL_PUBLIC bool
1449wtap_block_foreach_option(wtap_block_t block, wtap_block_foreach_func func, void* user_data);
1450
1454WS_DLL_PUBLIC void
1455wtap_opttypes_cleanup(void);
1456
1457#ifdef __cplusplus
1458}
1459#endif /* __cplusplus */
1460
1461#endif /* WTAP_OPT_TYPES_H */
struct e_in6_addr ws_in6_addr
Represents a 128-bit IPv6 address.
uint32_t ws_in4_addr
Represents a 32-bit IPv4 address in network byte order.
Definition inet_addr.h:22
Holds the raw binary payload of a custom binary option.
Definition wtap_opttypes.h:451
size_t custom_data_len
Definition wtap_opttypes.h:452
void * custom_data
Definition wtap_opttypes.h:453
Holds the value of a custom binary option, combining a Private Enterprise Number with its associated ...
Definition wtap_opttypes.h:459
binary_optdata_t data
Definition wtap_opttypes.h:461
uint32_t pen
Definition wtap_opttypes.h:460
Holds the value of a custom string option, combining a Private Enterprise Number with its associated ...
Definition wtap_opttypes.h:442
uint32_t pen
Definition wtap_opttypes.h:443
char * string
Definition wtap_opttypes.h:444
Holds the value of an interface filter option, expressed as either a pcap filter string or a compiled...
Definition wtap_opttypes.h:493
char * filter_str
Definition wtap_opttypes.h:500
if_filter_type_e type
Definition wtap_opttypes.h:494
unsigned bpf_prog_len
Definition wtap_opttypes.h:506
wtap_bpf_insn_t * bpf_prog
Definition wtap_opttypes.h:507
Packet hash option value, carrying a typed digest of the packet contents.
Definition wtap_opttypes.h:540
GByteArray * hash_bytes
Definition wtap_opttypes.h:542
uint8_t type
Definition wtap_opttypes.h:541
Packet verdict option value, carrying a type-tagged verdict from the capture source.
Definition wtap_opttypes.h:527
GByteArray * verdict_bytes
Definition wtap_opttypes.h:530
packet_verdict_type_e type
Definition wtap_opttypes.h:528
uint64_t verdict_linux_ebpf_tc
Definition wtap_opttypes.h:531
uint64_t verdict_linux_ebpf_xdp
Definition wtap_opttypes.h:532
A single instance of a pcapng block, holding its type descriptor, mandatory data payload,...
Definition wtap_opttypes.h:274
void * mandatory_data
Definition wtap_opttypes.h:276
GArray * options
Definition wtap_opttypes.h:277
struct wtap_blocktype_t * info
Definition wtap_opttypes.h:275
int ref_count
Definition wtap_opttypes.h:278
Describes a registered pcapng block type, including its identity, human-readable metadata,...
Definition wtap_opttypes.h:261
wtap_block_create_func create
Definition wtap_opttypes.h:265
const char * description
Definition wtap_opttypes.h:264
wtap_mand_copy_func copy_mand
Definition wtap_opttypes.h:267
GHashTable * options
Definition wtap_opttypes.h:268
const char * name
Definition wtap_opttypes.h:263
wtap_mand_free_func free_mand
Definition wtap_opttypes.h:266
wtap_block_type_t block_type
Definition wtap_opttypes.h:262
Berkeley Packet Filter (BPF) instruction.
Definition wtap_opttypes.h:472
uint32_t k
Definition wtap_opttypes.h:476
uint8_t jf
Definition wtap_opttypes.h:475
uint8_t jt
Definition wtap_opttypes.h:474
uint16_t code
Definition wtap_opttypes.h:473
Represents a single option instance within a pcapng block, pairing an option code with its value.
Definition wtap_opttypes.h:573
wtap_optval_t value
Definition wtap_opttypes.h:575
unsigned option_id
Definition wtap_opttypes.h:574
Describes a registered option type, including its identity, human-readable metadata,...
Definition wtap_opttypes.h:600
wtap_opttype_e data_type
Definition wtap_opttypes.h:603
const char * description
Definition wtap_opttypes.h:602
const char * name
Definition wtap_opttypes.h:601
unsigned flags
Definition wtap_opttypes.h:604
Definition wtap_opttypes.h:386
Definition wtap_opttypes.h:310
Definition wtap_opttypes.h:349
uint32_t secrets_len
Definition wtap_opttypes.h:351
uint8_t * secrets_data
Definition wtap_opttypes.h:352
Definition wtap_opttypes.h:393
Definition wtap_opttypes.h:317
GArray * interface_statistics
Definition wtap_opttypes.h:325
int tsprecision
Definition wtap_opttypes.h:320
int wtap_encap
Definition wtap_opttypes.h:318
Definition wtap_opttypes.h:340
Definition wtap_opttypes.h:302
Definition wtap_opttypes.h:358
unsigned mev_data_len
Definition wtap_opttypes.h:360
uint8_t * mev_data
Definition wtap_opttypes.h:361
Definition wtap_opttypes.h:332
Definition wtap_opttypes.h:287
uint64_t section_length
Definition wtap_opttypes.h:288
Discriminated union holding the value of any Wiretap option type.
Definition wtap_opttypes.h:552
packet_verdict_opt_t packet_verdictval
Definition wtap_opttypes.h:566
if_filter_opt_t if_filterval
Definition wtap_opttypes.h:565
char * stringval
Definition wtap_opttypes.h:561
int8_t int8val
Definition wtap_opttypes.h:556
GBytes * byteval
Definition wtap_opttypes.h:562
custom_binary_opt_t custom_binaryval
Definition wtap_opttypes.h:564
custom_string_opt_t custom_stringval
Definition wtap_opttypes.h:563
packet_hash_opt_t packet_hash
Definition wtap_opttypes.h:567
ws_in4_addr ipv4val
Definition wtap_opttypes.h:559
uint64_t uint64val
Definition wtap_opttypes.h:555
int32_t int32val
Definition wtap_opttypes.h:557
uint32_t uint32val
Definition wtap_opttypes.h:554
uint8_t uint8val
Definition wtap_opttypes.h:553
int64_t int64val
Definition wtap_opttypes.h:558
ws_in6_addr ipv6val
Definition wtap_opttypes.h:560
struct wtapng_meta_event_mandatory_s wtapng_meta_event_mandatory_t
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_get_uint32_option_value(wtap_block_t block, unsigned option_id, uint32_t *value) G_GNUC_WARN_UNUSED_RESULT
Get UINT32 option value from a block.
Definition wtap_opttypes.c:830
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_set_uint8_option_value(wtap_block_t block, unsigned option_id, uint8_t value)
Set UINT8 option value in a block.
Definition wtap_opttypes.c:778
struct custom_binary_opt_s custom_binary_opt_t
Holds the value of a custom binary option, combining a Private Enterprise Number with its associated ...
wtap_block_type_t
Currently supported blocks; these are not the pcapng block type values for them, they're identifiers ...
Definition wtap_opttypes.h:234
@ WTAP_BLOCK_PACKET
Definition wtap_opttypes.h:240
@ WTAP_BLOCK_SYSDIG_EVENT
Definition wtap_opttypes.h:243
@ WTAP_BLOCK_FT_SPECIFIC_REPORT
Definition wtap_opttypes.h:241
@ WTAP_BLOCK_CUSTOM
Definition wtap_opttypes.h:246
@ WTAP_BLOCK_IF_ID_AND_INFO
Definition wtap_opttypes.h:236
@ WTAP_BLOCK_SECTION
Definition wtap_opttypes.h:235
@ WTAP_BLOCK_DECRYPTION_SECRETS
Definition wtap_opttypes.h:239
@ WTAP_BLOCK_FT_SPECIFIC_EVENT
Definition wtap_opttypes.h:242
@ WTAP_BLOCK_FT_SPECIFIC_INFORMATION
Definition wtap_opttypes.h:247
@ WTAP_BLOCK_IF_STATISTICS
Definition wtap_opttypes.h:238
@ WTAP_BLOCK_META_EVENT
Definition wtap_opttypes.h:244
@ MAX_WTAP_BLOCK_TYPE_VALUE
Definition wtap_opttypes.h:248
@ WTAP_BLOCK_SYSTEMD_JOURNAL_EXPORT
Definition wtap_opttypes.h:245
@ WTAP_BLOCK_NAME_RESOLUTION
Definition wtap_opttypes.h:237
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_add_int64_option(wtap_block_t block, unsigned option_id, int64_t value)
Add INT64 option value to a block.
Definition wtap_opttypes.c:960
bool(* wtap_block_foreach_func)(wtap_block_t block, unsigned option_id, wtap_opttype_e option_type, wtap_optval_t *option, void *user_data)
Callback type for iterating over block options.
Definition wtap_opttypes.h:1434
wtap_opttype_e
Data types for option values stored within a wtap block.
Definition wtap_opttypes.h:404
@ WTAP_OPTTYPE_UINT32
Definition wtap_opttypes.h:406
@ WTAP_OPTTYPE_CUSTOM_STRING
Definition wtap_opttypes.h:412
@ WTAP_OPTTYPE_IPv6
Definition wtap_opttypes.h:411
@ WTAP_OPTTYPE_STRING
Definition wtap_opttypes.h:408
@ WTAP_OPTTYPE_IPv4
Definition wtap_opttypes.h:410
@ WTAP_OPTTYPE_BYTES
Definition wtap_opttypes.h:409
@ WTAP_OPTTYPE_INT8
Definition wtap_opttypes.h:417
@ WTAP_OPTTYPE_INT64
Definition wtap_opttypes.h:419
@ WTAP_OPTTYPE_IF_FILTER
Definition wtap_opttypes.h:414
@ WTAP_OPTTYPE_UINT64
Definition wtap_opttypes.h:407
@ WTAP_OPTTYPE_INT32
Definition wtap_opttypes.h:418
@ WTAP_OPTTYPE_PACKET_VERDICT
Definition wtap_opttypes.h:415
@ WTAP_OPTTYPE_CUSTOM_BINARY
Definition wtap_opttypes.h:413
@ WTAP_OPTTYPE_PACKET_HASH
Definition wtap_opttypes.h:416
@ WTAP_OPTTYPE_UINT8
Definition wtap_opttypes.h:405
struct wtapng_section_mandatory_s wtapng_section_mandatory_t
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_get_uint8_option_value(wtap_block_t block, unsigned option_id, uint8_t *value) G_GNUC_WARN_UNUSED_RESULT
Get UINT8 option value from a block.
Definition wtap_opttypes.c:791
struct wtap_bpf_insn_s wtap_bpf_insn_t
Berkeley Packet Filter (BPF) instruction.
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_add_string_option_format(wtap_block_t block, unsigned option_id, const char *format,...)
Add a string option to a block with a printf-formatted string as its value.
Definition wtap_opttypes.c:1119
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_set_int32_option_value(wtap_block_t block, unsigned option_id, int32_t value)
Set INT32 option value in a block.
Definition wtap_opttypes.c:934
struct wtapng_dpib_lookup_info_s wtapng_dpib_lookup_info_t
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_get_int64_option_value(wtap_block_t block, unsigned option_id, int64_t *value) G_GNUC_WARN_UNUSED_RESULT
Get INT64 option value from a block.
Definition wtap_opttypes.c:986
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_add_string_option(wtap_block_t block, unsigned option_id, const char *value, size_t value_length)
Add a string option to a block.
Definition wtap_opttypes.c:1077
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_add_uint32_option(wtap_block_t block, unsigned option_id, uint32_t value)
Add UINT32 option value to a block.
Definition wtap_opttypes.c:804
WS_DLL_PUBLIC void wtap_opttype_block_register(wtap_blocktype_t *blocktype)
Register a block type handler.
Definition wtap_opttypes.c:185
void(* wtap_mand_free_func)(wtap_block_t block)
Callback invoked to release resources held by a block's mandatory data during destruction.
Definition wtap_opttypes.h:255
struct packet_hash_opt_s packet_hash_opt_t
Packet hash option value, carrying a typed digest of the packet contents.
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_add_uint64_option(wtap_block_t block, unsigned option_id, uint64_t value)
Add UINT64 option value to a block.
Definition wtap_opttypes.c:843
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_get_ipv6_option_value(wtap_block_t block, unsigned option_id, ws_in6_addr *value) G_GNUC_WARN_UNUSED_RESULT
Get IPv6 option value from a block.
Definition wtap_opttypes.c:1064
packet_verdict_type_e
Discriminator tag identifying the encoding of a packet verdict option.
Definition wtap_opttypes.h:517
@ packet_verdict_hardware
Definition wtap_opttypes.h:518
@ packet_verdict_linux_ebpf_tc
Definition wtap_opttypes.h:519
@ packet_verdict_linux_ebpf_xdp
Definition wtap_opttypes.h:520
struct wtapng_if_stats_mandatory_s wtapng_if_stats_mandatory_t
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_add_string_option_owned(wtap_block_t block, unsigned option_id, char *value) G_GNUC_WARN_UNUSED_RESULT
Add a string option to a block taking ownership of the null-terminated string.
Definition wtap_opttypes.c:1091
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_set_int64_option_value(wtap_block_t block, unsigned option_id, int64_t value)
Set INT64 option value in a block.
Definition wtap_opttypes.c:973
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_add_int8_option(wtap_block_t block, unsigned option_id, int8_t value)
Add INT8 option value to a block.
Definition wtap_opttypes.c:882
WS_DLL_PUBLIC wtap_block_t wtap_block_create(wtap_block_type_t block_type)
Create a block by type.
Definition wtap_opttypes.c:318
struct wtapng_dsb_mandatory_s wtapng_dsb_mandatory_t
struct wtapng_nrb_mandatory_s wtapng_nrb_mandatory_t
struct wtapng_darwin_process_event_mandatory_s wtapng_darwin_process_event_mandatory_t
WS_DLL_PUBLIC wtap_block_t wtap_block_ref(wtap_block_t block)
Increase reference count of a block.
Definition wtap_opttypes.c:399
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_get_uint64_option_value(wtap_block_t block, unsigned option_id, uint64_t *value) G_GNUC_WARN_UNUSED_RESULT
Get UINT64 option value from a block.
Definition wtap_opttypes.c:869
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_add_ipv6_option(wtap_block_t block, unsigned option_id, ws_in6_addr *value)
Add IPv6 address option value to a block.
Definition wtap_opttypes.c:1038
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_set_uint32_option_value(wtap_block_t block, unsigned option_id, uint32_t value)
Set UINT32 option value in a block.
Definition wtap_opttypes.c:817
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_set_ipv6_option_value(wtap_block_t block, unsigned option_id, ws_in6_addr *value)
Set IPv6 option value in a block.
Definition wtap_opttypes.c:1051
WS_DLL_PUBLIC void wtap_opttypes_initialize(void)
Initialize block types.
Definition wtap_opttypes.c:1906
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_set_ipv4_option_value(wtap_block_t block, unsigned option_id, uint32_t value)
Set IPv4 option value in a block.
Definition wtap_opttypes.c:1012
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_add_int32_option(wtap_block_t block, unsigned option_id, int32_t value)
Add INT32 option value to a block.
Definition wtap_opttypes.c:921
struct custom_string_opt_s custom_string_opt_t
Holds the value of a custom string option, combining a Private Enterprise Number with its associated ...
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_get_int32_option_value(wtap_block_t block, unsigned option_id, int32_t *value) G_GNUC_WARN_UNUSED_RESULT
Get INT32 option value from a block.
Definition wtap_opttypes.c:947
if_filter_type_e
Type of capture filter.
Definition wtap_opttypes.h:485
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_get_int8_option_value(wtap_block_t block, unsigned option_id, int8_t *value) G_GNUC_WARN_UNUSED_RESULT
Get INT8 option value from a block.
Definition wtap_opttypes.c:908
struct binary_optdata binary_optdata_t
Holds the raw binary payload of a custom binary option.
struct wtapng_if_descr_mandatory_s wtapng_if_descr_mandatory_t
wtap_opttype_return_val
Return codes for wtap block option access and mutation operations.
Definition wtap_opttypes.h:425
@ WTAP_OPTTYPE_ALREADY_EXISTS
Definition wtap_opttypes.h:431
@ WTAP_OPTTYPE_TYPE_MISMATCH
Definition wtap_opttypes.h:429
@ WTAP_OPTTYPE_NO_SUCH_OPTION
Definition wtap_opttypes.h:427
@ WTAP_OPTTYPE_NUMBER_MISMATCH
Definition wtap_opttypes.h:430
@ WTAP_OPTTYPE_SUCCESS
Definition wtap_opttypes.h:426
@ WTAP_OPTTYPE_BAD_BLOCK
Definition wtap_opttypes.h:432
@ WTAP_OPTTYPE_NOT_FOUND
Definition wtap_opttypes.h:428
@ WTAP_OPTTYPE_PEN_MISMATCH
Definition wtap_opttypes.h:433
WS_DLL_PUBLIC void wtap_block_array_ref(GArray *block_array)
Increment the reference count of an array of blocks.
Definition wtap_opttypes.c:450
struct wtapng_iface_descriptions_s wtapng_iface_descriptions_t
WS_DLL_PUBLIC void wtap_block_unref(wtap_block_t block)
Decrease reference count of a block.
Definition wtap_opttypes.c:412
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_add_ipv4_option(wtap_block_t block, unsigned option_id, uint32_t value)
Add IPv4 address option value to a block.
Definition wtap_opttypes.c:999
WS_DLL_PUBLIC wtap_block_type_t wtap_block_get_type(wtap_block_t block)
Provide type of a block.
Definition wtap_opttypes.c:262
struct packet_verdict_opt_s packet_verdict_opt_t
Packet verdict option value, carrying a type-tagged verdict from the capture source.
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_set_int8_option_value(wtap_block_t block, unsigned option_id, int8_t value)
Set INT8 option value in a block.
Definition wtap_opttypes.c:895
WS_DLL_PUBLIC void * wtap_block_get_mandatory_data(wtap_block_t block)
Provide mandatory data of a block.
Definition wtap_opttypes.c:267
void(* wtap_mand_copy_func)(wtap_block_t dest_block, wtap_block_t src_block)
Callback invoked to deep-copy mandatory data from one block into another.
Definition wtap_opttypes.h:256
struct wtapng_ft_specific_mandatory_s wtapng_ft_specific_mandatory_t
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_add_uint8_option(wtap_block_t block, unsigned option_id, uint8_t value)
Add UINT8 option value to a block.
Definition wtap_opttypes.c:765
struct if_filter_opt_s if_filter_opt_t
Holds the value of an interface filter option, expressed as either a pcap filter string or a compiled...
WS_DLL_PUBLIC void wtap_block_array_free(GArray *block_array)
Free an array of blocks.
Definition wtap_opttypes.c:437
WS_DLL_PUBLIC void wtap_block_array_unref(GArray *block_array)
Decrement the reference count of an array of blocks.
Definition wtap_opttypes.c:463
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_set_uint64_option_value(wtap_block_t block, unsigned option_id, uint64_t value)
Set UINT64 option value in a block.
Definition wtap_opttypes.c:856
void(* wtap_block_create_func)(wtap_block_t block)
Callback invoked to allocate and initialize the mandatory data for a newly created block.
Definition wtap_opttypes.h:254
WS_DLL_PUBLIC unsigned wtap_block_count_option(wtap_block_t block, unsigned option_id)
Count the number of times the given option appears in the block.
Definition wtap_opttypes.c:580
WS_DLL_PUBLIC wtap_opttype_return_val wtap_block_get_ipv4_option_value(wtap_block_t block, unsigned option_id, uint32_t *value) G_GNUC_WARN_UNUSED_RESULT
Get IPv4 option value from a block.
Definition wtap_opttypes.c:1025