STRUCT KERNEL_ETHTOOL_RINGPARAM(9)
π struct kernel_ethtool_ringparam(9) β Kernel API Manual, bestie edition π
okay so picture this: you're deep in the Kernel API Manual, right, and you hit struct kernel_ethtool_ringparam and you're like "what is this even for" β no worries, I got you. This struct is literally the whole RX/TX ring configuration vibe. every knob you'd wanna twist on your rings lives here and she's iconic for it. β¨
πΈ NAME πΈ
struct kernel_ethtool_ringparam β RX/TX ring configuration, aka the blueprint for how your rings are set up π¦
β¨ SYNOPSIS β¨
so here's the shape of her, exactly as she is, no edits, periodt:
struct kernel_ethtool_ringparam {
u32 rx_buf_len;
u8 tcp_data_split;
u8 tx_push;
u8 rx_push;
u32 cqe_size;
u32 tx_push_buf_len;
u32 tx_push_buf_max_len;
u32 hds_thresh;
u32 hds_thresh_max;
};
π Members π
okay bestie, member-by-member, let's go:
rx_buf_lenβ the current length of the buffers chilling on the rx ring. that's it, that's the field. πtcp_data_splitβ scatter packet headers and data into separate buffers. splitting the fit, honestly. π«Άtx_pushβ the flag of tx push mode. it's giving "push it, push it". π₯rx_pushβ the flag of rx push mode. matching energy, we love a duo. πcqe_sizeβ size of the TX/RX completion queue event. sizes matter, iykyk. βtx_push_buf_lenβ size of the TX push buffer. how much room she's got. πtx_push_buf_max_lenβ maximum allowed size of the TX push buffer. the ceiling, the limit, the "don't even try it". π¦hds_threshβ packet size threshold for header data split (HDS). crossing this line = split time. πhds_thresh_maxβ maximum supported setting forhds_threshold. the absolute most, no cap. π
π§ SEE ALSO π§
the whole friend group, fr fr β go say hi:
- the Kernel file
./include/linux/ethtool.h enum ethtool_phys_id_state(9)enum ethtool_supported_ring_param(9)ethtool_rxfh_indir_default(9)struct ethtool_rxfh_context(9)ethtool_link_ksettings_zero_link_mode(9)ethtool_link_ksettings_add_link_mode(9)ethtool_link_ksettings_del_link_mode(9)ethtool_link_ksettings_test_link_mode(9)ethtool_intersect_link_masks(9)struct ethtool_phy_stats(9)struct ethtool_pause_stats(9)struct ethtool_fec_hist_range(9)struct ethtool_fec_stats(9)struct ethtool_rmon_hist_range(9)struct ethtool_rmon_stats(9)struct ethtool_ts_stats(9)struct ethtool_module_eeprom(9)struct ethtool_module_power_mode_params(9)struct ethtool_mm_state(9)struct ethtool_mm_cfg(9)struct ethtool_mm_stats(9)struct ethtool_mmsv_ops(9)struct ethtool_mmsv(9)struct ethtool_rxfh_param(9)struct ethtool_rxfh_fields(9)struct kernel_ethtool_ts_info(9)struct ethtool_ops(9)struct ethtool_netdev_state(9)struct ethtool_phy_ops(9)ethtool_set_ethtool_phy_ops(9)ethtool_params_from_link_mode(9)ethtool_get_phc_vclocks(9)ethtool_mm_frag_size_add_to_min(9)ethtool_mm_frag_size_min_to_add(9)ethtool_get_ts_info_by_layer(9)ethtool_sprintf(9)ethtool_puts(9)ethtool_cpy(9)
and that's the whole page, bestie β you ate that π β¨
little sign-off for the girlies who read the fine print: this one lives in ./include/linux, and she's dated October 2026. mwah, go configure some rings ππ
π¦ 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