ipa_endpoint_init_hdr(9)
π ipa_endpoint_init_hdr(9) π
okay so bestie, welcome to the kernel API manual β this one's ipa_endpoint_init_hdr, and it's literally the glow-up routine for the HDR endpoint configuration register β¨ no cap.
πΈ NAME πΈ
ipa_endpoint_init_hdr β Initialize HDR endpoint configuration register π
β¨ SYNOPSIS β¨
void ipa_endpoint_init_hdr (struct ipa_endpoint *endpoint );
π¦ ARGUMENTS π¦
endpointβ Endpoint pointer. that's it, that's the whole argument, she's lowkey simple like that π«Ά
π DESCRIPTION π
okay so here's the vibe: we program QMAP endpoints so that every single packet received is preceded by a QMAP header structure. like, the header walks in first, main character energy, and then the packet shows up π
The QMAP header contains a 1-byte mux_id and a 2-byte packet size field, and we have the IPA hardware populate both of them for each received packet. yes bestie, the hardware does the work β the header is configured (in the HDR_EXT register) to use big endian format π₯
The packet size gets written into the QMAP header's pkt_len field. That location is defined right here using the HDR_OFST_PKT_SIZE field. slay, positioning is everything π
Now the mux_id β she comes from a 4-byte metadata value supplied with each packet by the modem. and listen: it is *not* a QMAP header, but it does contain the mux_id value that we want, chillin' in its low-order byte π
A bitmask defined in the endpoint's METADATA_MASK register defines which byte within the modem metadata actually contains the mux_id. And the OFST_METADATA field programmed here indicates where the extracted byte should be placed within the QMAP header. it's giving "find her, then put her exactly where she belongs" π§
π SEE ALSO π
- Kernel file
./drivers/net/ipa/ipa_endpoint.cβ go read the source, iykyk π ipa_endpoint_suspend_aggr(9)ipa_endpoint_skb_tx(9)ipa_endpoint_replenish(9)ipa_endpoint_reset_rx_aggr(9)
the whole friend group fr fr π«Ά
ok that's the page!! source: ./drivers/net/ipa Β· version/date: October 2026 Β· catch u later bestie, go init those headers πππ¦
π¦ 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