ENUM NFT_META_KEYS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

Bestie, this is enum nft_meta_keys(9) from the Kernel API Manual β€” the nf_tables meta expression keys enum. We’re about to go through every single key together, and yes, every detail is staying. No skips, no cap. πŸ’–

🌸 NAME 🌸

enum nft_meta_keys β€” nf_tables meta expression keys. That’s the whole name, and it’s giving β€œkernel enum but make it iconic.” ✨

✨ SYNOPSIS ✨

Okay so the enum literally looks like this, and we’re keeping it character-for-character:

       enum nft_meta_keys {
           NFT_META_LEN ,
           NFT_META_PROTOCOL ,
           NFT_META_PRIORITY ,
           NFT_META_MARK ,
           NFT_META_IIF ,
           NFT_META_OIF ,
           NFT_META_IIFNAME ,
           NFT_META_OIFNAME ,
           NFT_META_IFTYPE ,
           NFT_META_OIFTYPE ,
           NFT_META_SKUID ,
           NFT_META_SKGID ,
           NFT_META_NFTRACE ,
           NFT_META_RTCLASSID ,
           NFT_META_SECMARK ,
           NFT_META_NFPROTO ,
           NFT_META_L4PROTO ,
           NFT_META_BRI_IIFNAME ,
           NFT_META_BRI_OIFNAME ,
           NFT_META_PKTTYPE ,
           NFT_META_CPU ,
           NFT_META_IIFGROUP ,
           NFT_META_OIFGROUP ,
           NFT_META_CGROUP ,
           NFT_META_PRANDOM ,
           NFT_META_SECPATH ,
           NFT_META_IIFKIND ,
           NFT_META_OIFKIND ,
           NFT_META_BRI_IIFPVID ,
           NFT_META_BRI_IIFVPROTO ,
           NFT_META_TIME_NS ,
           NFT_META_TIME_DAY ,
           NFT_META_TIME_HOUR ,
           NFT_META_SDIF ,
           NFT_META_SDIFNAME ,
           NFT_META_BRI_BROUTE ,
           __NFT_META_IIFTYPE ,
           NFT_META_BRI_IIFHWADDR

       };

πŸ’… Constants πŸ’…

Here’s the full roster, one by one. Every key, every parenthetical, every β€œthis one’s invalid in OUTPUT” heads-up β€” all present and accounted for. 🫢

  • NFT_META_LEN β€” packet length, aka skb->len, the lil size check. πŸ’–
  • NFT_META_PROTOCOL β€” packet ethertype protocol, straight from skb->protocol; heads-up bestie, this one’s invalid in OUTPUT. 😭
  • NFT_META_PRIORITY β€” packet priority (skb->priority), the VIP pass. ✨
  • NFT_META_MARK β€” packet mark (skb->mark), the classic lil tag. πŸŽ€
  • NFT_META_IIF β€” packet input interface index (dev->ifindex), where it came in. πŸ¦‹
  • NFT_META_OIF β€” packet output interface index (dev->ifindex), where it’s headed. 🌸
  • NFT_META_IIFNAME β€” packet input interface name (dev->name), like a li’l name tag. πŸ’…
  • NFT_META_OIFNAME β€” packet output interface name (dev->name), same vibe, output side. 🫢
  • NFT_META_IFTYPE β€” -- undescribed --, and that’s literally all the source gives us. 🫠
  • NFT_META_OIFTYPE β€” packet output interface type (dev->type), the output interface’s whole genre. 😭
  • NFT_META_SKUID β€” originating socket UID (fsuid), the socket’s user ID moment. πŸ”₯
  • NFT_META_SKGID β€” originating socket GID (fsgid), the socket’s group ID moment. πŸ‘‘
  • NFT_META_NFTRACE β€” packet nftrace bit, the trace-y lil flag. 🌈
  • NFT_META_RTCLASSID β€” realm value of packet's route (skb->dst->tclassid), route realm realness. ⭐
  • NFT_META_SECMARK β€” packet secmark (skb->secmark), the security mark. πŸ’€
  • NFT_META_NFPROTO β€” netfilter protocol, no extra lore needed. πŸ™ˆ
  • NFT_META_L4PROTO β€” layer 4 protocol number, the L4 number itself. πŸ“
  • NFT_META_BRI_IIFNAME β€” packet input bridge interface name. 🧚
  • NFT_META_BRI_OIFNAME β€” packet output bridge interface name. πŸ’œ
  • NFT_META_PKTTYPE β€” packet type (skb->pkt_type), with special handling for loopback. πŸ‘€
  • NFT_META_CPU β€” cpu id through smp_processor_id, the CPU’s whole identity. πŸ’…
  • NFT_META_IIFGROUP β€” packet input interface group. πŸŽ€
  • NFT_META_OIFGROUP β€” packet output interface group. ✨
  • NFT_META_CGROUP β€” socket control group (skb->sk->sk_classid), cgroup coded. πŸ¦‹
  • NFT_META_PRANDOM β€” a 32bit pseudo-random number, chaotic lil icon. 🌸
  • NFT_META_SECPATH β€” boolean, secpath_exists (!!skb->sp), yes that’s the whole note. 🫢
  • NFT_META_IIFKIND β€” packet input interface kind name (dev->rtnl_link_ops->kind). πŸ’–
  • NFT_META_OIFKIND β€” packet output interface kind name (dev->rtnl_link_ops->kind). 😭
  • NFT_META_BRI_IIFPVID β€” packet input bridge port pvid. πŸ”₯
  • NFT_META_BRI_IIFVPROTO β€” packet input bridge vlan proto. πŸ‘‘
  • NFT_META_TIME_NS β€” time since epoch (in nanoseconds). 🌈
  • NFT_META_TIME_DAY β€” day of week (from 0 = Sunday to 6 = Saturday). ⭐
  • NFT_META_TIME_HOUR β€” hour of day (in seconds). πŸ’€
  • NFT_META_SDIF β€” slave device interface index. πŸ™ˆ
  • NFT_META_SDIFNAME β€” slave device interface name. πŸ“
  • NFT_META_BRI_BROUTE β€” packet br_netfilter_broute bit. 🧚
  • __NFT_META_IIFTYPE β€” -- undescribed --, again the source leaves it blank. πŸ’œ
  • NFT_META_BRI_IIFHWADDR β€” packet input bridge interface ethernet address. πŸ’…

🌈 SEE ALSO 🌈

The kernel file to peek at is ./include/uapi/linux/netfilter/nf_tables.h enum. Then the whole bestie backlog of related enum pages:

  • 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_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)

Okay bestie, that’s the whole page. Cute footer sign-off: source/version is ./include/uapi/linux/netfilter, date is October 2026, and the title is enum nft_meta_keys(9). You understood the assignment, periodt. πŸ’…πŸŽ€

πŸ“¦ where this page comes from