crafter 0.3.2

Packet-level network interaction for Rust tools and agents.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
//! Protocol layer implementations.

pub mod bgp;
pub mod dhcp;
pub mod dns;
pub mod eapol;
pub mod icmp;
pub mod igmp;
pub mod ip;
pub mod ipsec;
pub mod link;
pub mod mqtt;
pub mod ospf;
pub mod quic;
pub mod rip;
pub mod rsn;
pub mod snmp;
pub mod transport;

/// Compatibility re-exports for the IPv4 protocol implementation.
///
/// The canonical IPv4 module lives at [`crate::protocols::ip::v4`]. This
/// module keeps the original `crate::protocols::ipv4` public path working for
/// existing callers without carrying a separate shim file.
pub mod ipv4 {
    pub use crate::protocols::ip::v4::*;
}

/// Compatibility re-exports for the IPv6 protocol implementation.
///
/// The IPv6 implementation lives in [`crate::protocols::ip::v6`]. This module
/// preserves the original `crate::protocols::ipv6` import path for downstream
/// callers without carrying a separate shim file.
pub mod ipv6 {
    pub use crate::protocols::ip::v6::*;
}

/// Curated protocol symbols exported by both `crate::protocols` and the crate root.
pub mod exports {
    use super::{
        bgp, dhcp, dns, eapol, icmp, igmp, ip, ipsec, ipv4, ipv6, link, mqtt, ospf, quic, rip, rsn,
        snmp, transport,
    };

