STRUCT ETHTOOL_USRIP6_SPEC(9)
π¦ 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 realnexthdr.
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 isstruct 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
- 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