ENUM NFT_OBJECT_ATTRIBUTES(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… enum nft_object_attributes(9) β€” from the Kernel API Manual, bestie

okay so this is a whole page about enum nft_object_attributes, which is the enum holding the netlink attributes for nf_tables stateful objects. and yes, that's a mouthful, but like… it's literally just the little labeled slots you use to pass object info over netlink. iconic plumbing tbh 🫢


✨ NAME ✨

enum nft_object_attributes β€” nf_tables stateful object netlink attributes. that's it, that's the vibe. πŸ’…


🌸 SYNOPSIS 🌸

here's the whole squad, in order, no cap:

enum nft_object_attributes {
    NFTA_OBJ_UNSPEC ,
    NFTA_OBJ_TABLE ,
    NFTA_OBJ_NAME ,
    NFTA_OBJ_TYPE ,
    NFTA_OBJ_DATA ,
    NFTA_OBJ_USE ,
    NFTA_OBJ_HANDLE ,
    NFTA_OBJ_PAD ,
    NFTA_OBJ_USERDATA ,
    __NFTA_OBJ_MAX

};

πŸŽ€ CONSTANTS πŸŽ€

every member gets its moment, ok:

  • NFTA_OBJ_UNSPEC β€” literally no description in the source 🫠 it's giving mystery. that's all the docs say.
  • NFTA_OBJ_TABLE β€” the name of the table that contains the expression (NLA_STRING). where the whole thing lives, basically.
  • NFTA_OBJ_NAME β€” the name of this expression type (NLA_STRING). yes, "expression type", that's what it says, don't come for me 🐝
  • NFTA_OBJ_TYPE β€” stateful object type (NLA_U32). what kind of object we're being.
  • NFTA_OBJ_DATA β€” stateful object data (NLA_NESTED). the actual payload, all nested up.
  • NFTA_OBJ_USE β€” number of references to this expression (NLA_U32). how many besties are pointing at it πŸ‘―β€β™€οΈ
  • NFTA_OBJ_HANDLE β€” object handle (NLA_U64). a whole 64 bits of handle, slay.
  • NFTA_OBJ_PAD β€” again, "-- undescribed --" πŸ’€ padding doing padding things, no further lore available.
  • NFTA_OBJ_USERDATA β€” user data (NLA_BINARY). your own little binary stash, do with it what you will.
  • __NFTA_OBJ_MAX β€” the last one, and also "-- undescribed --". it's the internal max marker, but the docs refuse to elaborate πŸ™ˆ

πŸ¦‹ SEE ALSO πŸ¦‹

so the kernel file this all comes from is ./include/uapi/linux/netfilter/nf_tables.h, and ngl the cross-reference list here is long. like, impressively long. but every single one of them is here because we don't skip anyone in this house 🫢

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_hash_attributes(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_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 I said. whole extended friend group. πŸ‘‘


🧚 quick vibe check: a couple of these members are literally marked -- undescribed -- in the source, so don't go asking me for more lore than exists. I'm not inventing canon.

πŸ’œ sign-off πŸ’œ

this beauty lives in ./include/uapi/linux/netfilter, dated October 2026, and its official government name is enum nft_object_attributes(9). go forth and nest your attributes correctly, bestie β€” you're gonna slay πŸ”₯✨

πŸ“¦ where this page comes from