ENUM NF_TABLES_MSG_TYPES(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

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

okay so picture this: you're deep in the kernel API manual (that's the manual name, iykyk) and you hit this page. It's enum nf_tables_msg_types, and it's literally the guest list for every netlink message type nf_tables can send. Every create, every get, every delete, every destroy β€” all of them are here. Slay.


✨ NAME ✨

enum nf_tables_msg_types β€” the nf_tables netlink message types, like, all of them πŸ’–


πŸ¦‹ SYNOPSIS πŸ¦‹

enum nf_tables_msg_types {
    NFT_MSG_NEWTABLE ,
    NFT_MSG_GETTABLE ,
    NFT_MSG_DELTABLE ,
    NFT_MSG_NEWCHAIN ,
    NFT_MSG_GETCHAIN ,
    NFT_MSG_DELCHAIN ,
    NFT_MSG_NEWRULE ,
    NFT_MSG_GETRULE ,
    NFT_MSG_DELRULE ,
    NFT_MSG_NEWSET ,
    NFT_MSG_GETSET ,
    NFT_MSG_DELSET ,
    NFT_MSG_NEWSETELEM ,
    NFT_MSG_GETSETELEM ,
    NFT_MSG_DELSETELEM ,
    NFT_MSG_NEWGEN ,
    NFT_MSG_GETGEN ,
    NFT_MSG_TRACE ,
    NFT_MSG_NEWOBJ ,
    NFT_MSG_GETOBJ ,
    NFT_MSG_DELOBJ ,
    NFT_MSG_GETOBJ_RESET ,
    NFT_MSG_NEWFLOWTABLE ,
    NFT_MSG_GETFLOWTABLE ,
    NFT_MSG_DELFLOWTABLE ,
    NFT_MSG_GETRULE_RESET ,
    NFT_MSG_DESTROYTABLE ,
    NFT_MSG_DESTROYCHAIN ,
    NFT_MSG_DESTROYRULE ,
    NFT_MSG_DESTROYSET ,
    NFT_MSG_DESTROYSETELEM ,
    NFT_MSG_DESTROYOBJ ,
    NFT_MSG_DESTROYFLOWTABLE ,
    NFT_MSG_GETSETELEM_RESET ,
    NFT_MSG_MAX

};

πŸŽ€ Constants πŸŽ€

okay, here's the roll call β€” one bullet per constant, no skipping, that's the rule πŸ‘‘

  • NFT_MSG_NEWTABLE β€” create a new table (enum nft_table_attributes)
  • NFT_MSG_GETTABLE β€” get a table (enum nft_table_attributes)
  • NFT_MSG_DELTABLE β€” delete a table (enum nft_table_attributes)
  • NFT_MSG_NEWCHAIN β€” create a new chain (enum nft_chain_attributes)
  • NFT_MSG_GETCHAIN β€” get a chain (enum nft_chain_attributes)
  • NFT_MSG_DELCHAIN β€” delete a chain (enum nft_chain_attributes)
  • NFT_MSG_NEWRULE β€” create a new rule (enum nft_rule_attributes)
  • NFT_MSG_GETRULE β€” get a rule (enum nft_rule_attributes)
  • NFT_MSG_DELRULE β€” delete a rule (enum nft_rule_attributes)
  • NFT_MSG_NEWSET β€” create a new set (enum nft_set_attributes)
  • NFT_MSG_GETSET β€” get a set (enum nft_set_attributes)
  • NFT_MSG_DELSET β€” delete a set (enum nft_set_attributes)
  • NFT_MSG_NEWSETELEM β€” create a new set element (enum nft_set_elem_attributes)
  • NFT_MSG_GETSETELEM β€” get a set element (enum nft_set_elem_attributes)
  • NFT_MSG_DELSETELEM β€” delete a set element (enum nft_set_elem_attributes)
  • NFT_MSG_NEWGEN β€” announce a new generation, only for events (enum nft_gen_attributes)
  • NFT_MSG_GETGEN β€” get the rule-set generation (enum nft_gen_attributes)
  • NFT_MSG_TRACE β€” trace event (enum nft_trace_attributes)
  • NFT_MSG_NEWOBJ β€” create a stateful object (enum nft_obj_attributes)
  • NFT_MSG_GETOBJ β€” get a stateful object (enum nft_obj_attributes)
  • NFT_MSG_DELOBJ β€” delete a stateful object (enum nft_obj_attributes)
  • NFT_MSG_GETOBJ_RESET β€” get and reset a stateful object (enum nft_obj_attributes)
  • NFT_MSG_NEWFLOWTABLE β€” add new flow table (enum nft_flowtable_attributes)
  • NFT_MSG_GETFLOWTABLE β€” get flow table (enum nft_flowtable_attributes)
  • NFT_MSG_DELFLOWTABLE β€” delete flow table (enum nft_flowtable_attributes)
  • NFT_MSG_GETRULE_RESET β€” get rules and reset stateful expressions (enum nft_obj_attributes)
  • NFT_MSG_DESTROYTABLE β€” destroy a table (enum nft_table_attributes)
  • NFT_MSG_DESTROYCHAIN β€” destroy a chain (enum nft_chain_attributes)
  • NFT_MSG_DESTROYRULE β€” destroy a rule (enum nft_rule_attributes)
  • NFT_MSG_DESTROYSET β€” destroy a set (enum nft_set_attributes)
  • NFT_MSG_DESTROYSETELEM β€” destroy a set element (enum nft_set_elem_attributes)
  • NFT_MSG_DESTROYOBJ β€” destroy a stateful object (enum nft_object_attributes)
  • NFT_MSG_DESTROYFLOWTABLE β€” destroy flow table (enum nft_flowtable_attributes)
  • NFT_MSG_GETSETELEM_RESET β€” get set elements and reset attached stateful expressions (enum nft_set_elem_attributes)
  • NFT_MSG_MAX β€” -- undescribed -- (yeah, the source literally says that, no cap πŸ™ˆ)
ngl the GET*_RESET ones are doing the most β€” get and reset in one message? main character energy fr fr.

🌈 SEE ALSO 🌈

Kernel file ./include/uapi/linux/netfilter/nf_tables.h, plus this absolute wall of enum friends β€” every single one, in order, because I would never do you dirty like that 🫢:

enum nft_registers(9), enum nft_verdicts(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_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)


and that's the whole page, bestie β€” you ate that πŸ’…βœ¨

so yeah, this lil cutie lives at ./include/uapi/linux/netfilter and the version/date stamp on it is October 2026. go forth and packet-filter, ily πŸŽ€πŸ¦‹πŸ’œ

πŸ“¦ where this page comes from