This repository was archived by the owner on Nov 20, 2025. It is now read-only.
Releases: Jake-Shadle/xdp
Releases · Jake-Shadle/xdp
0.7.0
Fixed
- PR#20 changed
EtherTypeandIpProtofrom enums to scoped constants to avoid UB in the presence of invalid/corrupt data that didn't match a variant. Also removed a bunch of theIpProtovariants as most will never be used, and since it's now scoped constants users can provide their own constants without needing them in the lib themselves. Resolved #19. - PR#23 added sanity checks to avoid subtraction underflow if the user provides wildly out of range offsets and/or slices to
Packetmethods. - PR#23 fixed a bug in
Packet::array_at_offsetwhere the offset was incorrect ifheadwas not 0. - PR#23 added a check in
UdpHeader::parse_packetto ensure the UDP length matches the packet buffer length.
Changed
- PR#22 removed the
Index/Mutimpls fromXskProducer/Consumeras they were unneccessary fluff in favor of much simpler internal methods. - PR#23 changed
data_offsetanddata_lengthto justdata, a range that is convertible to/fromstd::ops::Range<usize>.data_lengthis now a method that just returnsdata.end - data.start.
Added
0.6.0
Changed
- PR#16 changed
RxRingandTxRingto use the newslab::Slabtrait. - PR#16 moved
HeapSlabto the newslabmodule, and made it implementslab::Slab, changing it so that items are always pushed to the front and popped from the back, unlike the previous implementation which allowed both. - PR#17 changed
CsumOffload::Request(xdp::libc::xdp::xsk_tx_request)->CsumOffload::Request { start: u16, offset: u16 }
Added
- PR#16 added a new
slab::StackSlab<N>fixed size ring buffer that implementsslab::Slab. - PR#17 added various doc examples.
Fixed
- PR#16 fixed some undefined behavior in the netlink code used to query NIC capabilities.
- PR#16 fixed a bug where TX metadata would not be added and would return an error if the packet headroom was not large enough for the metadata, this is irrelevant.
- PR#17 fixed the exceptional case where a UDP checksum is calculated to be 0, in which case it is set to
0xffffinstead.
0.5.0
Changed
- PR#15 renamed
UdpPacket->UdpHeaders, and changed the contents to be the actual headers that can be de/serialized from/to the packet buffer. - PR#15 moved to edition 2024.
Added
- PR#15 added various utility methods to the types in
net_types. - PR#15 added
Debugimpls for various types gated behind the__debugfeature since they are mainly only for internal testing. - PR#15 added
mirichecking to CI, resolving #13.
Fixed
- PR#15 fixed an issue where UDP checksum calculation could be incorrect depending on the input data.
Removed
0.4.0
Changed
- PR#11 fixed documentation, but also moved some types and constants around in the
libcmodule. - PR#14 changed
Packet::array_at_offsetto take a&mut [u8; N]rather than return it.
Fixed
- PR#14 fixed a bug where inserting past the end of the tail would not return an
Err.
Added
- PR#14 ungated the
Debugimpls forXdpFeatures,XdpRxMetadata,XdpTxMetadata,XdpZeroCopy, andNetdevCapabilities.