- updated example in readme
- use
libxdp-sys
instead oflibbpf-sys
- bump
libbpf-sys
version
- provide
FrameDesc
with aDefault
impl to make generating empty descs for rx simpler
- negate error codes when calling
io::Error::from_raw_os_error
- some
libc
calls just return-1
on error, not an informative error code so in these cases callio::Error::last_os_error()
instead ofio::Error::from_raw_os_error(err)
, whereerr
is always equal to-1
...
- add
contents_mut
to{Data, Headroom}Mut
, along with other convenience traits ({As, Borrow, Deref}{Mut}
)
- update
{Data, Headroom}Mut::cursor
docs to clarify when{Data, Headroom}Mut::contents_mut
might be more appropriate - more colour to safety section of
Umem::frame
andUmem::frame_mut
indicating why using the frame desc of another UMEM might be problematic
- support shared UMEM
- support retrieving XDP statistics
- new frame level structs to allow more granular UMEM access along with clearer separation between headroom and packet data. Includes a cursor for convenient writing
- config builders and add extra types to enforce restrictions on certain values / sizes (e.g queue sizes)
- bump libs, e.g.
libbpf-sys
to 0.6.0-1
- got rid of lifetimes by packaging the various queues with an
Arc
'd UMEM or socket where needed to ensure they don't outlive what they depend on. Shouldn't cause any slowdown in the single threaded case since theArc
s aren't dereferenced in the fast path
- expose the socket file descriptor on the
Fd
struct to make it possible to register the socket manually - bump libbpf-sys to version 0.4
- added CI, fixed docs
- bumped lib versions, libbpf-sys specifically
- bumped libbpf-sys version to 0.3
- fixed docs, wasn't showing some stuff since the structs/enums weren't exposed
Breaking change
- Changed the APIs for the UMEM and socket to be
unsafe
where required. It's possible in a number of locations to get into a race with the kernel for a bit of shared memory, so tried to make those areas clearer. - Can now set the
addr
onFrameDesc
manually, previously had to go through the library. - Cleared up examples and hopefully made them a bit more illustrative.
- A
bench
sub-project, work on which is ongoing.