phylink_limit_mac_speed(9)
π phylink_limit_mac_speed π
okay so this is a page from the Kernel API Manual (that's the manual name, folding it in here bestie π«Ά) and it's all about one lil function called phylink_limit_mac_speed, which does exactly one thing: it limits the phylink_config to a maximum speed. that's the whole NAME, periodt.
β¨ SYNOPSIS β¨
void phylink_limit_mac_speed (struct phylink_config *config, u32 max_speed);
literally that's it, no return value, nothing to catch, we love a void king π
πΈ ARGUMENTS πΈ
configβ a pointer to astruct phylink_config. that's the thing getting capped, she's the main character here.max_speedβ the maximum speed. like the ceiling. the speed limit sign on the highway π§
π¦ DESCRIPTION π¦
okay so what actually happens: this function masks off the MAC capabilities for every speed that's higher than the max_speed parameter. so anything above your ceiling? gone. not invited to the party π
and here's the important bit β the caution β any further modifications of config.mac_capabilities will override this. (the original page says "motifications", which is adorable, but it 100% means modifications, iykyk π
) so like, this isn't a permanent lock, it's a "for now" situation. don't come crying to me if you poke mac_capabilities afterwards and it stops listening.
β οΈ real talk: this masks caps. it does not make itself permanent. if something else writes to config.mac_capabilities after you call this, that write wins. no cap.
π SEE ALSO π
this list is long long, so buckle up bestie, we're going through all of it:
- Kernel file
./drivers/net/phy/phylink.cstructphylink(9) phylink_set_port_modes(9)phylink_interface_max_speed(9)phylink_caps_to_link_caps(9)phylink_caps_to_linkmodes(9)phylink_cap_from_speed_duplex(9)phylink_get_capabilities(9)phylink_validate_mask_caps(9)phylink_pcs_neg_mode(9)phylink_set_fixed_link(9)phylink_create(9)phylink_destroy(9)phylink_expects_phy(9)phylink_connect_phy(9)phylink_of_phy_connect(9)phylink_fwnode_phy_connect(9)phylink_disconnect_phy(9)phylink_mac_change(9)phylink_pcs_change(9)phylink_start(9)phylink_stop(9)phylink_rx_clk_stop_block(9)phylink_rx_clk_stop_unblock(9)phylink_suspend(9)phylink_prepare_resume(9)phylink_resume(9)phylink_ethtool_get_wol(9)phylink_ethtool_set_wol(9)phylink_ethtool_ksettings_get(9)phylink_ethtool_ksettings_set(9)phylink_ethtool_nway_reset(9)phylink_ethtool_get_pauseparam(9)phylink_ethtool_set_pauseparam(9)phylink_get_eee_err(9)phylink_ethtool_get_eee(9)phylink_ethtool_set_eee(9)phylink_mii_ioctl(9)phylink_speed_down(9)phylink_speed_up(9)phylink_decode_usxgmii_word(9)phylink_decode_usgmii_word(9)phylink_mii_c22_pcs_decode_state(9)phylink_mii_c22_pcs_get_state(9)phylink_mii_c22_pcs_encode_advertisement(9)phylink_mii_c22_pcs_config(9)phylink_mii_c22_pcs_an_restart(9)phylink_replay_link_begin(9)phylink_replay_link_end(9)
that's the whole page, ate and left no crumbs π
mwah π this has been a Kernel API Manual moment, sourced from ./drivers/net/phy, dated October 2026, and the page you just read is phylink_limit_mac_speed(9) β go forth and cap those speeds π¦β¨
π¦ 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