bdx_rx_init(9)
π bdx_rx_init(9) β kernel API manual, bestie edition π
okay so we're in the kernel API manual, section 9, and the star of the show is bdx_rx_init β the little function that gets your RX side all cute and ready. no cap, it's giving "getting ready for the group chat" energy π
β¨ NAME β¨
bdx_rx_init β initialize RX all related HW and SW resources π«Ά
like, all of them. hardware and software. the whole vibe check.
π¦ SYNOPSIS π¦
int bdx_rx_init (struct bdx_priv *priv );
πΈ ARGUMENTS πΈ
privβ the NIC private structure π that's your one and only argument, bestie, and it's the NIC's own private struct. main character energy fr fr.
π₯ DESCRIPTION π₯
okay so here's the tea β β it returns 0 on success, and a negative value on failure. that's the contract, periodt.
what it actually does: it creates the rxf and rxd fifos β¨, updates the relevant HW registers, and preallocates skb for rx. it assumes that Rx is disabled in HW β like, that's a given going in, don't come at it with Rx already running π. and the funcs are grouped for better cache usage, which is lowkey iconic of it ngl.
now the design lore, because this part is actually fascinating π§:
RxD fifo is smaller than RxF fifo by design. and why? because upon high load, RxD will be filled and packets will be dropped by the nic without ever getting into host or causing an interrupt. so the drop happens way out there in the NIC, not in your host π₯
and anyway, in that condition the host has no chance to process all packets β so like, it's not a tragedy. dropping in the nic is cheaper, since it takes 0 cpu cycles π zero. none. slay.
β SEE ALSO β
Kernel file ./drivers/net/ethernet/tehuti/tehuti.c
bdx_fifo_init(9)bdx_fifo_free(9)bdx_link_changed(9)bdx_isr_napi(9)bdx_fw_load(9)bdx_hw_start(9)bdx_close(9)bdx_open(9)__bdx_vlan_rx_vid(9)bdx_vlan_rx_add_vid(9)bdx_vlan_rx_kill_vid(9)bdx_change_mtu(9)bdx_rx_free_skbs(9)bdx_rx_free(9)bdx_rx_alloc_skbs(9)bdx_rx_receive(9)__bdx_tx_db_ptr_next(9)bdx_tx_db_inc_rptr(9)bdx_tx_db_inc_wptr(9)bdx_tx_db_init(9)bdx_tx_db_close(9)bdx_tx_map_skb(9)bdx_tx_space(9)bdx_tx_transmit(9)bdx_tx_cleanup(9)bdx_tx_free_skbs(9)bdx_tx_push_desc(9)bdx_tx_push_desc_safe(9)bdx_probe(9)bdx_remove(9)
and that's the whole page!! πβ¨ this one lives in ./drivers/net/ethernet/tehuti and it's dated October 2026 β so yeah, read it now, thank yourself later, iykyk ππ
π¦
π¦ 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