ENUM NFT_HASH_ATTRIBUTES(9)
π enum nft_hash_attributes(9) β Kernel API Manual β¨
okay bestie, so this is a Kernel API Manual page for <pink>enum nft_hash_attributes</pink> β literally the netlink attribute list for the nf_tables hash expression. It's giving "small enum, big responsibilities" π and ngl, once you know these ten-ish constants you're basically lowkey fluent in how nftables talks about hashing over netlink. iykyk π
πΈ NAME πΈ
enum nft_hash_attributes β the netlink attributes for the nf_tables hash expression. that's it, that's the whole vibe π¦
β¨ SYNOPSIS β¨
enum nft_hash_attributes {
NFTA_HASH_UNSPEC ,
NFTA_HASH_SREG ,
NFTA_HASH_DREG ,
NFTA_HASH_LEN ,
NFTA_HASH_MODULUS ,
NFTA_HASH_SEED ,
NFTA_HASH_OFFSET ,
NFTA_HASH_TYPE ,
NFTA_HASH_SET_NAME ,
NFTA_HASH_SET_ID ,
__NFTA_HASH_MAX
};
like, look at her go π«Ά β ten real members plus the bookends. copy this exactly, no cap, no renaming, no "fixing" the spacing π
π§ CONSTANTS π§
okay here's the roster, one by one, and yes i'm keeping every single one because that's the whole point bestie:
NFTA_HASH_UNSPECβ honestly?-- undescribed --. the manpage just leaves it blank π it's the unspecified placeholder, that's all we're told.NFTA_HASH_SREGβ source register, and the type isNLA_U32πNFTA_HASH_DREGβ destination register, typeNLA_U32β¨NFTA_HASH_LENβ source data length, typeNLA_U32πNFTA_HASH_MODULUSβ modulus value, typeNLA_U32πΈNFTA_HASH_SEEDβ seed value, typeNLA_U32πNFTA_HASH_OFFSETβ add this offset value to the hash result, typeNLA_U32π₯ (yes, "add this offset to your hash result" β that's the actual description, obsessed)NFTA_HASH_TYPEβ hash operation, typeNLA_U32: nft_hash_typesπNFTA_HASH_SET_NAMEβ name of the map to lookup, typeNLA_STRINGπNFTA_HASH_SET_IDβ id of the map, typeNLA_U32β__NFTA_HASH_MAXβ again,-- undescribed --. it's the internal sentinel-end-of-list situation, and the page does not elaborate, so neither will i π
lowkey important: thoseNLA_U32/NLA_STRINGbits in the parentheses are the attribute types, andNFTA_HASH_TYPEpoints atnft_hash_typesβ keep them exactly as written, fr fr π
π SEE ALSO π
the main character file itself lives at ./include/uapi/linux/netfilter/nf_tables.h β go read it, it's the source of truth β¨ and then there's the extended friend group, aka basically every other nf_tables enum existing. say hi π:
enum nft_registers(9),enum nft_verdicts(9),enum nf_tables_msg_types(9),enum nft_list_attributes(9)enum nft_hook_attributes(9),enum nft_table_flags(9),enum nft_table_attributes(9),enum nft_chain_attributes(9)enum nft_rule_attributes(9),enum nft_rule_compat_flags(9),enum nft_rule_compat_attributes(9),enum nft_set_flags(9)enum nft_set_policies(9),enum nft_set_desc_attributes(9),enum nft_set_field_attributes(9),enum nft_set_attributes(9)enum nft_set_elem_flags(9),enum nft_set_elem_attributes(9),enum nft_set_elem_list_attributes(9),enum nft_data_types(9)enum nft_data_attributes(9),enum nft_verdict_attributes(9),enum nft_expr_attributes(9),enum nft_immediate_attributes(9)enum nft_bitwise_ops(9),enum nft_bitwise_attributes(9),enum nft_byteorder_ops(9),enum nft_byteorder_attributes(9)enum nft_cmp_ops(9),enum nft_cmp_attributes(9),enum nft_range_ops(9),enum nft_range_attributes(9)enum nft_lookup_attributes(9),enum nft_dynset_attributes(9),enum nft_payload_bases(9),enum nft_payload_csum_types(9)enum nft_payload_attributes(9),enum nft_exthdr_op(9),enum nft_exthdr_attributes(9),enum nft_meta_keys(9)enum nft_rt_keys(9),enum nft_hash_types(9),enum nft_meta_attributes(9),enum nft_rt_attributes(9)enum nft_socket_attributes(9),enum nft_ct_keys(9),enum nft_ct_attributes(9),enum nft_offload_attributes(9)enum nft_limit_attributes(9),enum nft_connlimit_attributes(9),enum nft_counter_attributes(9),enum nft_last_attributes(9)enum nft_log_attributes(9),enum nft_log_level(9),enum nft_queue_attributes(9),enum nft_quota_attributes(9)enum nft_secmark_attributes(9),enum nft_reject_types(9),enum nft_reject_inet_code(9),enum nft_reject_attributes(9)enum nft_nat_types(9),enum nft_nat_attributes(9),enum nft_tproxy_attributes(9),enum nft_masq_attributes(9)enum nft_redir_attributes(9),enum nft_dup_attributes(9),enum nft_fwd_attributes(9),enum nft_objref_attributes(9)enum nft_gen_attributes(9),enum nft_object_attributes(9),enum nft_flowtable_flags(9),enum nft_flowtable_attributes(9)enum nft_flowtable_hook_attributes(9),enum nft_osf_attributes(9),enum nft_synproxy_attributes(9),enum nft_devices_attributes(9)enum nft_trace_attributes(9),enum nft_ng_attributes(9)
like... that's the whole netfilter friend group in one SEE ALSO section, iconic behavior honestly π
and that's the page bestie!! π«Ά source: ./include/uapi/linux/netfilter, dated October 2026 β mwah, go hash something responsibly πβ¨π
π¦ 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