STRUCT LIBETH_RX_CSUM(9)
β¨ struct libeth_rx_csum(9) β¨
okay so bestie, this page lives in the Kernel API Manual and it's literally all about one lil struct β struct libeth_rx_csum β which holds the checksum offload bits that got decoded straight out of the Rx descriptor. that's it, that's the vibe π
π NAME π
struct libeth_rx_csum β the checksum offload bits, decoded from the Rx descriptor π
π¦ SYNOPSIS π¦
struct libeth_rx_csum {
u32 l3l4p:1;
u32 ipe:1;
u32 eipe:1;
u32 eudpe:1;
u32 ipv6exadd:1;
u32 l4e:1;
u32 pprs:1;
u32 nat:1;
u32 raw_csum_valid:1;
u32 pad:7;
u32 raw_csum:16;
};
look at her, all bitfields and perfectly packed π no cap, every field is u32, and the bit widths are exactly as written above β do not touch, do not "clean up". fr fr.
πΈ Members πΈ
okay here's the cast of characters, one bitfield at a time π
l3l4pβ the detectable L3 and L4 integrity check is processed by the hardware π₯ipeβ IP checksum error πeipeβ external (outermost) IP header β only for tunnelseudpeβ external (outermost) UDP checksum error β only for tunnelsipv6exaddβ IPv6 header with extension headers β¨l4eβ L4 integrity error πpprsβ set for packets that skip checksum calculation in the HW pre parser π§natβ the packet is a UDP tunneled packet πraw_csum_validβ set if the raw checksum is valid βpadβ padding, there purely to naturally align theraw_csumfield πraw_csumβ the raw checksum itself π
small heads-up bestie:eipeandeudpeare the external, i.e. outermost, header ones β and they only apply to tunnels. don't go reading them for normal packets, that's not the move π
π SEE ALSO π
go read these next, i'm obsessed with this little cluster of files honestly π«Ά
- 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_rqe_info(9)libeth_rx_pt_get_ip_ver(9)libeth_rx_pt_set_hash(9)
ok that's the whole page, periodt π huge shoutout to the ./include/net/libeth directory for being the source of truth, and to the October 2026 release for dating this little masterpiece. go read the header file, ily, bye πβ¨
π¦ 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