STRUCT MXL862XX_XPCS_PCS_STATE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct mxl862xx_xpcs_pcs_state(9) β€” a Kernel API Manual moment

okay bestie, welcome to the Kernel API Manual, and today's main character is struct mxl862xx_xpcs_pcs_state β€” literally the PCS link state struct. it's giving "small struct, big job" energy and we're obsessed πŸŽ€


✨ NAME ✨

struct mxl862xx_xpcs_pcs_state β€” PCS link state. yep, that's it, that's the whole vibe. no cap.


✨ SYNOPSIS ✨

struct mxl862xx_xpcs_pcs_state {
    __le32 mode;
    __le16 speed;
    union mxl862xx_xpcs_an_word lpa;
 };

three fields. compact. iconic. let's get into it πŸ”₯


✨ Members ✨

  • mode β€” the multitasker of the group fr fr. it's packed input parameters and firmware status all in one, see MXL862XX_XPCS_ST_*. here's the split, bestie: the host writes port_id (the XPCS port index, 0-3), interface (MXL862XX_XPCS_IF_*), usx_lane_mode (MXL862XX_XPCS_USX_*) and usx_subport (0-3). then the firmware fills in link, an_complete, duplex (MXL862XX_XPCS_DUPLEX_*), pcs_fault, pause (bit 0 symmetric, bit 1 asymmetric), lp_eee_cap and lp_eee_cs_cap. so it's like a two-way group chat: you send, firmware replies πŸ’œ
  • speed β€” resolved speed in Mbit/s. it's an output, so it comes back to you, not the other way around πŸ¦‹
  • lpa β€” the Link partner ability word, also an output. same union as union mxl862xx_xpcs_an_word, and the host picks the member based on the interface field. iykyk 🌸

✨ SEE ALSO ✨

okay this is the part where the manpage goes full "let me introduce you to my entire friend group" 😭 and we're not skipping a single one, because every single reference matters:

in the kernel file ./drivers/net/dsa/mxl862xx/mxl862xx-api.h you'll find:

  • struct mdio_relay_data(9)
  • struct mxl862xx_register_mod(9)
  • enum mxl862xx_mac_table_filter(9)
  • struct mxl862xx_mac_table_add(9)
  • struct mxl862xx_mac_table_remove(9)
  • struct mxl862xx_mac_table_read(9)
  • struct mxl862xx_mac_table_query(9)
  • enum mxl862xx_mac_clear_type(9)
  • struct mxl862xx_mac_table_clear(9)
  • enum mxl862xx_age_timer(9)
  • struct mxl862xx_bridge_alloc(9)
  • enum mxl862xx_bridge_config_mask(9)
  • enum mxl862xx_bridge_port_egress_meter(9)
  • struct mxl862xx_qos_meter_cfg(9)
  • enum mxl862xx_bridge_forward_mode(9)
  • struct mxl862xx_bridge_config(9)
  • struct mxl862xx_bridge_port_alloc(9)
  • enum mxl862xx_bridge_port_config_mask(9)
  • enum mxl862xx_color_marking_mode(9)
  • enum mxl862xx_color_remarking_mode(9)
  • enum mxl862xx_pmapper_mapping_mode(9)
  • struct mxl862xx_pmapper(9)
  • struct mxl862xx_bridge_port_config(9)
  • struct mxl862xx_cfg(9)
  • enum mxl862xx_extended_vlan_filter_type(9)
  • enum mxl862xx_extended_vlan_filter_tpid(9)
  • enum mxl862xx_extended_vlan_filter_dei(9)
  • enum mxl862xx_extended_vlan_treatment_remove_tag(9)
  • enum mxl862xx_extended_vlan_treatment_priority(9)
  • enum mxl862xx_extended_vlan_treatment_vid(9)
  • enum mxl862xx_extended_vlan_treatment_tpid(9)
  • enum mxl862xx_extended_vlan_treatment_dei(9)
  • enum mxl862xx_extended_vlan_4_tpid_mode(9)
  • enum mxl862xx_extended_vlan_filter_ethertype(9)
  • struct mxl862xx_extendedvlan_filter_vlan(9)
  • struct mxl862xx_extendedvlan_filter(9)
  • struct mxl862xx_extendedvlan_treatment_vlan(9)
  • struct mxl862xx_extendedvlan_treatment(9)
  • struct mxl862xx_extendedvlan_alloc(9)
  • struct mxl862xx_extendedvlan_config(9)
  • enum mxl862xx_vlan_filter_tci_mask(9)
  • struct mxl862xx_vlanfilter_alloc(9)
  • struct mxl862xx_vlanfilter_config(9)
  • enum mxl862xx_ss_sp_tag_mask(9)
  • enum mxl862xx_ss_sp_tag_rx(9)
  • enum mxl862xx_ss_sp_tag_tx(9)
  • enum mxl862xx_ss_sp_tag_rx_pen(9)
  • struct mxl862xx_ss_sp_tag(9)
  • enum mxl862xx_logical_port_mode(9)
  • struct mxl862xx_ctp_port_assignment(9)
  • enum mxl862xx_stp_port_state(9)
  • struct mxl862xx_stp_port_cfg(9)
  • struct mxl862xx_sys_fw_image_version(9)
  • enum mxl862xx_port_type(9)
  • enum mxl862xx_rmon_port_type(9)
  • struct mxl862xx_rmon_port_cnt(9)
  • union mxl862xx_xpcs_an_word(9)
  • enum mxl862xx_xpcs_loopback_mode(9)
  • struct mxl862xx_xpcs_pcs_cfg(9)
  • struct mxl862xx_xpcs_pcs_disable(9)
  • struct mxl862xx_xpcs_an_restart(9)
  • struct mxl862xx_xpcs_pcs_link_up(9)

that's the whole squad, no one left behind 🫢


lowkey a reminder that mode is doing double duty β€” host writes some fields in, firmware writes others back. don't get it twisted πŸ’€

that's the page bestie, go forth and slay your PCS link state πŸ’–

signed, sealed, delivered: source ./drivers/net/dsa/mxl862xx, dated October 2026, and yeah β€” it's still struct mxl862xx_xpcs_pcs_state(9) at the end of the day. periodt. πŸ‘‘β­

πŸ“¦ where this page comes from