    pub use crate::packet::Raw;
    pub use bgp::attribute::{
        AsPathSegment, BgpAttrValue, BgpPathAttribute, BgpPrefix, BGP_AS_SEGMENT_SEQUENCE,
        BGP_AS_SEGMENT_SET, BGP_ORIGIN_EGP, BGP_ORIGIN_IGP, BGP_ORIGIN_INCOMPLETE,
    };
    pub use bgp::{
        Bgp, BgpCapability, BgpKeepalive, BgpNotification, BgpOpen, BgpRouteRefresh, BgpUpdate,
    };
    /// Re-export `Dhcpv6` and the DHCPv6 public surface through crate root, core, and prelude.
    pub use dhcp::v6::*;
    pub use dhcp::Dhcpv4;
    pub use dhcp::{
        decode_dhcpv4_tftp_server_addresses, dhcpv4_option_meta, dhcpv4_option_name,
        dhcpv4_option_status, dhcpv4_typed_option_value, scan_dhcpv4_option_segments,
        ClientNetworkDeviceInterface, ClientSystemArchitecture, Dhcpv4AuthAlgorithm,
        Dhcpv4AuthProtocol, Dhcpv4Authentication, Dhcpv4ClasslessRoute, Dhcpv4ClientIdentifier,
        Dhcpv4ClientUuid, Dhcpv4DataSource, Dhcpv4ForcerenewNonceCapable, Dhcpv4MessageType,
        Dhcpv4Option, Dhcpv4OptionArea, Dhcpv4OptionCode, Dhcpv4OptionFormat, Dhcpv4OptionKind,
        Dhcpv4OptionMeta, Dhcpv4OptionSegment, Dhcpv4OptionStatus, Dhcpv4OptionValue,
        Dhcpv4RelayAgentInfo, Dhcpv4RelaySuboption, Dhcpv4RelayVendorSpecific,
        Dhcpv4ReplayDetectionMethod, Dhcpv4State, Dhcpv4StaticRoute, Dhcpv4StatusCode,
        Dhcpv4StatusCodeOption, Dhcpv4UserClass, Dhcpv4VendorClassData,
        Dhcpv4VendorIdentifyingOption, Dhcpv4VendorSuboption, Dhcpv4VssInfo, OptionOverload,
        SipServers, BOOTP_REPLY, BOOTP_REQUEST, DHCPV4_ACK, DHCPV4_AUTH_ALGORITHM_HMAC_MD5,
        DHCPV4_AUTH_HEADER_LEN, DHCPV4_AUTH_PROTOCOL_CONFIGURATION_TOKEN,
        DHCPV4_AUTH_PROTOCOL_DELAYED, DHCPV4_AUTH_PROTOCOL_RECONFIGURE_KEY,
        DHCPV4_AUTH_RDM_MONOTONIC_COUNTER, DHCPV4_AUTH_REPLAY_DETECTION_LEN, DHCPV4_CLIENT_PORT,
        DHCPV4_DECLINE, DHCPV4_DISCOVER, DHCPV4_FORCERENEW_NONCE_TYPE_HMAC_MD5,
        DHCPV4_FORCERENEW_NONCE_TYPE_NONCE, DHCPV4_HTYPE_ETHERNET, DHCPV4_INFORM,
        DHCPV4_MAGIC_COOKIE, DHCPV4_MAGIC_COOKIE_LEN, DHCPV4_MIN_LEN, DHCPV4_NAK, DHCPV4_OFFER,
        DHCPV4_OPTION_AUTHENTICATION, DHCPV4_OPTION_BOOTFILE_NAME, DHCPV4_OPTION_BROADCAST_ADDRESS,
        DHCPV4_OPTION_CLIENT_IDENTIFIER, DHCPV4_OPTION_CLIENT_MACHINE_IDENTIFIER,
        DHCPV4_OPTION_CLIENT_NDI, DHCPV4_OPTION_CLIENT_SYSTEM_ARCHITECTURE,
        DHCPV4_OPTION_DOMAIN_NAME, DHCPV4_OPTION_DOMAIN_NAME_SERVER, DHCPV4_OPTION_END,
        DHCPV4_OPTION_FORCERENEW_NONCE_CAPABLE, DHCPV4_OPTION_HOST_NAME,
        DHCPV4_OPTION_IP_ADDRESS_LEASE_TIME, DHCPV4_OPTION_MESSAGE_TYPE, DHCPV4_OPTION_OVERLOAD,
        DHCPV4_OPTION_PAD, DHCPV4_OPTION_PARAMETER_REQUEST_LIST, DHCPV4_OPTION_PRIVATE_USE_END,
        DHCPV4_OPTION_PRIVATE_USE_START, DHCPV4_OPTION_PXELINUX_CONFIGFILE,
        DHCPV4_OPTION_PXELINUX_MAGIC, DHCPV4_OPTION_PXELINUX_PATHPREFIX,
        DHCPV4_OPTION_PXELINUX_REBOOTTIME, DHCPV4_OPTION_REBINDING_TIME,
        DHCPV4_OPTION_RELAY_AGENT_INFORMATION, DHCPV4_OPTION_RENEWAL_TIME,
        DHCPV4_OPTION_REQUESTED_IP_ADDRESS, DHCPV4_OPTION_ROUTER, DHCPV4_OPTION_SERVER_IDENTIFIER,
        DHCPV4_OPTION_SUBNET_MASK, DHCPV4_OPTION_TFTP_SERVER_ADDRESS,
        DHCPV4_OPTION_TFTP_SERVER_NAME, DHCPV4_OPTION_USER_CLASS,
        DHCPV4_OPTION_VENDOR_CLASS_IDENTIFIER, DHCPV4_OPTION_VENDOR_SPECIFIC,
        DHCPV4_OPTION_VI_VENDOR_CLASS, DHCPV4_OPTION_VI_VENDOR_SPECIFIC, DHCPV4_OVERLOAD_BOTH,
        DHCPV4_OVERLOAD_FILE, DHCPV4_OVERLOAD_SNAME, DHCPV4_RELAY_FLAG_UNICAST,
        DHCPV4_RELAY_SUBOPTION_ACCESS_NETWORK_NAME, DHCPV4_RELAY_SUBOPTION_ACCESS_POINT_BSSID,
        DHCPV4_RELAY_SUBOPTION_ACCESS_POINT_NAME, DHCPV4_RELAY_SUBOPTION_ACCESS_TECHNOLOGY_TYPE,
        DHCPV4_RELAY_SUBOPTION_AUTHENTICATION, DHCPV4_RELAY_SUBOPTION_CIRCUIT_ID,
        DHCPV4_RELAY_SUBOPTION_DOCSIS_DEVICE_CLASS, DHCPV4_RELAY_SUBOPTION_LINK_SELECTION,
        DHCPV4_RELAY_SUBOPTION_OPERATOR_IDENTIFIER, DHCPV4_RELAY_SUBOPTION_OPERATOR_REALM,
        DHCPV4_RELAY_SUBOPTION_RADIUS_ATTRIBUTES, DHCPV4_RELAY_SUBOPTION_RELAY_AGENT_ID,
        DHCPV4_RELAY_SUBOPTION_RELAY_FLAGS, DHCPV4_RELAY_SUBOPTION_RELAY_SOURCE_PORT,
        DHCPV4_RELAY_SUBOPTION_REMOTE_ID, DHCPV4_RELAY_SUBOPTION_SERVER_ID_OVERRIDE,
        DHCPV4_RELAY_SUBOPTION_SUBSCRIBER_ID, DHCPV4_RELAY_SUBOPTION_VENDOR_SPECIFIC,
        DHCPV4_RELAY_SUBOPTION_VSS, DHCPV4_RELAY_SUBOPTION_VSS_CONTROL, DHCPV4_RELEASE,
        DHCPV4_REQUEST, DHCPV4_SERVER_PORT, DHCPV4_VSS_TYPE_GLOBAL_DEFAULT,
        DHCPV4_VSS_TYPE_NVT_ASCII, DHCPV4_VSS_TYPE_VPN_ID,
    };
    pub use dns::{
        decode_dns_name, decode_dns_name_typed, dns_type_name, edns_option_code_name,
        svcb_param_key_name, Dns, DnsName, DnsQuestion, DnsRecord, DnsRecordData, DnsTypeBitmaps,
        EdnsOption, SvcParam, SvcParams, DNS_CLASS_ANY, DNS_CLASS_CH, DNS_CLASS_HS, DNS_CLASS_IN,
        DNS_CLASS_NONE, DNS_EDNS_DEFAULT_UDP_PAYLOAD_SIZE, DNS_EDNS_FLAG_DO,
        DNS_EDNS_OPTION_CLIENT_SUBNET, DNS_EDNS_OPTION_COOKIE, DNS_EDNS_OPTION_DAU,
        DNS_EDNS_OPTION_DHU, DNS_EDNS_OPTION_EXPIRE, DNS_EDNS_OPTION_EXTENDED_ERROR,
        DNS_EDNS_OPTION_N3U, DNS_EDNS_OPTION_NSID, DNS_EDNS_OPTION_PADDING,
        DNS_EDNS_OPTION_TCP_KEEPALIVE, DNS_FLAG_AUTHENTIC_DATA, DNS_FLAG_AUTHORITATIVE,
        DNS_FLAG_CHECKING_DISABLED, DNS_FLAG_QR_RESPONSE, DNS_FLAG_RECURSION_AVAILABLE,
        DNS_FLAG_RECURSION_DESIRED, DNS_FLAG_TRUNCATED, DNS_HEADER_LEN, DNS_OPCODE_DSO,
        DNS_OPCODE_IQUERY, DNS_OPCODE_NOTIFY, DNS_OPCODE_QUERY, DNS_OPCODE_STATUS,
        DNS_OPCODE_UPDATE, DNS_PORT, DNS_RCODE_DSOTYPENI, DNS_RCODE_FORMERR, DNS_RCODE_NOERROR,
        DNS_RCODE_NOTAUTH, DNS_RCODE_NOTIMP, DNS_RCODE_NOTZONE, DNS_RCODE_NXDOMAIN,
        DNS_RCODE_NXRRSET, DNS_RCODE_REFUSED, DNS_RCODE_SERVFAIL, DNS_RCODE_YXDOMAIN,
        DNS_RCODE_YXRRSET, DNS_SVCB_KEY_ALPN, DNS_SVCB_KEY_DOHPATH, DNS_SVCB_KEY_ECH,
        DNS_SVCB_KEY_IPV4HINT, DNS_SVCB_KEY_IPV6HINT, DNS_SVCB_KEY_MANDATORY,
        DNS_SVCB_KEY_NO_DEFAULT_ALPN, DNS_SVCB_KEY_PORT, DNS_TYPE_A, DNS_TYPE_AAAA, DNS_TYPE_CNAME,
        DNS_TYPE_DNSKEY, DNS_TYPE_DS, DNS_TYPE_HTTPS, DNS_TYPE_MX, DNS_TYPE_NS, DNS_TYPE_NSEC,
        DNS_TYPE_NSEC3, DNS_TYPE_NSEC3PARAM, DNS_TYPE_OPT, DNS_TYPE_PTR, DNS_TYPE_RRSIG,
        DNS_TYPE_SOA, DNS_TYPE_SRV, DNS_TYPE_SVCB, DNS_TYPE_TLSA, DNS_TYPE_TXT,
    };
    pub use eapol::{
        eapol_descriptor_type_label, eapol_type_label, Eapol, EapolDescriptorType, EapolKey,
        EapolKeyInformation, EapolType, RsnEapolKeyHandshakeMessage, RsnEapolKeyHandshakeMetadata,
        EAPOL_HEADER_LEN, EAPOL_KEY_DESCRIPTOR_MIN_LEN, EAPOL_KEY_DESCRIPTOR_RSN,
        EAPOL_TYPE_ASF_ALERT, EAPOL_TYPE_EAP_PACKET, EAPOL_TYPE_KEY, EAPOL_TYPE_LOGOFF,
        EAPOL_TYPE_START, EAPOL_VERSION_1, EAPOL_VERSION_2, EAPOL_VERSION_3,
    };
    pub use mqtt::{Mqtt, MqttControlPacketType, MQTT_PORT, MQTT_TLS_PORT};
    // Re-export the deprecated `Icmp*` aliases separately so the
    // `#[allow(deprecated)]` scope stays narrow: only these aliases are exempt from
    // the deprecation warning, while the rest of the icmp surface keeps full lint
    // coverage.
    pub use icmp::{
        ndp_option_type_is_known, ndp_option_type_name, ndp_rdnss_length_units, IcmpExtension,
        IcmpExtensionInterfaceId, IcmpExtensionInterfaceInfo, IcmpExtensionMpls,
        IcmpExtensionObject, IcmpInterfaceIpAddress, IcmpKind, IcmpLayer, Icmpv4,
        Icmpv4AddressMask, Icmpv4QuotedIp, Icmpv4RouterAdvertisementEntry, Icmpv4Timestamp, Icmpv6,
        Icmpv6Body, Icmpv6ErrorBody, Mldv2Query, Mldv2Report, MulticastAddressRecord,
        MulticastListenerMessage, MulticastRecordType, NdpOption, NdpOptions,
        NeighborAdvertisement, NeighborSolicitation, NodeInformation, Pref64Plc, Prf, Redirect,
        RouterAdvertisement, RouterSolicitation, ICMPV6_CODE_EXTENDED_ECHO_REPLY_MALFORMED_QUERY,
        ICMPV6_CODE_EXTENDED_ECHO_REPLY_MULTIPLE_INTERFACES,
        ICMPV6_CODE_EXTENDED_ECHO_REPLY_NO_ERROR,
        ICMPV6_CODE_EXTENDED_ECHO_REPLY_NO_SUCH_INTERFACE,
        ICMPV6_CODE_EXTENDED_ECHO_REPLY_NO_SUCH_TABLE_ENTRY, ICMPV6_DESTINATION_UNREACHABLE,
        ICMPV6_ECHO_REPLY, ICMPV6_ECHO_REQUEST, ICMPV6_EXTENDED_ECHO_REPLY,
        ICMPV6_EXTENDED_ECHO_REPLY_ACTIVE, ICMPV6_EXTENDED_ECHO_REPLY_IPV4,
        ICMPV6_EXTENDED_ECHO_REPLY_IPV6, ICMPV6_EXTENDED_ECHO_REPLY_STATE_DELAY,
        ICMPV6_EXTENDED_ECHO_REPLY_STATE_FAILED, ICMPV6_EXTENDED_ECHO_REPLY_STATE_INCOMPLETE,
        ICMPV6_EXTENDED_ECHO_REPLY_STATE_PROBE, ICMPV6_EXTENDED_ECHO_REPLY_STATE_REACHABLE,
        ICMPV6_EXTENDED_ECHO_REPLY_STATE_RESERVED, ICMPV6_EXTENDED_ECHO_REPLY_STATE_STALE,
        ICMPV6_EXTENDED_ECHO_REQUEST, ICMPV6_EXTENDED_ECHO_REQUEST_L_BIT,
        ICMPV6_INVERSE_ND_ADVERTISEMENT, ICMPV6_INVERSE_ND_SOLICITATION, ICMPV6_MLDV2_REPORT,
        ICMPV6_MULTICAST_LISTENER_DONE, ICMPV6_MULTICAST_LISTENER_QUERY,
        ICMPV6_MULTICAST_LISTENER_REPORT, ICMPV6_NA_FLAGS_RESERVED, ICMPV6_NA_FLAG_OVERRIDE,
        ICMPV6_NA_FLAG_ROUTER, ICMPV6_NA_FLAG_SOLICITED, ICMPV6_NEIGHBOR_ADVERTISEMENT,
        ICMPV6_NEIGHBOR_SOLICITATION, ICMPV6_NODE_INFORMATION_QUERY,
        ICMPV6_NODE_INFORMATION_RESPONSE, ICMPV6_PACKET_TOO_BIG, ICMPV6_PARAMETER_PROBLEM,
        ICMPV6_RA_DEFAULT_CUR_HOP_LIMIT, ICMPV6_RA_DEFAULT_ROUTER_LIFETIME,
        ICMPV6_RA_FLAGS_RESERVED, ICMPV6_RA_FLAG_MANAGED, ICMPV6_RA_FLAG_OTHER, ICMPV6_REDIRECT,
        ICMPV6_ROUTER_ADVERTISEMENT, ICMPV6_ROUTER_RENUMBERING, ICMPV6_ROUTER_SOLICITATION,
        ICMPV6_TIME_EXCEEDED, ICMP_ADDRESS_MASK_REPLY, ICMP_ADDRESS_MASK_REQUEST,
        ICMP_ALTERNATE_HOST_ADDRESS, ICMP_CODE_DU_COMM_ADMIN_PROHIBITED,
        ICMP_CODE_DU_DEST_HOST_UNKNOWN, ICMP_CODE_DU_DEST_NETWORK_UNKNOWN,
        ICMP_CODE_DU_FRAGMENTATION_NEEDED, ICMP_CODE_DU_HOST_ADMIN_PROHIBITED,
        ICMP_CODE_DU_HOST_PRECEDENCE_VIOLATION, ICMP_CODE_DU_HOST_UNREACHABLE,
        ICMP_CODE_DU_HOST_UNREACHABLE_TOS, ICMP_CODE_DU_NETWORK_ADMIN_PROHIBITED,
        ICMP_CODE_DU_NETWORK_UNREACHABLE_TOS, ICMP_CODE_DU_NET_UNREACHABLE,
        ICMP_CODE_DU_PORT_UNREACHABLE, ICMP_CODE_DU_PRECEDENCE_CUTOFF,
        ICMP_CODE_DU_PROTOCOL_UNREACHABLE, ICMP_CODE_DU_SOURCE_HOST_ISOLATED,
        ICMP_CODE_DU_SOURCE_ROUTE_FAILED, ICMP_CODE_EXTENDED_ECHO_REPLY_MALFORMED_QUERY,
        ICMP_CODE_EXTENDED_ECHO_REPLY_MULTIPLE_INTERFACES, ICMP_CODE_EXTENDED_ECHO_REPLY_NO_ERROR,
        ICMP_CODE_EXTENDED_ECHO_REPLY_NO_SUCH_INTERFACE,
        ICMP_CODE_EXTENDED_ECHO_REPLY_NO_SUCH_TABLE_ENTRY, ICMP_CODE_PARAMETER_PROBLEM_BAD_LENGTH,
        ICMP_CODE_PARAMETER_PROBLEM_MISSING_OPTION, ICMP_CODE_PARAMETER_PROBLEM_POINTER,
        ICMP_CODE_PHOTURIS_AUTHENTICATION_FAILED, ICMP_CODE_PHOTURIS_BAD_SPI,
        ICMP_CODE_PHOTURIS_DECOMPRESSION_FAILED, ICMP_CODE_PHOTURIS_DECRYPTION_FAILED,
        ICMP_CODE_PHOTURIS_NEED_AUTHENTICATION, ICMP_CODE_PHOTURIS_NEED_AUTHORIZATION,
        ICMP_CODE_REDIRECT_HOST, ICMP_CODE_REDIRECT_NETWORK, ICMP_CODE_REDIRECT_TOS_HOST,
        ICMP_CODE_REDIRECT_TOS_NETWORK, ICMP_CODE_ROUTER_ADVERTISEMENT_NORMAL,
        ICMP_CODE_ROUTER_ADVERTISEMENT_NO_COMMON_TRAFFIC,
        ICMP_CODE_TIME_EXCEEDED_FRAGMENT_REASSEMBLY, ICMP_CODE_TIME_EXCEEDED_TTL,
        ICMP_DATAGRAM_CONVERSION_ERROR, ICMP_DESTINATION_UNREACHABLE, ICMP_DOMAIN_NAME_REPLY,
        ICMP_DOMAIN_NAME_REQUEST, ICMP_ECHO_REPLY, ICMP_ECHO_REQUEST, ICMP_EXPERIMENTAL_253,
        ICMP_EXPERIMENTAL_254, ICMP_EXTENDED_ECHO_REPLY, ICMP_EXTENDED_ECHO_REPLY_ACTIVE,
        ICMP_EXTENDED_ECHO_REPLY_IPV4, ICMP_EXTENDED_ECHO_REPLY_IPV6,
        ICMP_EXTENDED_ECHO_REPLY_STATE_DELAY, ICMP_EXTENDED_ECHO_REPLY_STATE_FAILED,
        ICMP_EXTENDED_ECHO_REPLY_STATE_INCOMPLETE, ICMP_EXTENDED_ECHO_REPLY_STATE_PROBE,
        ICMP_EXTENDED_ECHO_REPLY_STATE_REACHABLE, ICMP_EXTENDED_ECHO_REPLY_STATE_RESERVED,
        ICMP_EXTENDED_ECHO_REPLY_STATE_STALE, ICMP_EXTENDED_ECHO_REQUEST,
        ICMP_EXTENDED_ECHO_REQUEST_L_BIT, ICMP_EXTENSION_CLASS_INTERFACE_ID,
        ICMP_EXTENSION_CLASS_INTERFACE_INFO, ICMP_EXTENSION_CLASS_MPLS,
        ICMP_EXTENSION_CTYPE_MPLS_INCOMING, ICMP_INFORMATION_REPLY, ICMP_INFORMATION_REQUEST,
        ICMP_INTERFACE_AFI_IPV4, ICMP_INTERFACE_AFI_IPV6, ICMP_INTERFACE_CTYPE_IFINDEX,
        ICMP_INTERFACE_CTYPE_IP_ADDRESS, ICMP_INTERFACE_CTYPE_MTU, ICMP_INTERFACE_CTYPE_NAME,
        ICMP_INTERFACE_ID_CTYPE_ADDRESS, ICMP_INTERFACE_ID_CTYPE_INDEX,
        ICMP_INTERFACE_ID_CTYPE_NAME, ICMP_INTERFACE_ROLE_INCOMING, ICMP_INTERFACE_ROLE_NEXT_HOP,
        ICMP_INTERFACE_ROLE_OUTGOING, ICMP_INTERFACE_ROLE_SUB_IP_INCOMING, ICMP_IPV6_I_AM_HERE,
        ICMP_IPV6_WHERE_ARE_YOU, ICMP_MOBILE_HOST_REDIRECT, ICMP_MOBILE_REGISTRATION_REPLY,
        ICMP_MOBILE_REGISTRATION_REQUEST, ICMP_PARAMETER_PROBLEM, ICMP_PHOTURIS, ICMP_REDIRECT,
        ICMP_RESERVED_255, ICMP_RESERVED_ROBUSTNESS_EXPERIMENT_FIRST,
        ICMP_RESERVED_ROBUSTNESS_EXPERIMENT_LAST, ICMP_RESERVED_SECURITY,
        ICMP_ROUTER_ADVERTISEMENT, ICMP_ROUTER_ADVERTISEMENT_ENTRY_WORDS, ICMP_ROUTER_SOLICITATION,
        ICMP_SEAMOBY_EXPERIMENTAL, ICMP_SKIP, ICMP_SOURCE_QUENCH, ICMP_TIMESTAMP,
        ICMP_TIMESTAMP_REPLY, ICMP_TIME_EXCEEDED, ICMP_TRACEROUTE, MLDV2_QUERY_MIN_BODY_LEN,
        MLDV2_QUERY_QRV_MASK, MLDV2_QUERY_RESV_MASK, MLDV2_QUERY_S_FLAG, NDP_DNS_LIFETIME_INFINITY,
        NDP_DNS_RESERVED_LEN, NDP_LINK_LAYER_ADDR_ETHERNET_LEN, NDP_MTU_OPTION_LEN,
        NDP_MTU_OPTION_UNITS, NDP_NONCE_MIN_LEN, NDP_OPTION_HEADER_LEN, NDP_OPTION_LENGTH_UNIT,
        NDP_OPT_CAPTIVE_PORTAL, NDP_OPT_DNSSL, NDP_OPT_MTU, NDP_OPT_NONCE, NDP_OPT_PREF64,
        NDP_OPT_PREFIX_INFORMATION, NDP_OPT_RA_FLAGS_EXTENSION, NDP_OPT_RDNSS,
        NDP_OPT_REDIRECTED_HEADER, NDP_OPT_ROUTE_INFORMATION, NDP_OPT_SOURCE_LINK_LAYER_ADDR,
        NDP_OPT_TARGET_LINK_LAYER_ADDR, NDP_PREF64_LEN, NDP_PREF64_PLC_MASK, NDP_PREF64_PREFIX_LEN,
        NDP_PREF64_SCALED_LIFETIME_MAX, NDP_PREF64_SCALED_LIFETIME_SHIFT, NDP_PREF64_UNITS,
        NDP_PREFIX_FLAGS_RESERVED, NDP_PREFIX_FLAG_AUTONOMOUS, NDP_PREFIX_FLAG_ON_LINK,
        NDP_PREFIX_INFORMATION_LEN, NDP_PREFIX_INFORMATION_UNITS, NDP_PREFIX_LIFETIME_INFINITY,
        NDP_PRF_MASK, NDP_PRF_SHIFT, NDP_RA_FLAGS_EXTENSION_BITS_LEN, NDP_RA_FLAGS_EXTENSION_LEN,
        NDP_RA_FLAGS_EXTENSION_UNITS, NDP_RDNSS_ADDRESS_LEN, NDP_REDIRECTED_HEADER_RESERVED_LEN,
        NDP_ROUTE_INFORMATION_LEN_FULL_PREFIX, NDP_ROUTE_INFORMATION_LEN_HALF_PREFIX,
        NDP_ROUTE_INFORMATION_LEN_NO_PREFIX, NDP_ROUTE_LIFETIME_INFINITY, NI_NONCE_LEN,
        NI_QTYPE_IPV4_ADDRESSES, NI_QTYPE_NODE_ADDRESSES, NI_QTYPE_NODE_NAME, NI_QTYPE_NOOP,
        NI_QUERY_CODE_SUBJECT_IPV4, NI_QUERY_CODE_SUBJECT_IPV6, NI_QUERY_CODE_SUBJECT_NAME,
        NI_RESPONSE_CODE_REFUSED, NI_RESPONSE_CODE_SUCCESS, NI_RESPONSE_CODE_UNKNOWN_QTYPE,
    };
    #[allow(deprecated)]
    pub use icmp::{
        Icmp, IcmpAddressMask, IcmpQuotedIpv4, IcmpRouterAdvertisementEntry, IcmpTimestamp,
    };
    pub use igmp::{
        igmp_code_meta, igmp_code_name, igmp_code_status, igmp_extension_type,
        igmp_extension_type_meta, igmp_extension_type_name, igmp_extension_type_status,
        igmp_query_flag, igmp_query_flag_meta, igmp_query_flag_name, igmp_query_flag_status,
        igmp_record_type, igmp_record_type_meta, igmp_record_type_name, igmp_record_type_status,
        igmp_record_type_summary, igmp_report_flag, igmp_report_flag_meta, igmp_report_flag_name,
        igmp_report_flag_status, igmp_type, igmp_type_meta, igmp_type_name, igmp_type_status, Igmp,
        IgmpCodeMeta, IgmpExtensionType, IgmpExtensionTypeMeta, IgmpExtensionTypeStatus,
        IgmpFlagStatus, IgmpGroupRecord, IgmpQuery, IgmpQueryFlag, IgmpQueryFlagMeta,
        IgmpRecordType, IgmpRecordTypeMeta, IgmpRecordTypeStatus, IgmpReport, IgmpReportFlag,
        IgmpReportFlagMeta, IgmpType, IgmpTypeMeta, IgmpTypeStatus, IGMP_DEFAULT_AUX_DATA_LEN,
        IGMP_DEFAULT_CHECKSUM, IGMP_DEFAULT_CODE, IGMP_DEFAULT_EXTENSION_LENGTH,
        IGMP_DEFAULT_GROUP_RECORD_COUNT, IGMP_DEFAULT_QUERY_FLAGS, IGMP_DEFAULT_REPORT_FLAGS,
        IGMP_DEFAULT_RESERVED_U16, IGMP_DEFAULT_RESERVED_U8, IGMP_DEFAULT_SOURCE_COUNT,
        IGMP_EXTENSION_HEADER_LEN, IGMP_EXTENSION_TYPE_EXPERIMENTAL_FIRST,
        IGMP_EXTENSION_TYPE_EXPERIMENTAL_LAST, IGMP_EXTENSION_TYPE_NOOP,
        IGMP_EXTENSION_TYPE_UNASSIGNED_FIRST, IGMP_EXTENSION_TYPE_UNASSIGNED_LAST,
        IGMP_FIXED_HEADER_LEN, IGMP_HEADER_LEN, IGMP_QUERY_CODE_MAX_RESPONSE_FIRST,
        IGMP_QUERY_CODE_MAX_RESPONSE_LAST, IGMP_QUERY_CODE_V1, IGMP_RECORD_TYPE_ALLOW_NEW_SOURCES,
        IGMP_RECORD_TYPE_BLOCK_OLD_SOURCES, IGMP_RECORD_TYPE_CHANGE_TO_EXCLUDE_MODE,
        IGMP_RECORD_TYPE_CHANGE_TO_INCLUDE_MODE, IGMP_RECORD_TYPE_MODE_IS_EXCLUDE,
        IGMP_RECORD_TYPE_MODE_IS_INCLUDE, IGMP_TYPE_CISCO_TRACE_MESSAGES, IGMP_TYPE_DVMRP,
        IGMP_TYPE_EXPERIMENTAL_FIRST, IGMP_TYPE_EXPERIMENTAL_LAST, IGMP_TYPE_MEMBERSHIP_QUERY,
        IGMP_TYPE_MULTICAST_ROUTER_ADVERTISEMENT, IGMP_TYPE_MULTICAST_ROUTER_SOLICITATION,
        IGMP_TYPE_MULTICAST_ROUTER_TERMINATION, IGMP_TYPE_MULTICAST_TRACEROUTE,
        IGMP_TYPE_MULTICAST_TRACEROUTE_RESPONSE, IGMP_TYPE_OBSOLETE_RESERVED_FIRST,
        IGMP_TYPE_OBSOLETE_RESERVED_LAST, IGMP_TYPE_PIM_V1, IGMP_TYPE_RESERVED,
        IGMP_TYPE_UNASSIGNED_FIRST, IGMP_TYPE_UNASSIGNED_LAST, IGMP_TYPE_V1_MEMBERSHIP_REPORT,
        IGMP_TYPE_V2_LEAVE_GROUP, IGMP_TYPE_V2_MEMBERSHIP_REPORT, IGMP_TYPE_V3_MEMBERSHIP_REPORT,
        IGMP_V3_GROUP_RECORD_HEADER_LEN, IGMP_V3_QUERY_FLAGS_MASK,
        IGMP_V3_QUERY_FLAGS_UNASSIGNED_MASK, IGMP_V3_QUERY_FLAG_EXTENSION, IGMP_V3_QUERY_MIN_LEN,
        IGMP_V3_REPORT_FLAGS_MASK, IGMP_V3_REPORT_FLAGS_UNASSIGNED_MASK,
        IGMP_V3_REPORT_FLAG_EXTENSION, IGMP_V3_REPORT_HEADER_LEN, IPPROTO_IGMP,
    };
    pub use ip::shared::{Dscp, Ecn};
    pub use ipsec::{
        following_ike_payload_type, following_next_payload, payload_type_for_layer_name,
        write_generic_payload_header, AuthMethod, CertEncoding, CfgType, ConfigAttribute,
        DecodedSk, IdRole, IdType, IkeAuthPayload, IkeCertPayload, IkeCertReqPayload,
        IkeConfigPayload, IkeDeletePayload, IkeEapPayload, IkeEncryptedPayload, IkeHeader,
        IkeIdPayload, IkeKePayload, IkeNoncePayload, IkeNotifyPayload, IkePayload, IkeSaPayload,
        IkeTsPayload, IkeVendorIdPayload, NotifyType, PayloadHeaderFields, PayloadType, Proposal,
        TrafficSelector, Transform, TransformAttribute, TsRole, AUTH_DIGITAL_SIGNATURE,
        AUTH_DSS_DIGITAL_SIGNATURE, AUTH_RSA_DIGITAL_SIGNATURE, AUTH_SHARED_KEY_MIC,
        CERT_ENCODING_DNS_SIGNED_KEY, CERT_ENCODING_HASH_URL_X509,
        CERT_ENCODING_HASH_URL_X509_BUNDLE, CERT_ENCODING_PKCS7_X509, CERT_ENCODING_X509_SIGNATURE,
        CFG_ACK, CFG_REPLY, CFG_REQUEST, CFG_SET, CREATE_CHILD_SA, DELETE_PROTOCOL_AH,
        DELETE_PROTOCOL_ESP, DELETE_PROTOCOL_IKE, DH_GROUP_CURVE25519, DH_GROUP_ECP_256,
        DH_GROUP_MODP_1024, DH_GROUP_MODP_2048, GENERIC_PAYLOAD_HEADER_LEN, ID_FQDN, ID_IPV4_ADDR,
        ID_IPV6_ADDR, ID_KEY_ID, ID_RFC822_ADDR, IKE_AUTH, IKE_FLAG_INITIATOR, IKE_FLAG_RESPONSE,
        IKE_FLAG_VERSION, IKE_HEADER_LEN, IKE_SA_INIT, IKE_VERSION_2, INFORMATIONAL,
        NOTIFY_ADDITIONAL_TS_POSSIBLE, NOTIFY_AUTHENTICATION_FAILED, NOTIFY_COOKIE,
        NOTIFY_INITIAL_CONTACT, NOTIFY_INVALID_KE_PAYLOAD, NOTIFY_INVALID_SYNTAX,
        NOTIFY_IPCOMP_SUPPORTED, NOTIFY_NAT_DETECTION_DESTINATION_IP,
        NOTIFY_NAT_DETECTION_SOURCE_IP, NOTIFY_NO_PROPOSAL_CHOSEN, NOTIFY_PROTOCOL_AH,
        NOTIFY_PROTOCOL_ESP, NOTIFY_PROTOCOL_IKE, NOTIFY_PROTOCOL_NONE, NOTIFY_REKEY_SA,
        NOTIFY_SET_WINDOW_SIZE, NOTIFY_UNSUPPORTED_CRITICAL_PAYLOAD, NOTIFY_USE_TRANSPORT_MODE,
        NO_NEXT_PAYLOAD, PAYLOAD_AUTH, PAYLOAD_CERT, PAYLOAD_CERTREQ, PAYLOAD_CP,
        PAYLOAD_CRITICAL_BIT, PAYLOAD_DELETE, PAYLOAD_EAP, PAYLOAD_IDI, PAYLOAD_IDR, PAYLOAD_KE,
        PAYLOAD_NONCE, PAYLOAD_NONE, PAYLOAD_NOTIFY, PAYLOAD_SA, PAYLOAD_SK, PAYLOAD_TSI,
        PAYLOAD_TSR, PAYLOAD_TYPE_NONE, PAYLOAD_VENDOR_ID, PROTOCOL_ID_AH, PROTOCOL_ID_ESP,
        PROTOCOL_ID_IKE, TRANSFORM_TYPE_DH, TRANSFORM_TYPE_ENCR, TRANSFORM_TYPE_ESN,
        TRANSFORM_TYPE_INTEG, TRANSFORM_TYPE_PRF, TS_IPV4_ADDR_RANGE, TS_IPV6_ADDR_RANGE,
    };
    pub use ipsec::{
        is_non_esp_marker, non_esp_marker, Ah, EncryptionAlgorithm, Esp, IntegrityAlgorithm,
        IpsecMode, NatTraversal, SecurityAssociation, AH_FIXED_LEN, AH_HIGH_SEQUENCE_LEN,
        AH_LENGTH_UNIT, AH_NEXT_HEADER_LEN, AH_PAYLOAD_LEN_FIELD_LEN, AH_PAYLOAD_LEN_OFFSET,
        AH_RESERVED_LEN, AH_SEQUENCE_LEN, AH_SPI_LEN, ESP_HEADER_LEN, ESP_HIGH_SEQUENCE_LEN,
        ESP_MAX_PAD_LEN, ESP_NEXT_HEADER_FIELD_LEN, ESP_PAD_LENGTH_FIELD_LEN, NON_ESP_MARKER,
        NON_ESP_MARKER_LEN,
    };
    pub use ipv4::{
        Ipv4, Ipv4ChecksumStatus, Ipv4FragmentInfo, Ipv4Option, Ipv4OptionIter, Ipv4OptionKind,
        Ipv4Protocol, Ipv4RouteOptionKind, IPPROTO_AH, IPPROTO_ESP, IPPROTO_EXPERIMENTAL_1,
        IPPROTO_EXPERIMENTAL_2, IPPROTO_GRE, IPPROTO_ICMP, IPPROTO_ICMPV6, IPPROTO_IPV6,
        IPPROTO_OSPF, IPPROTO_SCTP, IPPROTO_TCP, IPPROTO_UDP, IPV4_FLAG_DONT_FRAGMENT,
        IPV4_FLAG_MORE_FRAGMENTS, IPV4_FLAG_RESERVED, IPV4_OPTION_EOL, IPV4_OPTION_EXPERIMENTAL_1,
        IPV4_OPTION_EXPERIMENTAL_2, IPV4_OPTION_EXPERIMENTAL_3, IPV4_OPTION_EXPERIMENTAL_4,
        IPV4_OPTION_LOOSE_SOURCE_ROUTE, IPV4_OPTION_NOP, IPV4_OPTION_RECORD_ROUTE,
        IPV4_OPTION_ROUTER_ALERT, IPV4_OPTION_STRICT_SOURCE_ROUTE, IPV4_OPTION_TIMESTAMP,
        IPV4_OPTION_TRACEROUTE,
    };
    pub use ipv6::{
        ipv6_fragment_header_status_label, ipv6_router_alert_value_label, ipv6_routing_type_label,
        ipv6_routing_type_status, Ipv6, Ipv6DestinationOptionsHeader, Ipv6FragmentHeader,
        Ipv6FragmentHeaderStatus, Ipv6HopByHopOptionsHeader, Ipv6MobileRoutingHeader,
        Ipv6MobileRoutingHeaderStatus, Ipv6Option, Ipv6OptionAction, Ipv6OptionIter,
        Ipv6RoutingHeader, Ipv6RoutingTypeStatus, Ipv6SegmentRoutingHeader, IPPROTO_IPV6_AH,
        IPPROTO_IPV6_DSTOPTS, IPPROTO_IPV6_ESP, IPPROTO_IPV6_EXPERIMENTAL_1,
        IPPROTO_IPV6_EXPERIMENTAL_2, IPPROTO_IPV6_FRAGMENT, IPPROTO_IPV6_HIP, IPPROTO_IPV6_HOPOPTS,
        IPPROTO_IPV6_MOBILITY, IPPROTO_IPV6_NO_NEXT, IPPROTO_IPV6_ROUTE, IPPROTO_IPV6_SHIM6,
        IPV6_MOBILE_ROUTING_HEADER_EXT_LEN, IPV6_MOBILE_ROUTING_RESERVED,
        IPV6_MOBILE_ROUTING_SEGMENTS_LEFT, IPV6_OPTION_HOME_ADDRESS, IPV6_OPTION_JUMBO_PAYLOAD,
        IPV6_OPTION_PAD1, IPV6_OPTION_PADN, IPV6_OPTION_ROUTER_ALERT,
        IPV6_ROUTER_ALERT_ACTIVE_NETWORKS, IPV6_ROUTER_ALERT_MLD, IPV6_ROUTER_ALERT_MPLS_OAM,
        IPV6_ROUTER_ALERT_RESERVED, IPV6_ROUTER_ALERT_RSVP, IPV6_ROUTING_TYPE_CRH16,
        IPV6_ROUTING_TYPE_CRH32, IPV6_ROUTING_TYPE_EXPERIMENTAL_1,
        IPV6_ROUTING_TYPE_EXPERIMENTAL_2, IPV6_ROUTING_TYPE_MOBILE, IPV6_ROUTING_TYPE_NIMROD,
        IPV6_ROUTING_TYPE_RESERVED, IPV6_ROUTING_TYPE_RH0, IPV6_ROUTING_TYPE_RPL,
        IPV6_ROUTING_TYPE_SEGMENT, IPV6_ROUTING_TYPE_SOURCE_ROUTE, IPV6_SEGMENT_POLICY_EGRESS,
        IPV6_SEGMENT_POLICY_INGRESS, IPV6_SEGMENT_POLICY_SOURCE_ADDRESS, IPV6_SEGMENT_POLICY_UNSET,
    };
    pub use link::{
        arp_hardware_type_label, arp_protocol_type_label, AdList, AdStructure, Arp, ArpOperation,
        BleAdvPduType, BleLlAdv, BlePhy, BleRadio, Dot11, Dot11ActionFixedFields,
        Dot11AssociationRequestFixedFields, Dot11AssociationResponseFixedFields,
        Dot11AuthenticationFixedFields, Dot11BeaconFixedFields, Dot11ControlSubtype,
        Dot11DataSubtype, Dot11FrameControl, Dot11FrameType, Dot11ManagementFixedFields,
        Dot11ManagementSubtype, Dot11QosControl, Dot11ReasonCodeFixedFields,
        Dot11ReassociationRequestFixedFields, Dot11SequenceControl, Dot15d4, Dot15d4AddrMode,
        Dot15d4FrameType, Dot15d4Radio, Dot1Q, Ethernet, LinuxSll, LlcSnap, NullByteOrder,
        NullLoopback, Radiotap, RadiotapChannel, RadiotapTxFlags, Vlan, ZigbeeAps, ZigbeeNwk,
        ARP_HRD_ATM, ARP_HRD_ETHERNET, ARP_HRD_FIBRE_CHANNEL, ARP_HRD_IEEE_802, ARP_HRD_INFINIBAND,
        ARP_HRD_MAPOS, ARP_OP_ARP_NAK, ARP_OP_DRARP_ERROR, ARP_OP_DRARP_REPLY,
        ARP_OP_DRARP_REQUEST, ARP_OP_EXP1, ARP_OP_EXP2, ARP_OP_INARP_REPLY, ARP_OP_INARP_REQUEST,
        ARP_OP_MAPOS_UNARP, ARP_OP_RARP_REPLY, ARP_OP_RARP_REQUEST, ARP_OP_REPLY, ARP_OP_REQUEST,
        ARP_OP_RESERVED, ARP_OP_RESERVED_MAX, ARP_PRO_IPV4, ETHERTYPE_ARP, ETHERTYPE_EAPOL,
        ETHERTYPE_IPV4, ETHERTYPE_IPV6, ETHERTYPE_VLAN,
    };
    pub use link::{
        dot11_category_label, dot11_control_subtype_label, dot11_data_subtype_label,
        dot11_frame_type_label, dot11_management_subtype_label, dot11_subtype_label,
        Dot11TaggedParameter, DOT11_ADDRESS_LEN, DOT11_CAPABILITY_APSD,
        DOT11_CAPABILITY_CF_POLLABLE, DOT11_CAPABILITY_CF_POLL_REQUEST,
        DOT11_CAPABILITY_CHANNEL_AGILITY, DOT11_CAPABILITY_DELAYED_BLOCK_ACK,
        DOT11_CAPABILITY_DSSS_OFDM, DOT11_CAPABILITY_ESS, DOT11_CAPABILITY_IBSS,
        DOT11_CAPABILITY_IMMEDIATE_BLOCK_ACK, DOT11_CAPABILITY_PBCC, DOT11_CAPABILITY_PRIVACY,
        DOT11_CAPABILITY_QOS, DOT11_CAPABILITY_RADIO_MEASUREMENT, DOT11_CAPABILITY_SHORT_PREAMBLE,
        DOT11_CAPABILITY_SHORT_SLOT_TIME, DOT11_CAPABILITY_SPECTRUM_MANAGEMENT,
        DOT11_CATEGORY_BLOCK_ACK, DOT11_CATEGORY_DLS, DOT11_CATEGORY_FAST_BSS_TRANSITION,
        DOT11_CATEGORY_HT, DOT11_CATEGORY_MESH, DOT11_CATEGORY_MULTIHOP,
        DOT11_CATEGORY_PROTECTED_DUAL_OF_PUBLIC_ACTION, DOT11_CATEGORY_PUBLIC, DOT11_CATEGORY_QOS,
        DOT11_CATEGORY_RADIO_MEASUREMENT, DOT11_CATEGORY_SA_QUERY, DOT11_CATEGORY_SELF_PROTECTED,
        DOT11_CATEGORY_SPECTRUM_MANAGEMENT, DOT11_CATEGORY_TDLS, DOT11_CATEGORY_UNPROTECTED_WNM,
        DOT11_CATEGORY_WNM, DOT11_CONTROL_ONE_ADDRESS_HEADER_LEN, DOT11_CONTROL_SUBTYPE_ACK,
        DOT11_CONTROL_SUBTYPE_BLOCK_ACK, DOT11_CONTROL_SUBTYPE_BLOCK_ACK_REQUEST,
        DOT11_CONTROL_SUBTYPE_CF_END, DOT11_CONTROL_SUBTYPE_CF_END_CF_ACK,
        DOT11_CONTROL_SUBTYPE_CONTROL_WRAPPER, DOT11_CONTROL_SUBTYPE_CTS,
        DOT11_CONTROL_SUBTYPE_PS_POLL, DOT11_CONTROL_SUBTYPE_RTS, DOT11_CONTROL_SUBTYPE_TRIGGER,
        DOT11_CONTROL_TWO_ADDRESS_HEADER_LEN, DOT11_DATA_ADDR4_HEADER_LEN, DOT11_DATA_HEADER_LEN,
        DOT11_DATA_SUBTYPE_CF_ACK, DOT11_DATA_SUBTYPE_CF_ACK_CF_POLL, DOT11_DATA_SUBTYPE_CF_POLL,
        DOT11_DATA_SUBTYPE_DATA, DOT11_DATA_SUBTYPE_DATA_CF_ACK,
        DOT11_DATA_SUBTYPE_DATA_CF_ACK_CF_POLL, DOT11_DATA_SUBTYPE_DATA_CF_POLL,
        DOT11_DATA_SUBTYPE_NULL, DOT11_DATA_SUBTYPE_QOS_CF_ACK_CF_POLL,
        DOT11_DATA_SUBTYPE_QOS_CF_POLL, DOT11_DATA_SUBTYPE_QOS_DATA,
        DOT11_DATA_SUBTYPE_QOS_DATA_CF_ACK, DOT11_DATA_SUBTYPE_QOS_DATA_CF_ACK_CF_POLL,
        DOT11_DATA_SUBTYPE_QOS_DATA_CF_POLL, DOT11_DATA_SUBTYPE_QOS_NULL, DOT11_DURATION_ID_LEN,
        DOT11_FC_FROM_DS, DOT11_FC_MORE_DATA, DOT11_FC_MORE_FRAGMENTS, DOT11_FC_ORDER,
        DOT11_FC_POWER_MANAGEMENT, DOT11_FC_PROTECTED, DOT11_FC_PROTOCOL_VERSION_MASK,
        DOT11_FC_PROTOCOL_VERSION_SHIFT, DOT11_FC_RETRY, DOT11_FC_SUBTYPE_MASK,
        DOT11_FC_SUBTYPE_SHIFT, DOT11_FC_TO_DS, DOT11_FC_TYPE_MASK, DOT11_FC_TYPE_SHIFT,
        DOT11_FRAME_CONTROL_LEN, DOT11_FRAME_TYPE_CONTROL, DOT11_FRAME_TYPE_DATA,
        DOT11_FRAME_TYPE_EXTENSION, DOT11_FRAME_TYPE_MANAGEMENT, DOT11_HT_CONTROL_LEN,
        DOT11_MGMT_ACTION_FIXED_LEN, DOT11_MGMT_ASSOCIATION_REQUEST_FIXED_LEN,
        DOT11_MGMT_ASSOCIATION_RESPONSE_FIXED_LEN, DOT11_MGMT_AUTHENTICATION_FIXED_LEN,
        DOT11_MGMT_BEACON_FIXED_LEN, DOT11_MGMT_DEAUTHENTICATION_FIXED_LEN,
        DOT11_MGMT_DISASSOCIATION_FIXED_LEN, DOT11_MGMT_PROBE_RESPONSE_FIXED_LEN,
        DOT11_MGMT_REASSOCIATION_REQUEST_FIXED_LEN, DOT11_MGMT_REASSOCIATION_RESPONSE_FIXED_LEN,
        DOT11_MGMT_SUBTYPE_ACTION, DOT11_MGMT_SUBTYPE_ACTION_NO_ACK,
        DOT11_MGMT_SUBTYPE_ASSOCIATION_REQUEST, DOT11_MGMT_SUBTYPE_ASSOCIATION_RESPONSE,
        DOT11_MGMT_SUBTYPE_ATIM, DOT11_MGMT_SUBTYPE_AUTHENTICATION, DOT11_MGMT_SUBTYPE_BEACON,
        DOT11_MGMT_SUBTYPE_DEAUTHENTICATION, DOT11_MGMT_SUBTYPE_DISASSOCIATION,
        DOT11_MGMT_SUBTYPE_PROBE_REQUEST, DOT11_MGMT_SUBTYPE_PROBE_RESPONSE,
        DOT11_MGMT_SUBTYPE_REASSOCIATION_REQUEST, DOT11_MGMT_SUBTYPE_REASSOCIATION_RESPONSE,
        DOT11_MGMT_SUBTYPE_TIMING_ADVERTISEMENT, DOT11_MIN_HEADER_LEN, DOT11_QOS_ACK_POLICY_MASK,
        DOT11_QOS_ACK_POLICY_SHIFT, DOT11_QOS_A_MSDU_PRESENT, DOT11_QOS_CONTROL_LEN,
        DOT11_QOS_EOSP, DOT11_QOS_TID_MASK, DOT11_QOS_TID_SHIFT, DOT11_QOS_TXOP_QUEUE_SIZE_MASK,
        DOT11_QOS_TXOP_QUEUE_SIZE_SHIFT, DOT11_SEQUENCE_CONTROL_LEN,
        DOT11_SEQUENCE_FRAGMENT_NUMBER_MASK, DOT11_SEQUENCE_FRAGMENT_NUMBER_SHIFT,
        DOT11_SEQUENCE_NUMBER_MASK, DOT11_SEQUENCE_NUMBER_SHIFT, DOT11_TAG_DS_PARAMETER_SET,
        DOT11_TAG_RSN, DOT11_TAG_SSID, DOT11_TAG_SUPPORTED_RATES, DOT11_TAG_TIM,
    };
    pub use ospf::lsa::{OSPF_ROUTER_LSA_FLAG_B, OSPF_ROUTER_LSA_FLAG_E, OSPF_ROUTER_LSA_FLAG_V};
    pub use ospf::packet::database_description::{OSPF_DD_FLAG_I, OSPF_DD_FLAG_M, OSPF_DD_FLAG_MS};
    pub use ospf::{
        ospf_autype_name, ospf_options_summary, ospf_type_name, OspfBody, OspfChecksumStatus,
        Ospfv2, Ospfv3, Ospfv3Body, Ospfv3DatabaseDescription, Ospfv3Hello, Ospfv3LinkStateAck,
        Ospfv3LinkStateRequest, Ospfv3LinkStateRequestEntry, Ospfv3LinkStateUpdate, Ospfv3Lsa,
        Ospfv3LsaBody, Ospfv3LsaHeader, Ospfv3NetworkLsa, Ospfv3RouterInterface, Ospfv3RouterLsa,
        OSPFV3_DD_FLAG_I, OSPFV3_DD_FLAG_M, OSPFV3_DD_FLAG_MS, OSPFV3_HEADER_LEN,
        OSPFV3_LSA_HEADER_LEN, OSPFV3_TYPE_DATABASE_DESCRIPTION, OSPFV3_TYPE_HELLO,
        OSPFV3_TYPE_LINK_STATE_ACK, OSPFV3_TYPE_LINK_STATE_REQUEST, OSPFV3_TYPE_LINK_STATE_UPDATE,
        OSPF_AUTH_LEN, OSPF_AUTYPE_CRYPTOGRAPHIC, OSPF_AUTYPE_NULL, OSPF_AUTYPE_SIMPLE,
        OSPF_HEADER_LEN, OSPF_OPTIONS_DC, OSPF_OPTIONS_DN, OSPF_OPTIONS_E, OSPF_OPTIONS_L,
        OSPF_OPTIONS_MC, OSPF_OPTIONS_MT, OSPF_OPTIONS_NP, OSPF_OPTIONS_O,
        OSPF_TYPE_DATABASE_DESCRIPTION, OSPF_TYPE_HELLO, OSPF_TYPE_LINK_STATE_ACK,
        OSPF_TYPE_LINK_STATE_REQUEST, OSPF_TYPE_LINK_STATE_UPDATE, OSPF_VERSION_2, OSPF_VERSION_3,
    };
    // Re-export the deprecated neutral `Ospf` alias separately so the
    // `#[allow(deprecated)]` scope stays narrow: only the alias is exempt from the
    // deprecation warning, while the rest of the ospf surface keeps full lint
    // coverage (mirroring the deprecated `Icmp` alias re-export above).
    #[allow(deprecated)]
    pub use ospf::Ospf;
    pub use quic::constants::{QUIC_VERSION_1, QUIC_VERSION_2, QUIC_VERSION_NEGOTIATION};
    pub use quic::{
        derive_quic_initial_secrets, grease_transport_parameter_id,
        is_grease_transport_parameter_id, quic_aes128_header_protection_mask,
        quic_chacha20_header_protection_mask, quic_clear_fixed_bit,
        quic_decode_initial_protected_payload, quic_decode_initial_protected_payload_with_keys,
        quic_fixed_bit_label, quic_fixed_bit_status, quic_header_protection_mask,
        quic_initial_aes128gcm_protect_payload, quic_initial_aes128gcm_unprotect_payload,
        quic_initial_payload_nonce, quic_initial_salt, quic_retry_integrity_tag,
        quic_retry_pseudo_packet, quic_set_fixed_bit, quic_verify_retry_integrity_tag, Quic,
        QuicAckEcnCounts, QuicAckFrame, QuicAckRange, QuicConnectionCloseFrame,
        QuicConnectionCloseKind, QuicConnectionId, QuicConnectionIdTransportParameter,
        QuicCryptoFrame, QuicDataBlockedFrame, QuicDatagramFrame, QuicFixedBitStatus, QuicFrame,
        QuicFrameKind, QuicHandshakeBuilder, QuicHandshakeDoneFrame, QuicHeader, QuicHeaderForm,
        QuicHeaderProtectionAlgorithm, QuicInitialBuilder, QuicInitialPacketDirection,
        QuicInitialPacketKeys, QuicInitialProtectedPayload, QuicInitialSecrets,
        QuicIntegerTransportParameter, QuicIntegerTransportParameterValidation, QuicKnownFrameType,
        QuicKnownTransportParameter, QuicLongHeaderPacket, QuicMaxDataFrame,
        QuicMaxStreamDataFrame, QuicMaxStreamsFrame, QuicNewConnectionIdFrame, QuicNewTokenFrame,
        QuicPacket, QuicPacketNumber, QuicPathChallengeFrame, QuicPathResponseFrame,
        QuicPreferredAddress, QuicPreferredAddressValidation, QuicResetStreamFrame,
        QuicRetireConnectionIdFrame, QuicRetryBuilder, QuicRetryIntegrityStatus, QuicRetryPacket,
        QuicShortHeaderBuilder, QuicShortHeaderPacket, QuicStatelessResetCandidate,
        QuicStatelessResetToken, QuicStopSendingFrame, QuicStreamDataBlockedFrame,
        QuicStreamDirection, QuicStreamFrame, QuicStreamsBlockedFrame, QuicTransportParameter,
        QuicTransportParameterDuplicate, QuicTransportParameterKind, QuicUnknownFrame, QuicVarInt,
        QuicVersionInformation, QuicVersionInformationValidation, QuicVersionNegotiationBuilder,
        QuicVersionNegotiationPacket, QuicZeroRttBuilder, QUIC_AES128_HEADER_PROTECTION_KEY_LEN,
        QUIC_CHACHA20_HEADER_PROTECTION_KEY_LEN, QUIC_HEADER_PROTECTION_MASK_LEN,
        QUIC_HEADER_PROTECTION_SAMPLE_LEN, QUIC_INITIAL_AEAD_TAG_LEN, QUIC_INITIAL_AES_128_KEY_LEN,
        QUIC_INITIAL_HP_KEY_LEN, QUIC_INITIAL_IV_LEN, QUIC_INITIAL_SECRET_LEN,
        QUIC_RETRY_INTEGRITY_TAG_LEN, QUIC_STATELESS_RESET_MIN_LEN, QUIC_STATELESS_RESET_TOKEN_LEN,
        QUIC_TRANSPORT_ERROR_AEAD_LIMIT_REACHED, QUIC_TRANSPORT_ERROR_APPLICATION_ERROR,
        QUIC_TRANSPORT_ERROR_CONNECTION_ID_LIMIT_ERROR, QUIC_TRANSPORT_ERROR_CONNECTION_REFUSED,
        QUIC_TRANSPORT_ERROR_CRYPTO_BUFFER_EXCEEDED, QUIC_TRANSPORT_ERROR_CRYPTO_ERROR_END,
        QUIC_TRANSPORT_ERROR_CRYPTO_ERROR_START, QUIC_TRANSPORT_ERROR_FINAL_SIZE_ERROR,
        QUIC_TRANSPORT_ERROR_FLOW_CONTROL_ERROR, QUIC_TRANSPORT_ERROR_FRAME_ENCODING_ERROR,
        QUIC_TRANSPORT_ERROR_INTERNAL_ERROR, QUIC_TRANSPORT_ERROR_INVALID_TOKEN,
        QUIC_TRANSPORT_ERROR_KEY_UPDATE_ERROR, QUIC_TRANSPORT_ERROR_NO_ERROR,
        QUIC_TRANSPORT_ERROR_NO_VIABLE_PATH, QUIC_TRANSPORT_ERROR_PROTOCOL_VIOLATION,
        QUIC_TRANSPORT_ERROR_STREAM_LIMIT_ERROR, QUIC_TRANSPORT_ERROR_STREAM_STATE_ERROR,
        QUIC_TRANSPORT_ERROR_TRANSPORT_PARAMETER_ERROR,
        QUIC_TRANSPORT_ERROR_VERSION_NEGOTIATION_ERROR, QUIC_V1_INITIAL_SALT, QUIC_V2_INITIAL_SALT,
    };
    pub use rip::ripng::{
        Ripng, RipngRte, RIPNG_COMMAND_REQUEST, RIPNG_COMMAND_RESPONSE, RIPNG_METRIC_INFINITY,
        RIPNG_MULTICAST, RIPNG_NEXT_HOP_METRIC, RIPNG_UDP_PORT, RIPNG_VERSION_1,
    };
    pub use rip::{
        Rip, RipAddressFamily, RipAuthType, RipCommand, RipCommandMeta, RipCommandStatus, RipEntry,
        RIP_AFI_AUTH, RIP_AFI_IP, RIP_COMMAND_REQUEST, RIP_COMMAND_RESPONSE,
        RIP_COMMAND_UPDATE_ACK, RIP_COMMAND_UPDATE_REQUEST, RIP_COMMAND_UPDATE_RESPONSE,
        RIP_MAX_ENTRIES, RIP_METRIC_INFINITY, RIP_UDP_PORT, RIP_V2_MULTICAST, RIP_VERSION_1,
        RIP_VERSION_2,
    };
    pub use rsn::{
        rsn_akm_suite_label, rsn_cipher_suite_label, RsnAkmSuite, RsnCapabilities, RsnCipherSuite,
        RsnInformation, RsnSuiteSelector, RSN_AKM_SUITE_8021X, RSN_AKM_SUITE_8021X_SHA256,
        RSN_AKM_SUITE_8021X_SUITE_B, RSN_AKM_SUITE_8021X_SUITE_B_192, RSN_AKM_SUITE_AP_PEER_KEY,
        RSN_AKM_SUITE_EDPKE, RSN_AKM_SUITE_FILS_SHA256, RSN_AKM_SUITE_FILS_SHA384,
        RSN_AKM_SUITE_FT_8021X, RSN_AKM_SUITE_FT_8021X_SHA384, RSN_AKM_SUITE_FT_8021X_SHA384_BASIC,
        RSN_AKM_SUITE_FT_8021X_SHA384_CMP_256, RSN_AKM_SUITE_FT_FILS_SHA256,
        RSN_AKM_SUITE_FT_FILS_SHA384, RSN_AKM_SUITE_FT_PSK, RSN_AKM_SUITE_FT_PSK_SHA384,
        RSN_AKM_SUITE_FT_SAE, RSN_AKM_SUITE_FT_SAE_PMK384, RSN_AKM_SUITE_OWE, RSN_AKM_SUITE_PASN,
        RSN_AKM_SUITE_PASN_DEFINED_KEY_WRAP, RSN_AKM_SUITE_PSK, RSN_AKM_SUITE_PSK_SHA256,
        RSN_AKM_SUITE_PSK_SHA384, RSN_AKM_SUITE_SAE, RSN_AKM_SUITE_SAE_PMK384, RSN_AKM_SUITE_TDLS,
        RSN_CAPABILITIES_LEN, RSN_CIPHER_SUITE_AES_128_CMAC, RSN_CIPHER_SUITE_BIP_CMAC_256,
        RSN_CIPHER_SUITE_BIP_GMAC_128, RSN_CIPHER_SUITE_BIP_GMAC_256, RSN_CIPHER_SUITE_CCMP_128,
        RSN_CIPHER_SUITE_CCMP_256, RSN_CIPHER_SUITE_CCM_STAR, RSN_CIPHER_SUITE_GCMP_128,
        RSN_CIPHER_SUITE_GCMP_256, RSN_CIPHER_SUITE_NO_GROUP_ADDRESSED, RSN_CIPHER_SUITE_TKIP,
        RSN_CIPHER_SUITE_USE_GROUP, RSN_SUITE_SELECTOR_LEN, RSN_SUITE_SELECTOR_OUI, RSN_VERSION_1,
    };
    pub use snmp::{
        snmp_error_status_label, snmp_error_status_meta, snmp_error_status_name,
        snmp_error_status_status, snmp_error_status_summary, snmp_pdu_tag_meta, snmp_pdu_tag_name,
        snmp_pdu_tag_status, snmp_security_model_label, snmp_security_model_meta,
        snmp_security_model_name, snmp_security_model_status, snmp_security_model_summary,
        snmp_udp_port_label, snmp_udp_port_meta, snmp_udp_port_name, snmp_udp_port_summary,
        snmp_v3_flags_label, Snmp, SnmpEncryptedScopedData, SnmpErrorStatus,
        SnmpErrorStatusAssignment, SnmpErrorStatusMeta, SnmpGetBulkPdu, SnmpOid, SnmpPdu,
        SnmpPduTagMeta, SnmpPduTagStatus, SnmpRawPdu, SnmpRawPduBody, SnmpRawSecurityParameters,
        SnmpRequestPdu, SnmpScopedPdu, SnmpSecurityModel, SnmpSecurityModelMeta,
        SnmpSecurityModelStatus, SnmpUdpPortMeta, SnmpUsmEngineTime, SnmpUsmSecurityParameters,
        SnmpV1TrapPdu, SnmpV3Flags, SnmpV3GlobalData, SnmpV3Message, SnmpVarBind, SnmpVarBindList,
        SnmpVersion, SNMP_ERROR_STATUS_AUTHORIZATION_ERROR, SNMP_ERROR_STATUS_BAD_VALUE,
        SNMP_ERROR_STATUS_COMMIT_FAILED, SNMP_ERROR_STATUS_GEN_ERR,
        SNMP_ERROR_STATUS_INCONSISTENT_NAME, SNMP_ERROR_STATUS_INCONSISTENT_VALUE,
        SNMP_ERROR_STATUS_NOT_WRITABLE, SNMP_ERROR_STATUS_NO_ACCESS, SNMP_ERROR_STATUS_NO_CREATION,
        SNMP_ERROR_STATUS_NO_ERROR, SNMP_ERROR_STATUS_NO_SUCH_NAME, SNMP_ERROR_STATUS_READ_ONLY,
        SNMP_ERROR_STATUS_RESOURCE_UNAVAILABLE, SNMP_ERROR_STATUS_TOO_BIG,
        SNMP_ERROR_STATUS_UNDO_FAILED, SNMP_ERROR_STATUS_WRONG_ENCODING,
        SNMP_ERROR_STATUS_WRONG_LENGTH, SNMP_ERROR_STATUS_WRONG_TYPE,
        SNMP_ERROR_STATUS_WRONG_VALUE, SNMP_PDU_TAG_GET_BULK_REQUEST,
        SNMP_PDU_TAG_GET_NEXT_REQUEST, SNMP_PDU_TAG_GET_REQUEST, SNMP_PDU_TAG_INFORM_REQUEST,
        SNMP_PDU_TAG_REPORT, SNMP_PDU_TAG_RESPONSE, SNMP_PDU_TAG_SET_REQUEST, SNMP_PDU_TAG_TRAP,
        SNMP_PDU_TAG_TRAP_V2, SNMP_PORT, SNMP_SECURITY_MODEL_ANY, SNMP_SECURITY_MODEL_SNMPV1,
        SNMP_SECURITY_MODEL_SNMPV2C, SNMP_SECURITY_MODEL_TSM, SNMP_SECURITY_MODEL_USM,
        SNMP_TRAP_PORT, SNMP_V3_FLAG_AUTH, SNMP_V3_FLAG_KNOWN_MASK, SNMP_V3_FLAG_PRIVACY,
        SNMP_V3_FLAG_REPORTABLE, SNMP_V3_FLAG_RESERVED_MASK,
    };
    pub use transport::{
        tcp_option_kind_class, tcp_option_kind_is_assigned, tcp_option_kind_is_experimental,
        udp_option_kind_class, udp_option_kind_is_unsafe, udp_option_kind_is_unsupported, Tcp,
        TcpExtendedDataOffset, TcpOption, TcpOptionIter, TcpOptionKindClass, TcpSackBlock, Udp,
        UdpChecksumStatus, UdpOption, UdpOptionIter, UdpOptionKindClass, UdpOptionStatus,
        UdpOptions, TCP_EDO_HEADER_AND_SEGMENT_LEN, TCP_EDO_HEADER_LEN, TCP_EDO_REQUEST_LEN,
        TCP_FLAG_ACK, TCP_FLAG_AE, TCP_FLAG_CWR, TCP_FLAG_ECE, TCP_FLAG_FIN, TCP_FLAG_NS,
        TCP_FLAG_PSH, TCP_FLAG_RST, TCP_FLAG_SYN, TCP_FLAG_URG, TCP_OPTION_EDO, TCP_OPTION_EOL,
        TCP_OPTION_FAST_OPEN, TCP_OPTION_MPTCP, TCP_OPTION_MSS, TCP_OPTION_NOP, TCP_OPTION_SACK,
        TCP_OPTION_SACK_PERMITTED, TCP_OPTION_TIMESTAMP, TCP_OPTION_WINDOW_SCALE, UDP_HEADER_LEN,
        UDP_OPTION_APC, UDP_OPTION_AUTH, UDP_OPTION_EOL, UDP_OPTION_EXP, UDP_OPTION_FRAG,
        UDP_OPTION_MDS, UDP_OPTION_MRDS, UDP_OPTION_NOP, UDP_OPTION_REQ, UDP_OPTION_RES,
        UDP_OPTION_RESERVED_SAFE_END, UDP_OPTION_RESERVED_SAFE_START, UDP_OPTION_RESERVED_UNSAFE,
        UDP_OPTION_TIME, UDP_OPTION_UCMP, UDP_OPTION_UENC, UDP_OPTION_UEXP,
        UDP_OPTION_UNASSIGNED_SAFE_END, UDP_OPTION_UNASSIGNED_SAFE_START,
        UDP_OPTION_UNASSIGNED_UNSAFE_END, UDP_OPTION_UNASSIGNED_UNSAFE_START,
    };
}

pub use exports::*;