ENUM NFT_CMP_ATTRIBUTES(9)
π enum nft_cmp_attributes(9) π
okay so bestie, this is a page straight out of the Kernel API Manual β it's enum nft_cmp_attributes(9), and it's lowkey the blueprint for the nf_tables cmp expression's netlink attributes. tiny enum, big main character energy. let's get into it π«Ά
β¨ NAME β¨
enum nft_cmp_attributes β the nf_tables cmp expression netlink attributes. that's it, that's the whole vibe π
πΈ SYNOPSIS πΈ
enum nft_cmp_attributes {
NFTA_CMP_UNSPEC ,
NFTA_CMP_SREG ,
NFTA_CMP_OP ,
NFTA_CMP_DATA ,
__NFTA_CMP_MAX
};
like, look at her. five members, zero notes. icon behavior π
π¦ Constants π¦
okay so here's the cast of characters, one by one, no skipping, we're doing all of them:
NFTA_CMP_UNSPECβ-- undescribed --π the docs just did NOT show up for this one. it's giving mystery. it's giving "we don't talk about her". literally no description given, fr fr.NFTA_CMP_SREGβ the source register of the data we're comparing. type check:NLA_U32: nft_registers. so it's a u32, and it's holding one of thenft_registersvalues. periodt β¨NFTA_CMP_OPβ the cmp operation itself, like what comparison we're actually doing. type check:NLA_U32: nft_cmp_ops. slay, the actual op goes here.NFTA_CMP_DATAβ the data to compare against. this is the thing on the other side of the comparison, bestie. type check:NLA_NESTED: nft_data_attributesβ note that it's NESTED, so it's got its own little attribute family inside it πͺ__NFTA_CMP_MAXβ-- undescribed --π same situation as UNSPEC, no description in the docs. she's the internal max sentinel and honestly she's thriving in silence.
ngl, if you're looking for the NFTA_CMP_* values in the wild, they live in the kernel header. no cap, that's the source of truth π
π SEE ALSO π
the whole friend group, and yes we're listing every single one because nobody gets left out π:
- Kernel file
./include/uapi/linux/netfilter/nf_tables.henum 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_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)
that's the whole page bestie, every last reference, we ate and left no crumbs π
this lil beauty comes from ./include/uapi/linux/netfilter, dated October 2026, and it's page 9 of the Kernel API Manual β¨ mwah, go read the header file, ily, bye ππ§
π¦ 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