ad_tx_machine(9)
β¨ ad_tx_machine(9) β¨
okay so this is a page from the Kernel API Manual, bestie β it's ad_tx_machine(9) and it's literally the whole entire vibe of running a port's tx state machine. yes that's a lot of lowercase and yes we're gonna get through it together π«Ά
π NAME π
ad_tx_machine β handle a port's tx state machine
like, that's the job. that's the whole job. one function, one port, one state machine that needs handling π
πΈ SYNOPSIS πΈ
void ad_tx_machine (struct port *port );
that's it. that's the function. it returns void (so nothing comes back out, don't go looking for a return value babes) and it takes exactly one thing π
π¦ ARGUMENTS π¦
portβ the port we're looking at π that's the one. that's the port. the tx state machine of this port is the one getting handled, no cap
π₯ SEE ALSO π₯
okay this is the part where the page just absolutely goes off β there is SO much family here, it's giving huge friend group energy, and every single one of them is a (9) entry:
__get_bond_by_port(9)__get_first_agg(9)__agg_has_partner(9)__disable_distributing_port(9)__enable_collecting_port(9)__disable_port(9)__enable_port(9)__port_move_to_attached_state(9)__port_is_collecting_distributing(9)__get_agg_selection_mode(9)__check_agg_selection_timer(9)__get_link_speed(9)__get_duplex(9)__ad_timer_to_ticks(9)__choose_matched(9)__record_pdu(9)__record_default(9)__update_selected(9)__update_default_selected(9)__update_ntt(9)__agg_ports_are_ready(9)__set_agg_ports_ready(9)__get_agg_bandwidth(9)__get_active_agg(9)__update_lacpdu_from_port(9)ad_lacpdu_send(9)ad_marker_send(9)ad_mux_machine(9)ad_rx_machine(9)ad_churn_machine(9)ad_periodic_machine(9)ad_port_selection_logic(9)ad_agg_selection_logic(9)ad_clear_agg(9)ad_initialize_agg(9)ad_initialize_port(9)ad_enable_collecting(9)ad_disable_distributing(9)ad_enable_collecting_distributing(9)ad_disable_collecting_distributing(9)ad_marker_info_received(9)ad_marker_response_received(9)bond_3ad_initiate_agg_selection(9)bond_3ad_initialize(9)bond_3ad_bind_slave(9)bond_3ad_unbind_slave(9)bond_3ad_update_ad_actor_settings(9)bond_agg_timer_advance(9)bond_3ad_state_machine_handler(9)bond_3ad_rx_indication(9)ad_update_actor_keys(9)bond_3ad_adapter_speed_duplex_changed(9)bond_3ad_handle_link_change(9)bond_3ad_set_carrier(9)__bond_3ad_get_active_agg_info(9)bond_3ad_update_lacp_rate(9)bond_3ad_update_lacp_active(9)
and if you wanna read the source yourself (and honestly, iconic behavior), it lives in the kernel file ./drivers/net/bonding/bond_3ad.c π read it, bestie, it's right there
real talk: every single name above is spelled exactly how the page spells it, which includes those two leading underscores β do not "clean them up" π copy them character for character, iykyk
and that's the whole page!! go handle that tx state machine, main character π this was brought to you by the source ./drivers/net/bonding, dated October 2026 β mwah, bye bestie, slay πβ¨π
π¦ 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