STRUCT ETHTOOL_CHANNELS(9)
π struct ethtool_channels(9) β the Kernel API Manual, but make it make sense
okay so bestie, welcome to the struct ethtool_channels(9) page π this is part of the Kernel API Manual and it's genuinely one of the cuter little structs β it's literally the vibe check for how many network channels your NIC is running. let's get into it π
β¨ NAME β¨
struct ethtool_channels β configuring number of network channel πΈ
no cap, that's the whole thing: you use this to say how many channels you want. channel queen energy π
π¦ SYNOPSIS π¦
here's the exact shape of it, character for character, don't @ me:
struct ethtool_channels {
__u32 cmd;
__u32 max_rx;
__u32 max_tx;
__u32 max_other;
__u32 max_combined;
__u32 rx_count;
__u32 tx_count;
__u32 other_count;
__u32 combined_count;
};
every field is a __u32. yes, all of them. consistent king behavior π
π§ Members π§
okay so these are the fields, one by one, and I'm telling you exactly what each one does:
cmdβ this isETHTOOL_{G,S}CHANNELS. that's the get-or-set switch, iykyk.Gfor get,Sfor set. π₯max_rxβ Read only. Maximum number of receive channel the driver support. so the driver tells you the ceiling and you do not exceed it. βmax_txβ Read only. Maximum number of transmit channel the driver support. same deal, but for transmit. β¨max_otherβ Read only. Maximum number of other channel the driver support. the mysterious "other" channels. main character energy honestly πmax_combinedβ Read only. Maximum number of combined channel the driver support. and btw this is a Set of queues RX, TX or other β combined channels do double duty π«Άrx_countβ Valid values are in the range1to themax_rx. πtx_countβ Valid values are in the range1to themax_tx. πother_countβ Valid values are in the range1to themax_other. πcombined_countβ Valid values are in the range1to themax_combined. π
so real talk: themax_*ones are the read-only ceilings the driver reports, and the*_countones are the values you're actually setting β and they gotta stay inside1to their matching max. that range is not a suggestion bestie π
π Description π
This can be used to configure RX, TX and other channels. like, that's it, that's the whole flex. you wanna tune how your network traffic gets spread across queues β RX, TX, or other β you're in the right struct. ate and left no crumbs π
π SEE ALSO π
bestie there are SO many siblings, I'm listing every single one because I would never do them dirty like that π₯Ί the kernel file is ./include/uapi/linux/ethtool.h, and here's the whole family:
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_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 squad, no gatekeeping πβ¨
and that's the page!! this one lives in ./include/uapi/linux and the version/date stamp on it is October 2026 β so yeah, shoutout to that directory and that date, they're iconic, periodt. go configure some channels bestie, you got this ππ¦
π¦ 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