STRUCT ETHTOOL_USRIP6_SPEC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ struct ethtool_usrip6_spec β€” general flow specification for IPv6 ✨

okay bestie, so this is a page straight out of the Kernel API Manual (yes, the real one, struct ethtool_usrip6_spec(9)), and it's genuinely just a lil struct that describes an IPv6 flow πŸ’–. That's it. That's the whole vibe. But like… it matters, so let's go 🫢


✨ NAME ✨

struct ethtool_usrip6_spec β€” general flow specification for IPv6 🌈


πŸŽ€ SYNOPSIS πŸŽ€

struct ethtool_usrip6_spec {
    __be32 ip6src[4];
    __be32 ip6dst[4];
    __be32 l4_4_bytes;
    __u8 tclass;
    __u8 l4_proto;
 };

(watch the little stray space before the closing brace β€” that's literally how the original has it, so we keep it, no cap πŸ’…)


πŸ‘‘ Members πŸ‘‘

here's the cast, the main characters of this struct, one by one 🎬

  • ip6src β€” Source host 🌸 like, where the packet is coming from.
  • ip6dst β€” Destination host 🎯 where it's going.
  • l4_4_bytes β€” First 4 bytes of transport (layer 4) header πŸ”₯ just the opening four bytes of the L4 header, nothing more.
  • tclass β€” Traffic Class ⭐ the traffic class field, as advertised.
  • l4_proto β€” Transport protocol number (nexthdr after any Extension Headers) πŸ¦‹ so if there's extension headers hanging around, this is the value after all of them β€” the real nexthdr.
ngl these field names are giving "I memorized the whole header layout" energy, and honestly? iconic πŸ’€

πŸ’œ SEE ALSO πŸ’œ

and now the friendship bracelet of cross-references, bestie β€” every single one, strapped together πŸ’– It all lives in the kernel file ./include/uapi/linux/ethtool.h:

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_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)

like, that's the whole extended friend group, go say hi πŸ’…


🧚 tiny sign-off before you go: this beauty is filed under ./include/uapi/linux, dated October 2026, and the manual page id is struct ethtool_usrip6_spec(9) β€” go read the neighbors, they're all in the SEE ALSO list anyway πŸ˜­πŸ’–

slay, you now understand IPv6 flow specs. periodt. πŸ”₯πŸ‘‘

πŸ“¦ where this page comes from