ice_link_test(9)
π ice_link_test(9) β the kernel API manual, but make it make sense π
okay so this is ice_link_test(9), from the Kernel API Manual, and honestly? she's a lil function with one job and she does it. let's get into it bestie β¨
πΈ NAME πΈ
ice_link_test β perform a link test on a given net_device
no cap, that's the whole thing. she's a link test. on a net_device. iconic behaviour tbh π
π¦ SYNOPSIS π¦
u64 ice_link_test (struct net_device *netdev );
that's it. one argument. one u64 coming back atcha. copy it exactly like that, spaces and all, because we do not mess with signatures π
β ARGUMENTS β
netdevβ the network interface device structure π«Ά literally the thing she's gonna poke at
β¨ DESCRIPTION β¨
so here's the tea: this function performs one of the self-tests required by ethtool. that's it, that's the vibe. one of the required ones, not a bonus round, not a side quest β required. π₯
and the returns?
- Returns
0on success π slay - Returns non-zero on failure π not slay, but at least you know
like, the contract is genuinely that simple and honestly? we love a low-maintenance function. no hidden agendas. no surprises. just a link test doing link test things. periodt π
real talk though: she returns au64, and0means good, non-zero means bad. don't go flipping that in your head, bestie, it will ruin your whole afternoon π
π SEE ALSO π
okay this is the part where the manpage just. keeps. going. like a group chat at 2am. but every single one of these deserves their shoutout so buckle up π
first, the source file herself:
- Kernel file
./drivers/net/ethernet/intel/ice/ice_ethtool.c
and then the whole extended friend group, in exactly the order they were introduced:
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_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_phy_type_from_speed(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)
not me listing every single one π but that's the assignment and we don't skip the boring parts in this house π also note __ice_get_coalesce(9) and __ice_set_coalesce(9) have the double underscore β those are the introverted versions, don't @ me, just copy them right π
π and that's the whole page, bestie π
cute lil sign-off time: this one lives in ./drivers/net/ethernet/intel/ice, dated October 2026, and it goes by ice_link_test(9). mwah π go forth and link test responsibly π§ββοΈπΈ
π¦ 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