Struct etherparse::PacketBuilder
[−]
[src]
pub struct PacketBuilder {}
Helper for building packets.
The packet builder allows the easy construction of a packet from the ethernet II layer downwards including ipv6, ipv4, the udp header and the actual payload. The packet builder automatically calculates lengths & checksums for ip & udp and set type identifiers for ethernetII and ip. This makes it easy and less error prone to construct custom packets.
Example
let builder = PacketBuilder:: ethernet2([1,2,3,4,5,6], //source mac [7,8,9,10,11,12]) //destionation mac .ipv4([192,168,1,1], //source ip [192,168,1,2], //desitionation ip 20) //time to life .udp(21, //source port 1234); //desitnation port //payload of the udp packet let payload = [1,2,3,4,5,6,7,8]; //get some memory to store the result let mut result = Vec::<u8>::with_capacity( builder.size(payload.len())); //serialize builder.write(&mut result, &payload).unwrap(); println!("{:?}", result);
Methods
impl PacketBuilder
[src]
pub fn ethernet2(
source: [u8; 6],
destination: [u8; 6]
) -> PacketBuilderStep<Ethernet2Header>
[src]
source: [u8; 6],
destination: [u8; 6]
) -> PacketBuilderStep<Ethernet2Header>
Start an packet with an ethernetII header.