STRUCT ETHTOOL_RXFH_CONTEXT(9)
β¨ struct ethtool_rxfh_context(9) β¨
okay so bestie, this is a page straight out of the Kernel API Manual, section 9, and it's all about struct ethtool_rxfh_context β literally the little config blob that holds a custom RSS context configuration. if you've ever wanted to tell your NIC "no babe, I pick the indirection table", this is the struct you'd be gossiping with π
π NAME π
struct ethtool_rxfh_context β a custom RSS context configuration π¦
πΈ SYNOPSIS πΈ
here's the whole glow-up, verbatim, no edits, she's perfect:
struct ethtool_rxfh_context {
u32 indir_size;
u32 key_size;
u32 indir_user_size;
u16 priv_size;
u8 hfunc;
u8 input_xfrm;
u8 indir_configured:1;
u8 key_configured:1;
};
π MEMBERS π
okay let's meet the cast, one by one, no skipping, they all matter:
indir_sizeβ the number ofu32entries in the indirection table. that's it, that's the count π’key_sizeβ size of the hash key, in bytes. measured in bytes, not vibes ποΈindir_user_sizeβ the number of user-provided entries for the indirection table. lowkey important, that "user provided" part is doing work πpriv_sizeβ size of the driver private data, in bytes. driver's own little stash πhfuncβ the RSS hash function identifier. it's one of theETH_RSS_HASH_*values, periodt πinput_xfrmβ defines how the input data is transformed. valid values are one ofRXH_XFRM_*πindir_configuredβ indir has been specified (at create time or subsequently). note she's au8 indir_configured:1;bitfield bestie, one whole bit of truth π«Άkey_configuredβ hkey has been specified (at create time or subsequently). also au8 key_configured:1;bitfield, also one bit, also not playing games β
ngl, those last two are giving "did you actually fill this in or are we lying to ourselves" energy β they only track whether it was specified, at create time or subsequently. that's the whole claim, don't read more into it π
π₯ SEE ALSO π₯
the friend group is large, so buckle up. first, the source file herself: Kernel file ./include/linux/ethtool.h. then:
enum ethtool_phys_id_state(9)struct kernel_ethtool_ringparam(9)enum ethtool_supported_ring_param(9)ethtool_rxfh_indir_default(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)
like I said. huge friend group. all of them ate tho π
and that's the whole page, bestie β no crumbs left behind π this cutie lives in ./include/linux, and this particular edition is dated October 2026, filed under struct ethtool_rxfh_context(9). go forth and configure your RSS context with main character energy πβ¨
π¦ 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