Expand description
Layer definitions and enum dispatch for protocol handling.
This module implements the “Lazy Zero-Copy View” architecture where layers are represented as lightweight views into a raw packet buffer.
Re-exports§
pub use arp::ArpBuilder;pub use arp::ArpLayer;pub use bindings::LAYER_BINDINGS;pub use bindings::LayerBinding;pub use ethernet::Dot3Builder;pub use ethernet::Dot3Layer;pub use ethernet::EthernetBuilder;pub use ethernet::EthernetLayer;pub use field::BytesField;pub use field::Field;pub use field::FieldDesc;pub use field::FieldError;pub use field::FieldType;pub use field::FieldValue;pub use field::MacAddress;pub use ftp::FTP_CONTROL_PORT;pub use ftp::FTP_DATA_PORT;pub use ftp::FTP_FIELD_NAMES;pub use ftp::FTP_MIN_HEADER_LEN;pub use ftp::FtpBuilder;pub use ftp::FtpLayer;pub use ftp::is_ftp_payload;pub use http::HTTP_FIELD_NAMES;pub use http::HttpLayer;pub use http::HttpRequestBuilder;pub use http::HttpResponseBuilder;pub use http2::HTTP2_FIELD_NAMES;pub use http2::Http2Builder;pub use http2::Http2FrameBuilder;pub use http2::Http2Layer;pub use icmp::ICMP_MIN_HEADER_LEN;pub use icmp::IcmpBuilder;pub use icmp::IcmpLayer;pub use icmp::icmp_checksum;pub use icmp::verify_icmp_checksum;pub use icmpv6::ICMPV6_MIN_HEADER_LEN;pub use icmpv6::Icmpv6Builder;pub use icmpv6::Icmpv6Layer;pub use icmpv6::icmpv6_checksum;pub use icmpv6::verify_icmpv6_checksum;pub use imap::IMAP_FIELD_NAMES;pub use imap::IMAP_MIN_HEADER_LEN;pub use imap::IMAP_PORT;pub use imap::ImapBuilder;pub use imap::ImapLayer;pub use imap::is_imap_payload;pub use ipv4::Ipv4Builder;pub use ipv4::Ipv4Flags;pub use ipv4::Ipv4Layer;pub use ipv4::Ipv4Options;pub use ipv4::Ipv4Route;pub use ipv6::IPV6_HEADER_LEN;pub use ipv6::Ipv6Builder;pub use ipv6::Ipv6Layer;pub use l2tp::L2TP_FIELD_NAMES;pub use l2tp::L2TP_MIN_HEADER_LEN;pub use l2tp::L2TP_PORT;pub use l2tp::L2tpBuilder;pub use l2tp::L2tpLayer;pub use modbus::MODBUS_FIELD_NAMES;pub use modbus::MODBUS_MIN_HEADER_LEN;pub use modbus::MODBUS_TCP_PORT;pub use modbus::ModbusBuilder;pub use modbus::ModbusLayer;pub use modbus::is_modbus_tcp_payload;pub use mqtt::MQTT_FIELD_NAMES;pub use mqtt::MQTT_MIN_HEADER_LEN;pub use mqtt::MQTT_PORT;pub use mqtt::MqttBuilder;pub use mqtt::MqttLayer;pub use mqtt::is_mqtt_payload;pub use mqttsn::MQTTSN_FIELD_NAMES;pub use mqttsn::MQTTSN_MIN_HEADER_LEN;pub use mqttsn::MQTTSN_PORT;pub use mqttsn::MqttSnBuilder;pub use mqttsn::MqttSnLayer;pub use mqttsn::is_mqttsn_payload;pub use neighbor::NeighborCache;pub use neighbor::NeighborResolver;pub use pop3::POP3_FIELD_NAMES;pub use pop3::POP3_MIN_HEADER_LEN;pub use pop3::POP3_PORT;pub use pop3::Pop3Builder;pub use pop3::Pop3Layer;pub use pop3::is_pop3_payload;pub use raw::RAW_FIELDS;pub use raw::RawBuilder;pub use raw::RawLayer;pub use smtp::SMTP_FIELD_NAMES;pub use smtp::SMTP_MIN_HEADER_LEN;pub use smtp::SMTP_PORT;pub use smtp::SmtpBuilder;pub use smtp::SmtpLayer;pub use smtp::is_smtp_payload;pub use ssh::SSH_BINARY_HEADER_LEN;pub use ssh::SSH_PORT;pub use ssh::SshBuilder;pub use ssh::SshLayer;pub use stack::IntoLayerStackEntry;pub use stack::LayerStack;pub use stack::LayerStackEntry;pub use tcp::TCP_FIELDS;pub use tcp::TCP_MAX_HEADER_LEN;pub use tcp::TCP_MIN_HEADER_LEN;pub use tcp::TCP_SERVICES;pub use tcp::TcpAoValue;pub use tcp::TcpBuilder;pub use tcp::TcpFlags;pub use tcp::TcpLayer;pub use tcp::TcpOption;pub use tcp::TcpOptionKind;pub use tcp::TcpOptions;pub use tcp::TcpOptionsBuilder;pub use tcp::TcpSackBlock;pub use tcp::TcpTimestamp;pub use tcp::service_name;pub use tcp::service_port;pub use tcp::tcp_checksum;pub use tcp::tcp_checksum_ipv4;pub use tcp::verify_tcp_checksum;pub use tftp::TFTP_MIN_HEADER_LEN;pub use tftp::TFTP_PORT;pub use tftp::TftpBuilder;pub use tftp::TftpLayer;pub use tftp::is_tftp_payload;pub use tls::TLS_FIELDS;pub use tls::TLS_PORT;pub use tls::TLS_RECORD_HEADER_LEN;pub use tls::TlsAlertBuilder;pub use tls::TlsCcsBuilder;pub use tls::TlsContentType;pub use tls::TlsLayer;pub use tls::TlsRecordBuilder;pub use tls::TlsVersion;pub use udp::UDP_HEADER_LEN;pub use udp::UdpBuilder;pub use udp::UdpLayer;pub use udp::udp_checksum_ipv4;pub use udp::udp_checksum_ipv6;pub use udp::verify_udp_checksum_ipv4;pub use udp::verify_udp_checksum_ipv6;pub use zwave::ZWAVE_FIELD_NAMES;pub use zwave::ZWAVE_HEADER_LEN;pub use zwave::ZWAVE_MIN_HEADER_LEN;pub use zwave::ZWaveBuilder;pub use zwave::ZWaveLayer;pub use dns::DnsLayer;
Modules§
- arp
- bindings
- Layer binding system for automatic field setting when stacking layers.
- dns
- DNS protocol layer implementation (RFC 1035).
- dot11
- IEEE 802.11 (
WiFi/ Dot11) protocol layer implementation. - dot15d4
- IEEE 802.15.4 (Zigbee / Dot15d4) protocol layer implementation.
- ethernet
- Ethernet II frame layer implementation.
- ethertype
EtherTypeconstants- field
- Field trait and implementations for zero-copy field access.
- field_
ext - Extended field types for complex protocol fields.
- ftp
- FTP (File Transfer Protocol) layer implementation.
- generic
- Generic / custom protocol layer for user-defined protocols.
- http
- HTTP/1.x layer implementation.
- http2
- HTTP/2 protocol layer (RFC 7540).
- icmp
- ICMP (Internet Control Message Protocol) layer implementation.
- icmpv6
ICMPv6(Internet Control Message Protocol for IPv6) layer implementation.- imap
- IMAP (Internet Message Access Protocol) layer implementation.
- ip_
protocol - IP protocol numbers
- ipv4
- IPv4 layer module.
- ipv6
- IPv6 layer implementation.
- l2tp
- L2TP (Layer 2 Tunneling Protocol) layer implementation.
- modbus
- Modbus protocol layer implementation.
- mqtt
- MQTT (Message Queuing Telemetry Transport) layer implementation.
- mqttsn
- MQTT-SN (MQTT for Sensor Networks) layer implementation.
- neighbor
- Neighbor resolution system for automatic MAC address lookup.
- pop3
- POP3 (Post Office Protocol version 3) layer implementation.
- quic
- QUIC protocol layer implementation (RFC 9000).
- raw
- Raw Layer Implementation
- smtp
- SMTP (Simple Mail Transfer Protocol) layer implementation.
- ssh
- SSH (Secure Shell) protocol layer.
- stack
- Layer stacking support for packet composition.
- tcp
- TCP (Transmission Control Protocol) layer module.
- tftp
- TFTP (Trivial File Transfer Protocol) layer implementation.
- tls
- TLS (Transport Layer Security) protocol layer.
- udp
- UDP (User Datagram Protocol) layer implementation.
- zwave
- Z-Wave wireless protocol layer implementation.
Structs§
- Layer
Index - Index information for a layer within a packet buffer.
Enums§
Traits§
- Layer
- Trait for types that can act as a network protocol layer.