__record_pdu(9)
π __record_pdu(9) β the linux kernel API manual, but make it make sense
okay so this one lives in the 9 section of the kernel API manual and honestly? it's a little baby function doing grown-up LACP stuff. let's get into it π«Ά
πΈ NAME πΈ
__record_pdu β record parameters from a received lacpdu. that's it. that's the whole vibe. it takes the tea from an incoming lacpdu and writes it down π
β¨ SYNOPSIS β¨
void __record_pdu (struct lacpdu *lacpdu , struct port *port );
note the void bestie β this one doesn't hand anything back. it just does the thing and dips π
π ARGUMENTS π
lacpduβ thelacpduwe've received. like, the actual packet that just showed up. this is the mail, we're about to open it π¬portβ the port we're looking at. this is the main character of the whole operation, no cap π
π DESCRIPTION π
so what does it do? it takes the parameter values for the Actor that were carried in a received lacpdu, and records them as the current partner operational parameter values. basically: whoever we just heard from is now officially our partner, and their deets go in the book πβ¨
and then, the finishing move β it sets actor_oper_port_state.defaulted to FALSE. yes queen, we are no longer defaulted. we are known. periodt π
π¦ SEE ALSO π¦
okay, this list is LONG, grab a snack π β and heads up, these all live in the kernel file ./drivers/net/bonding/bond_3ad.c, so keep that in mind:
__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_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_tx_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)
like, literally the entire 3ad friend group π go say hi to all of them
ngl if you're reading this because you're deep in bonding driver internals at 2am β hydrate, bestie π§ you're doing amazing π
and that's the page! π sourced from ./drivers/net/bonding, dated October 2026 β catch you in the next manpage, mwah πβ¨
π¦ 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