__choose_matched(9)
πΈ NAME πΈ
okay so bestie, we're in the Kernel API Manual and the function on the menu is __choose_matched β it updates a port's matched variable from a received lacpdu. no cap, that's the whole vibe. π
β¨ SYNOPSIS β¨
here's the signature, exactly as it appears β do not come for me about the spaces:
void __choose_matched (struct lacpdu *lacpdu , struct port *port );
π ARGUMENTS π
lacpduβ thelacpduwe've received. the incoming PDU bestie.portβ theportwe're looking at. the port in question.
π¦ DESCRIPTION π¦
so the move here is: update the value of the matched variable, using parameter values from a newly received lacpdu. The parameter values for the partner carried in the received PDU get compared with the corresponding operational parameter values for the actor. matched is set to TRUE if all of these parameters match and the PDU parameter partner_state.aggregation has the same value as actor_oper_port_state.aggregation and lacp will actively maintain the link in the aggregation. slay condition stack β¨
matched is also set to TRUE if the value of actor_state.aggregation in the received PDU is set to FALSE β i.e., it indicates an individual link β and lacp will actively maintain the link. Otherwise, matched is set to FALSE. simple as that, periodt.
LACP is considered to be actively maintaining the link if either the PDU's actor_state.lacp_activity variable is TRUE or both the actor's actor_oper_port_state.lacp_activity and the PDU's partner_state.lacp_activity variables are TRUE. iykyk π«Ά
π NOTE π
not me learning that theAD_PORT_MATCHED"variable" is not specified by 802.3ad π; it is used here to implement the language from 802.3ad 43.4.9 that requiresrecordPDUto "match" the LACPDU parameters to the stored values. the lore is real.
π SEE ALSO π
Kernel file ./drivers/net/bonding/bond_3ad.c is the home base, and the whole (9) squad is: __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), __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_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).
mwah π source/version: ./drivers/net/bonding; date: October 2026; page: __choose_matched(9). bye bestie, go match some PDUs πβ¨
π¦ 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