ice_set_phy_type_from_speed(9)
π ice_set_phy_type_from_speed(9) π
okay so bestie, welcome to the Kernel API Manual β this one's a function page, and yes the function is literally named ice_set_phy_type_from_speed, we love a descriptive king π
β¨ NAME β¨
ice_set_phy_type_from_speed β sets phy_types based on speeds and advertised modes π
like. that's the whole gig. it looks at what you're advertising and figures out which phy types match. iconic behavior, no notes π
πΈ SYNOPSIS πΈ
void ice_set_phy_type_from_speed (const struct ethtool_link_ksettings *ks , u64 *phy_type_low , u64 *phy_type_high , u16 adv_link_speed );
returns void btw β it's not gonna hand you anything back, it just does the thing and dips π«Ά
π¦ ARGUMENTS π¦
ksβ the ethtool link ksettings struct π§ this is your source of truth, the settings container itselfphy_type_lowβ a pointer to the lower part ofphy_typeβ¬οΈ yes bestie she's split in two, keep upphy_type_highβ a pointer to the higher part ofphy_typeβ¬οΈ the other half of the duo, main character energy fr fradv_link_speedβ the targeted link speeds bitmap π a bitmap, so think flags-in-a-big-number, iykyk
ngl the split into low/high is just how it's stored β the docs say "lower part" and "higher part," and we are not out here inventing extra lore π₯
β SEE ALSO β
the literal kernel file this lives in, first of all:
./drivers/net/ethernet/intel/ice/ice_ethtool.c
aaaaand the friend group π (yes this is a long list, yes you should still read it, the ice driver has a lot of functions and we respect the hustle):
ice_ethtool_get_maxspeed(9),ice_is_serdes_muxed(9),ice_get_port_topology(9),ice_get_tx_rx_equa(9),ice_get_extended_regs(9),ice_active_vfs(9)ice_link_test(9),ice_eeprom_test(9),ice_reg_pattern_test(9),ice_reg_test(9),ice_lbtest_prepare_rings(9),ice_lbtest_disable_rings(9),ice_lbtest_create_frame(9),ice_lbtest_check_frame(9),ice_diag_send(9),ice_lbtest_receive_frames(9),ice_loopback_test(9),ice_intr_test(9),ice_self_test(9)ice_set_fec_cfg(9),ice_set_fecparam(9),ice_get_fecparam(9),ice_nway_reset(9)ice_get_priv_flags(9),ice_set_priv_flags(9),ice_mask_min_supported_speeds(9),ice_linkmode_set_bit(9),ice_phy_type_to_ethtool(9)ice_get_settings_link_up(9),ice_get_settings_link_down(9),ice_get_link_ksettings(9),ice_speed_to_aq_link(9),ice_ksettings_find_adv_link_speed(9),ice_setup_autoneg(9),ice_set_link_ksettings(9)ice_set_rxnfc(9),ice_get_rx_ring_count(9),ice_get_rxnfc(9),ice_get_pauseparam(9),ice_set_pauseparam(9)ice_get_rxfh_key_size(9),ice_get_rxfh_indir_size(9),ice_get_rxfh(9),ice_set_rxfh(9)ice_get_combined_cnt(9),ice_get_channels(9),ice_get_valid_rss_size(9),ice_vsi_set_dflt_rss_lut(9),ice_set_channels(9)ice_get_wol(9),ice_set_wol(9)ice_get_rc_coalesce(9),ice_get_q_coalesce(9),__ice_get_coalesce(9),ice_set_rc_coalesce(9),ice_set_q_coalesce(9),ice_print_if_odd_usecs(9),__ice_set_coalesce(9)ice_get_module_info(9),ice_get_module_eeprom(9),ice_get_port_fec_stats(9),ice_get_fec_stats(9)ice_ethtool_reset(9),ice_repr_ethtool_reset(9),ice_set_ethtool_safe_mode_ops(9),ice_set_ethtool_repr_ops(9),ice_set_ethtool_ops(9)
literally the whole ethtool cinematic universe, and you got a front-row seat π
okay that's the page!! this one comes straight out of ./drivers/net/ethernet/intel/ice and it's dated October 2026, and yes, the header at the top and the ice_set_phy_type_from_speed(9) footer are both doing their little bookend thing π thanks for reading bestie, go set some phy types, you got this πβ¨
π¦ 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