ENUM PHY_UPSTREAM(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 enum phy_upstream(9) β€” the Kernel API Manual, bestie edition πŸ’…

okay so welcome to the enum phy_upstream(9) page ✨ this is from the Kernel API Manual, and it's honestly such a little cutie of a page. small. focused. iconic. let's get into it 🫢


πŸ’– NAME πŸ’–

enum phy_upstream β€” this one literally tells you which upstream component a given PHY device is plugged into πŸ¦‹ like, what's on the other end of the MII bus? that's the whole vibe check.

so most PHYs? they're attached to an Ethernet MAC controller, no surprises there. but sometimes πŸ‘€ there's an intermediate PHY doing media-converter duty, and that one drives another MII interface as its output. it's giving middle-manager energy fr fr πŸ’€


✨ SYNOPSIS ✨

enum phy_upstream {
    PHY_UPSTREAM_MAC ,
    PHY_UPSTREAM_PHY

};

look at those two constants. beautiful. no notes. πŸŽ€


🌈 Constants 🌈

πŸ’œ PHY_UPSTREAM_MAC

the upstream component is a MAC β€” as in a switch port, or an ethernet controller 🌸 classic. the standard setup. main character energy.

🧚 PHY_UPSTREAM_PHY

the upstream component is a PHY β€” likely a media converter πŸ’« so it's a PHY talking to a PHY, which lowkey sounds like a group chat with two of the same person but okay, it makes sense here i promise.


πŸ”₯ SEE ALSO πŸ”₯

okay bestie this list is long β€” like, longer than my skincare routine β€” but every single one of these is part of the family so we're listing all of them, no skipping, periodt πŸ‘‘

  • struct ethtool_cmd(9)
  • struct ethtool_drvinfo(9)
  • struct ethtool_wolinfo(9)
  • struct ethtool_regs(9)
  • struct ethtool_eeprom(9)
  • struct ethtool_eee(9)
  • struct ethtool_modinfo(9)
  • struct ethtool_coalesce(9)
  • struct ethtool_ringparam(9)
  • struct ethtool_channels(9)
  • struct ethtool_pauseparam(9)
  • enum ethtool_stringset(9)
  • enum ethtool_mac_stats_src(9)
  • enum ethtool_module_power_mode_policy(9)
  • enum ethtool_module_power_mode(9)
  • enum ethtool_c33_pse_ext_state(9)
  • enum ethtool_c33_pse_ext_substate_mr_mps_valid(9)
  • enum ethtool_c33_pse_ext_substate_error_condition(9)
  • enum ethtool_c33_pse_ext_substate_mr_pse_enable(9)
  • enum ethtool_c33_pse_ext_substate_option_detect_ted(9)
  • enum ethtool_c33_pse_ext_substate_option_vport_lim(9)
  • enum ethtool_c33_pse_ext_substate_ovld_detected(9)
  • enum ethtool_c33_pse_ext_substate_power_not_available(9)
  • enum ethtool_c33_pse_ext_substate_short_detected(9)
  • enum ethtool_pse_types(9)
  • enum ethtool_c33_pse_admin_state(9)
  • enum ethtool_c33_pse_pw_d_status(9)
  • enum ethtool_podl_pse_admin_state(9)
  • enum ethtool_podl_pse_pw_d_status(9)
  • enum ethtool_mm_verify_status(9)
  • enum ethtool_module_fw_flash_status(9)
  • struct ethtool_gstrings(9)
  • struct ethtool_sset_info(9)
  • enum ethtool_test_flags(9)
  • struct ethtool_test(9)
  • struct ethtool_stats(9)
  • struct ethtool_perm_addr(9)
  • struct ethtool_tcpip4_spec(9)
  • struct ethtool_ah_espip4_spec(9)
  • struct ethtool_usrip4_spec(9)
  • struct ethtool_tcpip6_spec(9)
  • struct ethtool_ah_espip6_spec(9)
  • struct ethtool_usrip6_spec(9)
  • struct ethtool_flow_ext(9)
  • struct ethtool_rx_flow_spec(9)
  • struct ethtool_rxnfc(9)
  • struct ethtool_rxfh_indir(9)
  • struct ethtool_rxfh(9)
  • struct ethtool_rx_ntuple_flow_spec(9)
  • struct ethtool_rx_ntuple(9)
  • struct ethtool_dump(9)
  • struct ethtool_get_features_block(9)
  • struct ethtool_gfeatures(9)
  • struct ethtool_set_features_block(9)
  • struct ethtool_sfeatures(9)
  • struct ethtool_ts_info(9)
  • struct ethtool_per_queue_op(9)
  • struct ethtool_fecparam(9)
  • enum ethtool_fec_config_bits(9)
  • struct ethtool_link_settings(9)

see? told you. sixty of them. ate and left no crumbs πŸ“


ngl there's no danger zone on this page, no deprecated stuff, no "undefined behaviour" jumpscare β€” it's just a tidy little enum and its two constants. a wholesome read. love that for us πŸŽ€

and that's the whole page!! you understood it, i'm so proud πŸ˜­πŸ’– this one lives in the kernel file ./include/uapi/linux, dated October 2026, and it goes by enum phy_upstream(9) β€” mwah, see you in the next manpage bestie 🧚✨

πŸ“¦ where this page comes from