STRUCT ETHTOOL_SSET_INFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

struct ethtool_sset_info β€” string set information, bestie ✨

Ok so real talk, this little struct lives in the Kernel API Manual (yes, the kernel one, we're fancy now πŸ‘‘) and it's literally just the vibe check for string sets. Keep reading, it slaps.


✨ SYNOPSIS ✨

struct ethtool_sset_info {
    __u32 cmd;
    __u32 reserved;
    __u64 sset_mask;
    __u32 data[];
 };

Look at her. Main character energy fr fr πŸ’…


πŸŽ€ MEMBERS πŸŽ€

  • cmd β€” the command number, and it's exactly ETHTOOL_GSSET_INFO. No notes, that's just her. πŸ’–
  • reserved β€” reserved for future use, so leave it alone, bestie πŸ™ˆ see the note on reserved space (iykyk).
  • sset_mask β€” okay this one's doing double duty and honestly? Iconic. On entry, it's a bitmask of the string sets you wanna query, with the bits numbered according to enum ethtool_stringset. On return, it's a bitmask of which of those queried string sets are actually supported. So she goes in asking questions and comes back with receipts. πŸ¦‹
  • data β€” the buffer for string set sizes. On return this holds the size of each string set that was queried and supported, in order of ID. Not me being thorough πŸ’€

🌸 EXAMPLE 🌸

So picture this: the user passes in sset_mask = 0x7 (that's sets 0, 1, 2 β€” a whole little trio 🫢) and on return sset_mask == 0x6 (sets 1, 2 β€” set 0 said "not today"). Then data[0] contains the size of set 1 and data[1] contains the size of set 2. Slay, the mask self-corrected. ✨

⚠️ Important, don't skip: users must allocate a buffer of the appropriate size (4 * number of sets queried) immediately following this structure. Immediately. Not three lines later, not "eh it's probably fine". Allocation is not a vibe, it's a requirement. 😭

πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file ./include/uapi/linux/ethtool.h

  • 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)
  • 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)
  • enum phy_upstream(9)

That's the whole group chat, go say hi πŸ‘‹


and that's the tea πŸ“ this little page came straight out of ./include/uapi/linux, dated October 2026, and it's filed under struct ethtool_sset_info(9). go read the source, ily, bye πŸ’œπŸ§š

πŸ“¦ where this page comes from