STRUCT LIBETH_RQE_INFO(9)
π struct libeth_rqe_info(9) β receive queue element info
okay bestie, welcome to the Kernel API Manual, and buckle up because we're about to get into the nitty-gritty of a receive queue element info struct β¨ this little cutie is literally the info packet you get about an RQE (receive queue element), and she's doing the most with bitfields. iykyk.
β¨ NAME β¨
struct libeth_rqe_info β receive queue element info π
like. that's her. that's the whole vibe. she's a struct holding the deets about one receive queue element, and she is thriving.
π¦ SYNOPSIS π¦
struct libeth_rqe_info {
u32 len;
u32 ptype:14;
u32 eop:1;
u32 rxe:1;
u32 vlan:16;
};
no cap, look at those bitfields β ptype:14, eop:1, rxe:1, vlan:16 β she's packing everything in tight and the layout is iconic. notice the members are u32 and three of them are sharing 32 bits worth of space between them (14 + 1 + 1 + 16 = 32, the math is mathing π§). also yes there's a little space before that closing }; in the original and we're keeping it verbatim because we respect the source π
π Members π
πΈ len
the packet length, periodt. how long the packet is. that's it, that's the member π
β ptype
the packet type β and the important caveat here bestie, it's based on types programmed into the device, so it's not some universal cosmic truth, it's whatever the device was told to report π
π₯ eop
whether it's the last fragment of the packet. eop = end of packet, and this one bit tells you if you've reached the end of the line or if there's more coming π
π rxe
MAC errors: CRC, Alignment, Oversize, Undersizes, Length error. yeah. all of those. one bit, five possible flavors of "something went wrong at the MAC layer" β CRC errors, alignment errors, oversize, undersizes, and length error. not a vibe, but you gotta know π
π vlan
the C-VLAN or S-VLAN tag β which one you get depends on the VLAN offload configuration. so it's giving "it depends on your setup" and you should check your config before assuming π«Ά
π SEE ALSO π
- Kernel file
./include/net/libeth/rx.h struct libeth_fqe(9)enum libeth_fqe_type(9)struct libeth_fq(9)libeth_rx_alloc(9)libeth_rx_sync_for_cpu(9)struct libeth_rx_csum(9)libeth_rx_pt_get_ip_ver(9)libeth_rx_pt_set_hash(9)
go read the whole little friend group, they're all connected and honestly the rx.h file is the main character here π¦
π reminder bestie: rxe being set can mean any of CRC, Alignment, Oversize, Undersizes, or Length error β it's a single bit doing a lot of emotional labor.
and that's the page, fr fr π«Ά brought to you by ./include/net/libeth and dated October 2026, all wrapped up in this month's very own struct libeth_rqe_info(9). slay, go read your rx headers, mwah πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms