Expand description
Layer stacking support for packet composition.
This module provides the LayerStack type for composing packets using
the / operator syntax: Ether() / IP() / TCP().
§Example
use stackforge_core::layer::{
EthernetBuilder, LayerStack, LayerStackEntry, LayerKind,
ipv4::Ipv4Builder,
tcp::TcpBuilder,
};
use stackforge_core::layer::field::MacAddress;
use std::net::Ipv4Addr;
// Build a TCP SYN packet
let pkt = LayerStack::new()
.push(LayerStackEntry::Ethernet(
EthernetBuilder::new()
.dst(MacAddress::BROADCAST)
.src(MacAddress::new([0x00, 0x11, 0x22, 0x33, 0x44, 0x55]))
))
.push(LayerStackEntry::Ipv4(
Ipv4Builder::new()
.src(Ipv4Addr::new(192, 168, 1, 1))
.dst(Ipv4Addr::new(192, 168, 1, 2))
.ttl(64)
))
.push(LayerStackEntry::Tcp(
TcpBuilder::new()
.src_port(12345)
.dst_port(80)
.syn()
))
.build();Structs§
- Layer
Stack - A stack of protocol layers that can be combined into a packet.
Enums§
- Layer
Stack Entry - An entry in a layer stack, representing a protocol layer builder.
Traits§
- Into
Layer Stack Entry - Trait for types that can be converted into a
LayerStackEntry.