summaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/netfilter/nf_tables.h
diff options
context:
space:
mode:
authorJeremy Sowden <jeremy@azazel.net>2020-01-15 20:05:57 +0000
committerPablo Neira Ayuso <pablo@netfilter.org>2020-01-16 15:52:02 +0100
commit567d746b55bc66d3800c9ae91d50f0c5deb2fd93 (patch)
tree68eb53ca8df97916a56aeae72a37536f84647b34 /include/uapi/linux/netfilter/nf_tables.h
parent779f725e142cd987a69296c0eb7d416ee3ba57dd (diff)
netfilter: bitwise: add support for shifts.
Hitherto nft_bitwise has only supported boolean operations: NOT, AND, OR and XOR. Extend it to do shifts as well. Signed-off-by: Jeremy Sowden <jeremy@azazel.net> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'include/uapi/linux/netfilter/nf_tables.h')
-rw-r--r--include/uapi/linux/netfilter/nf_tables.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/include/uapi/linux/netfilter/nf_tables.h b/include/uapi/linux/netfilter/nf_tables.h
index 8bef0620bc4f..261864736b26 100644
--- a/include/uapi/linux/netfilter/nf_tables.h
+++ b/include/uapi/linux/netfilter/nf_tables.h
@@ -489,9 +489,13 @@ enum nft_immediate_attributes {
*
* @NFT_BITWISE_BOOL: mask-and-xor operation used to implement NOT, AND, OR and
* XOR boolean operations
+ * @NFT_BITWISE_LSHIFT: left-shift operation
+ * @NFT_BITWISE_RSHIFT: right-shift operation
*/
enum nft_bitwise_ops {
NFT_BITWISE_BOOL,
+ NFT_BITWISE_LSHIFT,
+ NFT_BITWISE_RSHIFT,
};
/**
@@ -506,11 +510,12 @@ enum nft_bitwise_ops {
* @NFTA_BITWISE_DATA: argument for non-boolean operations
* (NLA_NESTED: nft_data_attributes)
*
- * The bitwise expression performs the following operation:
+ * The bitwise expression supports boolean and shift operations. It implements
+ * the boolean operations by performing the following operation:
*
* dreg = (sreg & mask) ^ xor
*
- * which allow to express all bitwise operations:
+ * with these mask and xor values:
*
* mask xor
* NOT: 1 1