ENUM NFT_BITWISE_ATTRIBUTES(9)
π enum nft_bitwise_attributes(9) β¨
okay so you opened the Kernel API Manual page for enum nft_bitwise_attributes(9) β bestie you are in the right place, this is the netlink attribute enum for the nf_tables bitwise expression, and yes it's as cute as it sounds π
β¨ NAME β¨
enum nft_bitwise_attributes β the nf_tables bitwise expression netlink attributes, fr fr π¦
πΈ SYNOPSIS πΈ
enum nft_bitwise_attributes {
NFTA_BITWISE_UNSPEC ,
NFTA_BITWISE_SREG ,
NFTA_BITWISE_DREG ,
NFTA_BITWISE_LEN ,
NFTA_BITWISE_MASK ,
NFTA_BITWISE_XOR ,
NFTA_BITWISE_OP ,
NFTA_BITWISE_DATA ,
NFTA_BITWISE_SREG2 ,
__NFTA_BITWISE_MAX
};
like, that's the whole squad right there π
π Constants π
okay so here's every single member, no cap, not skipping a one:
NFTA_BITWISE_UNSPECβ nope, no description given for this one, it's giving mystery π (-- undescribed --)NFTA_BITWISE_SREGβ the source register, and it's aNLA_U32: nft_registersπNFTA_BITWISE_DREGβ the destination register, alsoNLA_U32: nft_registersβ¨NFTA_BITWISE_LENβ the length of the operands,NLA_U32πNFTA_BITWISE_MASKβ the mask value, and it'sNLA_NESTED: nft_data_attributesπ¦NFTA_BITWISE_XORβ the xor value, alsoNLA_NESTED: nft_data_attributesπΈNFTA_BITWISE_OPβ the type of operation,NLA_U32: nft_bitwise_opsπ₯NFTA_BITWISE_DATAβ the argument for non-boolean operations,NLA_NESTED: nft_data_attributesβNFTA_BITWISE_SREG2β the second source register,NLA_U32: nft_registers(yes bestie there's a second one, main character energy) π__NFTA_BITWISE_MAXβ also undescribed, it's the internal max sentinel vibe,-- undescribed --π
π Description π
so the bitwise expression supports boolean and shift operations β iconic range honestly. it implements the boolean operations by performing this exact operation:
dreg = (sreg & mask) ^ xor
and these are the mask and xor values for each one, keep them exactly as they are:
- NOT:
mask=1,xor=1 - OR:
mask=~x,xor=x - XOR:
mask=1,xor=x - AND:
mask=x,xor=0
like, that's it, that's the whole trick and it slays π«Ά
π¦ SEE ALSO π¦
the kernel file is ./include/uapi/linux/netfilter/nf_tables.h, and here's the entire friend group, nobody left behind π§:
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_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)
that's the whole page bestie, go read nf_tables.h and be free π
mwah π β this one's from ./include/uapi/linux/netfilter, dated October 2026, and it's the enum nft_bitwise_attributes(9) manual, signing off πβ¨
π¦ 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