netfilter: nftables: add set expression flags
authorPablo Neira Ayuso <pablo@netfilter.org>
Sun, 27 Dec 2020 11:35:43 +0000 (12:35 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 28 Dec 2020 09:50:26 +0000 (10:50 +0100)
commitb4e70d8dd9ea6bd5d5fb3122586f652326ca09cd
tree35a39beab3e711e4a1e3d87d55c194f92a53a350
parent95cd4bca7b1f4a25810f3ddfc5e767fb46931789
netfilter: nftables: add set expression flags

The set flag NFT_SET_EXPR provides a hint to the kernel that userspace
supports for multiple expressions per set element. In the same
direction, NFT_DYNSET_F_EXPR specifies that dynset expression defines
multiple expressions per set element.

This allows new userspace software with old kernels to bail out with
EOPNOTSUPP. This update is similar to ef516e8625dd ("netfilter:
nf_tables: reintroduce the NFT_SET_CONCAT flag"). The NFT_SET_EXPR flag
needs to be set on when the NFTA_SET_EXPRESSIONS attribute is specified.
The NFT_SET_EXPR flag is not set on with NFTA_SET_EXPR to retain
backward compatibility in old userspace binaries.

Fixes: 48b0ae046ee9 ("netfilter: nftables: netlink support for several set element expressions")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
include/uapi/linux/netfilter/nf_tables.h
net/netfilter/nf_tables_api.c
net/netfilter/nft_dynset.c