STRUCT ETHTOOL_MM_STATE(9)
π¦ struct ethtool_mm_state(9) β 802.3 MAC merge layer state
okay so first things first, this whole page lives in the Kernel API Manual section 9, and the function/struct we're stanning today is struct ethtool_mm_state, which is literally just the state of the 802.3 MAC merge layer. that's it, that's the vibe. she's a struct, she holds state, she's iconic π
β¨ SYNOPSIS β¨
struct ethtool_mm_state {
u32 verify_time;
u32 max_verify_time;
enum ethtool_mm_verify_status verify_status;
bool tx_enabled;
bool tx_active;
bool pmac_enabled;
bool verify_enabled;
u32 tx_min_frag_size;
u32 rx_min_frag_size;
};
like. look at her. nine fields, all baddies, no filler π
πΈ Members πΈ
bestie get comfy, we're going field by field, no skips, no cap.
verify_timeβ the wait time between verification attempts, in ms. per clause 30.14.1.6aMACMergeVerifyTime. so like, how long you're gonna sit there before trying again β¨max_verify_timeβ the biggest value thatverify_timeis ever allowed to take in set requests. it's giving "know your limits" πverify_statusβ the current state of the verification state machine of the MM layer, per clause 30.14.1.2aMACMergeStatusVerify. main character energy fr.tx_enabledβ set if the MM layer is administratively enabled in the TX direction, per clause 30.14.1.3aMACMergeEnableTx. admin said yes πtx_activeβ set if the MM layer is actually enabled in the TX direction, which is what makes FP possible, per 30.14.1.5aMACMergeStatusTx. this one should be true if MM is enabled and the verification status is either verified or disabled. so like, enabled + (verified || disabled) = slay π«Άpmac_enabledβ set if the preemptible MAC is powered on and can receive preemptible packets and respond to verification frames. she's awake, she's responsive, she's booked and busy π₯verify_enabledβ set if the Verify function of the MM layer (the one that sends SMD-V verification requests) is administratively enabled, regardless of whether it's currently sitting in theETHTOOL_MM_VERIFY_STATUS_DISABLEDstate or not, per clause 30.14.1.4aMACMergeVerifyDisableTxβ but using positive rather than negative logic, because we're being nice about it π. also important: the device should always respond to received SMD-V requests as long aspmac_enabledis set. periodt.tx_min_frag_sizeβ the minimum size of non-final mPacket fragments that the link partner supports receiving, in octets. and here's the cute part: clause 30.14.1.7aMACMergeAddFragSizeexpresses this in the range 0 to 3, which needs a translation to the size in octets via the formula64 * (1 + addFragSize) - 4. but over here you can just specify a value in a continuous and unbounded range. no math trauma required πβ¨rx_min_frag_sizeβ the minimum size of non-final mPacket fragments that this device supports receiving, in octets. this is us. we support that π
π SEE ALSO π
Kernel file ./include/linux/ethtool.h, plus the whole extended friend group:
enum ethtool_phys_id_state(9)struct kernel_ethtool_ringparam(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_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 π this one ships out of ./include/linux and the date on it is October 2026 β go read it again if you need to, i'll wait. mwah πβ¨
π¦ 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