STRUCT EFX_TC_MANGLER_STATE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct efx_tc_mangler_state(9) ✨

okay so bestie, welcome to the Kernel API Manual entry for struct efx_tc_mangler_state β€” it's giving "little bookkeeping struct that's actually carrying the whole team" energy πŸ’…

πŸŽ€ NAME πŸŽ€

struct efx_tc_mangler_state β€” accumulates 32-bit pedits into fields 🫢

πŸ¦‹ SYNOPSIS πŸ¦‹

struct efx_tc_mangler_state {
    u8 dst_mac_32:1;
    u8 dst_mac_16:1;
    u8 src_mac_16:1;
    u8 src_mac_32:1;
    unsigned char dst_mac[ETH_ALEN];
    unsigned char src_mac[ETH_ALEN];
 };

like, look at her. four lil bitfields and two MAC arrays. main character energy fr fr 🌸

πŸ‘‘ Members πŸ‘‘

  • dst_mac_32 β€” this flag means dst_mac[0:3] has been populated ✨
  • dst_mac_16 β€” and this one means dst_mac[4:5] has been populated πŸ’–
  • src_mac_16 β€” yep, src_mac[0:1] has been populated πŸŽ€
  • src_mac_32 β€” this flag says src_mac[2:5] has been populated πŸ¦‹
  • dst_mac β€” the h_dest field of ethhdr πŸ’«
  • src_mac β€” the h_source field of ethhdr 🌈

πŸ’œ Description πŸ’œ

okay so here's the situation: FLOW_ACTION_MANGLE shows up in 32-bit chunks, and those chunks do not necessarily line up with whole fields of the packet header 😭 like the vibes are partial, the fields are partial, it's a whole thing.

so this structure exists to hold the cumulative effect of the partial field pedits that have been processed so far. it's literally the group chat where all the half-finished edits get collected until somebody can actually make sense of them 🫢 no cap.

🌟 SEE ALSO 🌟

Kernel file ./drivers/net/ethernet/sfc/tc.c β€” TC conntrack sequences(9), efx_tc_mangle(9), efx_tc_incomplete_mangle(9) 🧚


and that's the whole page, bestie! πŸ“ brought to you by ./drivers/net/ethernet/sfc, dated October 2026, and this struct efx_tc_mangler_state(9) moment was iconic, periodt πŸ’…πŸ”₯

πŸ“¦ where this page comes from