phy_start_cable_test_tdr(9)
π phy_start_cable_test_tdr π
okay bestie, welcome to the Kernel API Manual, section 9 β sit down, grab a lil snack, we're doing cable diagnostics today π«Ά
β¨ NAME β¨
phy_start_cable_test_tdr β start a raw TDR cable test π
(TDR = time-domain reflectometry, iykyk β it's the thing that pings your cable and listens for the echo to find out where the boo-boo is π₯)
πΈ SYNOPSIS πΈ
int phy_start_cable_test_tdr (struct phy_device *phydev ,
struct netlink_ext_ack *extack ,
const struct phy_tdr_config *config );
it returns an int, so likeβ¦ vibe check the return value, bestie π
π¦ ARGUMENTS π¦
so there are literally three (3) things you gotta hand over:
phydevβ thephy_devicestruct π the main character, the PHY we're testing. no PHY, no test, no slay.extackβ thenetlink_ext_ackused for reporting useful error messages π so if it all goes sideways, this is how it tells you why it went sideways. very considerate of it ngl.configβ configuration of the test to run β it's aconst struct phy_tdr_config *, i.e. the settings that tell this test exactly how to behave. read-only, don't you dare touch.
π SEE ALSO π
kernel file ./drivers/net/phy/phy.c β and like, a truly iconic amount of friends. literally the whole PHY extended family came to the group chat π:
phy_print_status(9), phy_get_rate_matching(9), phy_config_interrupt(9), phy_restart_aneg(9), phy_aneg_done(9), phy_supported_speeds(9), phy_check_valid(9), phy_sanitize_settings(9), phy_mii_ioctl(9), phy_do_ioctl(9), phy_do_ioctl_running(9), __phy_hwtstamp_get(9), __phy_hwtstamp_set(9), phy_queue_state_machine(9), phy_trigger_machine(9), phy_ethtool_get_strings(9), phy_ethtool_get_sset_count(9), phy_ethtool_get_stats(9), __phy_ethtool_get_phy_stats(9), __phy_ethtool_get_link_ext_stats(9), phy_ethtool_get_plca_cfg(9), plca_check_valid(9), phy_ethtool_set_plca_cfg(9), phy_ethtool_get_plca_status(9), phy_start_cable_test(9), phy_check_link_status(9), phy_inband_caps(9), phy_config_inband(9), _phy_start_aneg(9), phy_start_aneg(9), phy_speed_down(9), phy_speed_up(9), phy_start_machine(9), phy_stop_machine(9), phy_error(9), phy_write_barrier(9), phy_disable_interrupts(9), phy_interrupt(9), phy_enable_interrupts(9), phy_update_stats(9), phy_request_interrupt(9), phy_free_interrupt(9), phy_get_next_update_time(9), phy_state_machine(9), phy_stop(9), phy_start(9), phy_mac_interrupt(9), phy_loopback(9), phy_eee_tx_clock_stop_capable(9), phy_eee_rx_clock_stop(9), phy_init_eee(9), phy_get_eee_err(9), phy_ethtool_get_eee(9), phy_ethtool_set_eee_noneg(9), phy_ethtool_set_eee(9), phy_ethtool_set_wol(9), phy_ethtool_get_wol(9), phy_ethtool_nway_reset(9)
like I said. whole family. no cap π§
and that's the page, bestie!! this one's from the kernel tree at ./drivers/net/phy, dated October 2026, and it lives in that Kernel API Manual energy forever π go forth and reflect on some cables π¦
π¦ 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