ENUM NFT_NAT_TYPES(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… enum nft_nat_types(9) β€” ok bestie, let's talk NAT types

So you opened the Kernel API Manual page for enum nft_nat_types(9) and you're like "what is this, why is it two whole things" β€” don't worry, it's actually so small and it's giving main character energy for a two-member enum. This is the enum that tells the nf_tables nat expression which flavour of NAT you're doing. That's it. That's the whole vibe. ✨


🌸 NAME 🌸

enum nft_nat_types β€” literally the NAT types for the nf_tables nat expression. No cap, that's the entire job description. πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

enum nft_nat_types {
    NFT_NAT_SNAT ,
    NFT_NAT_DNAT

};

(Yes the spacing is a little quirky, she's iconic like that, we don't touch it. πŸ™ˆ)


✨ Constants ✨

Two constants. Two. That's the whole enum. Obsessed with the efficiency honestly.

  • NFT_NAT_SNAT β€” source NAT, i.e. the SNAT one, where you're rewriting the source side of things πŸ’–
  • NFT_NAT_DNAT β€” destination NAT, i.e. DNAT, where the destination gets rewritten instead 🫢

That's the list! Short king. πŸ‘‘


πŸ”₯ SEE ALSO πŸ”₯

First up, the actual home turf β€” this enum lives in the kernel file ./include/uapi/linux/netfilter/nf_tables.h. Go say hi to her. 🧚

And then bestie, brace yourself, because there is a whole friend group of (9) pages and they are all listed here, so let's get through them together, no skipping, fr fr:

  • 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_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 I said. Whole friend group. πŸ’€ But now you know them all by name, and honestly? Slay. 🌈


Okay real talk for one sec: these are the exact references the page gives you, so if you need the full lore on any of them, that's where you go β€” I'm not out here inventing extra ones, that would be lying and we don't do that. πŸ’œ

Mwah, that's the page! She ships from ./include/uapi/linux/netfilter, version vibes of October 2026 β€” go forth and NAT responsibly, bestie. πŸ“πŸ’…

πŸ“¦ where this page comes from