STRUCT ETHTOOL_RXFH_INDIR(9)
π¦ struct ethtool_rxfh_indir(9) β the kernel API manual, bestie edition π¦
Okay so this is a page from the Kernel API Manual (section 9, the kernel-flavored one), and honestly? It's a little struct with big main character energy. Let's get into it π
β¨ NAME β¨
struct ethtool_rxfh_indir β the command to get or set the RX flow hash indirection. Yep. That's the whole vibe. π
πΈ SYNOPSIS πΈ
struct ethtool_rxfh_indir {
__u32 cmd;
__u32 size;
__u32 ring_index[];
};
Look at her. Three members, one of them a flexible array. Iconic. β¨
π Members π
cmdβ the specific command number you're rolling with. It's eitherETHTOOL_GRXFHINDIR(the "get" girlie) orETHTOOL_SRXFHINDIR(the "set" girlie). Pick one, no cap. π«Άsizeβ okay so this one's a two-way street, pay attention:- on entry, it's the array size of the user buffer, and it may be zero π
- on return from
ETHTOOL_GRXFHINDIR, it becomes the array size of the hardware indirection table
ring_indexβ the RX ring/queue index for each hash value. One per hash value. That's the whole job. π
π₯ Description π₯
So for ETHTOOL_GRXFHINDIR, a size of zero means only the size should be returned β like, you're just asking "how big is it?" and the kernel tells you, that's it, nothing else, periodt. π
For ETHTOOL_SRXFHINDIR, a size of zero means the table gets reset to default values. Little reset button behavior. Cute!
β οΈ But bestie, listen β that last feature? The zero-size reset? It's not supported by the original implementations. So if you're out here on some vintage driver expecting it to work, it's giving delusion π. Don't say I didn't warn you.
π SEE ALSO π
The kernel file itself lives at ./include/uapi/linux/ethtool.h, and then there's this whole entourage of related pages β every single one, in order, because we don't skip anyone in this house π
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(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 page, bestie β no notes, no crumbs, we ate π β¨
π sign-off time π β this little masterpiece comes from ./include/uapi/linux, dated October 2026, and it's filed under struct ethtool_rxfh_indir(9). Go forth and hash your flows correctly, ily π«Άπ
π¦ 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