bond_3ad_set_carrier(9)
π bond_3ad_set_carrier(9) β like, the link-state glow-up for your bonding master
okay so bestie, welcome to the Kernel API Manual β¨ this one's a tiny little function but she's important, she's the one deciding whether your bond looks alive or absolutely ghosting everyone. let's get into it π«Ά
β¨ NAME β¨
bond_3ad_set_carrier β set link state for bonding master π
π SYNOPSIS π
int bond_3ad_set_carrier (struct bonding *bond );
(yes, that space before the closing paren is canon, don't come for her π )
π¦ ARGUMENTS π¦
bondβ the bonding structure π« that's it. that's the whole argument. she takes one (1) struct and she takes it seriously.
π₯ DESCRIPTION π₯
okay so here's the tea β and it's genuinely simple:
if we have an active aggregator, we're up. if we don't, we're down. periodt π that's the entire vibe check.
she presumes β and this is the important part, bestie, don't skip it π β that we cannot have an active aggregator if there are no slaves with link up. like, no live slaves = no active aggregator. it's giving main character logic, honestly.
this behavior complies with IEEE 802.3 section 43.3.9 π so like, it's not just a vibe, it's standards-compliant β¨ iconic.
she's called by bond_set_carrier π (iykyk).
and the return value? okay so:
- returns zero if the carrier state does not change (nothing happened, she's unbothered πΈ)
- returns nonzero if it does change (she ate, and left no crumbs π₯)
π SEE ALSO π
so like, this function lives in the kernel file ./drivers/net/bonding/bond_3ad.c and it is surrounded by her extended friend group π β every single one of these, no cap:
__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_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_get_active_agg_info(9)bond_3ad_update_lacp_rate(9)bond_3ad_update_lacp_active(9)
π friendly reminder bestie: this one's kernel-side documentation, so treat the source as the source of truth β don't go inventing behavior she didn't promise, okay? π«Ά
and that's the whole page, babes π this little cutie came to you from ./drivers/net/bonding, dated October 2026 β stan the kernel docs, they're literally doing the most πβ¨π
π¦ 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