STRUCT ETHTOOL_RINGPARAM(9)
π struct ethtool_ringparam β RX/TX ring parameters (kernel API manual, bestie edition) β¨
Okay so this one is from the Kernel API Manual, and it's genuinely one of the cuter little structs in ./include/uapi/linux/ethtool.h β it's all about rings, which sounds like jewelry π but is actually about how many entries your RX and TX rings can hold. No cap. Let's get into it.
πΈ SYNOPSIS πΈ
struct ethtool_ringparam {
__u32 cmd;
__u32 rx_max_pending;
__u32 rx_mini_max_pending;
__u32 rx_jumbo_max_pending;
__u32 tx_max_pending;
__u32 rx_pending;
__u32 rx_mini_pending;
__u32 rx_jumbo_pending;
__u32 tx_pending;
};
Like, there it is. Iconic. Nine __u32 fields, all lined up, all serving their purpose. π
π Members π
cmdβ the command number. It's literallyETHTOOL_GRINGPARAMorETHTOOL_SRINGPARAM. Get it? G for get, S for set. Main character energy.rx_max_pendingβ the max number of pending entries per RX ring that the thing can actually support. Read-only, so don't even try to write to it, bestie. πrx_mini_max_pendingβ same deal, but for the RX mini ring. Max supported pending entries. Read-only.rx_jumbo_max_pendingβ and again, but this time for the RX jumbo ring. Max supported pending entries. Read-only.tx_max_pendingβ max supported pending entries per TX ring. Yep, you guessed it: Read-only. π«Άrx_pendingβ the current maximum number of pending entries per RX ring. This one's not read-only, so it's giving "you can actually touch this."rx_mini_pendingβ current maximum pending entries per RX mini ring.rx_jumbo_pendingβ current maximum pending entries per RX jumbo ring.tx_pendingβ the current maximum supported number of pending entries per TX ring. Note the vibe: "supported" is in there for TX, it's just how the original says it. Not me making that up. π
π¦ Description π¦
So here's the tea π: if the interface doesn't have separate RX mini rings and/or jumbo rings, then rx_mini_max_pending and/or rx_jumbo_max_pending are just gonna be 0. Like, empty. Nada. Not every NIC is blessed with those.
β οΈ Also lowkey important: there may be driver-dependent minimum values for the number of entries per ring. So the "max" fields don't mean every value under them is chill β your driver gets a say and it might have β¨boundariesβ¨.
π₯ SEE ALSO π₯
Kernel file ./include/uapi/linux/ethtool.h, plus this whole extended universe of friends:
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_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), enum phy_upstream(9)
That's the whole group chat, fr fr. π
Okay that's the page!! This one lives at ./include/uapi/linux and it's dated October 2026 β yes, we're reading the future, slay. Go forth and configure your rings responsibly, bestie. π§β¨
π¦ 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