meh / rust-packet

Network packet handling for Rust.
90 stars 27 forks source link

Protocol wish list. #3

Open meh opened 7 years ago

meh commented 7 years ago

If anyone wants a protocol that's not been implemented yet to be added, just ask here.

Protocols

tsuckow commented 5 years ago

DHCP, NBNS, LLMNR, mDNS

jasonish commented 4 years ago

Any known active work on an IPv6 builder? Just want to put it out there before I start looking myself.

meh commented 4 years ago

@jasonish not that I know of :panda_face:

vi commented 2 years ago

IPv6 parser.

rwygand commented 7 months ago

IPIP builder. I've tried using the existing IPv4 Builder to create an encapsulated IP in IP packet, but setting the payload of the new packet to the old packet seems to result in a corrupt packet. I suspect there are some finalization checks that need to be done when two IPv4 headers are present.

ollie-etl commented 3 weeks ago

An alternative approach would be to expose the finalisation of a layer for arbitrary sublayers. Any new layer can then create a builder for an existing layer via trait extension.

i.e

pub trait UdpBuilderExt {
    fn udp(self) -> udp::Builder;
}

impl UdpBuilderExt for ipv4::Builder {
    fn udp(self) -> udp::Builder{
    // ....
    }
};

impl UdpBuilderExt for ipv6::Builder {
    fn udp(self) -> udp::Builder{
    // ....
    }
};

I can do a PoC if there is interest