STRUCT IPA_ENDPOINT_RX(9)
π struct ipa_endpoint_rx(9) π
okay bestie, sit down, we're reading the Kernel API Manual together and honestly? this one's a cutie. it's giving Endpoint configuration for RX endpoints β¨ β like, this is literally the struct that tells the IPA hardware how to behave on the receive side. no cap.
β¨ SYNOPSIS β¨
struct ipa_endpoint_rx {
u32 buffer_size;
u32 pad_align;
u32 aggr_time_limit;
bool aggr_hard_limit;
bool aggr_close_eof;
bool holb_drop;
};
(she's little but she's got range π)
πΈ Members πΈ
buffer_sizeβ the receive buffer size you're requesting, in bytes π«Άpad_alignβ a power-of-2 boundary, and the packet payload gets aligned to itaggr_time_limitβ how long (in microseconds) before aggregation closes β°aggr_hard_limitβ tells us whether aggregation closes before or after the boundary, iykykaggr_close_eofβ whether aggregation closes on end-of-frame π¦holb_dropβ whether to drop packets to avoid head-of-line blocking π
π₯ Description π₯
okay so first thing, main character energy: the actual size of the receive buffer is rounded up if necessary so it's a power-of-2 number of pages. not optional, that's just how she is. π
With each packet it transfers, the IPA hardware can perform certain transformations of its packet data. one of these is adding pad bytes to the end of the packet data so the result ends on a power-of-2 boundary. cute, right? π
It's also able to aggregate multiple packets into a single receive buffer. Aggregation is "open" while a buffer is being filled, and "closes" when certain criteria are met. think of it like the group chat being active vs. everyone going to sleep π
A time limit can be specified to close aggregation. Aggregation will be closed if this period passes after data is first written into a receive buffer. and if it's not specified? no time limit is imposed. she'll wait forever, iconic π
Insufficient space available in the receive buffer can close aggregation too. the aggregation byte limit defines the point (in units of 1024 bytes) in the buffer where aggregation closes. so:
- with a "soft" aggregation limit, aggregation closes when a packet written to the buffer crosses that aggregation limit β
- with a "hard" aggregation limit, aggregation will close before writing a packet that would cross that boundary π₯
bestie pls note the difference β soft = crosses, hard = before. that's the whole vibe check right there, don't mix them up π
π¦ SEE ALSO π¦
Kernel file ./drivers/net/ipa/ipa_endpoint.hstruct ipa_endpoint_tx(9)struct ipa_endpoint_config(9)enum ipa_replenish_flag(9)struct ipa_endpoint(9)
go read the whole friend group, they're all slaying in their own way π
and that's the page fr fr π this little icon comes to you from ./drivers/net/ipa, dated October 2026, and it's literally titled struct ipa_endpoint_rx(9) β periodt. πβ¨
π¦ 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