]> git.ipfire.org Git - thirdparty/libnftnl.git/commitdiff
expr: Repurpose struct expr_ops::max_attr field
authorPhil Sutter <phil@nwl.cc>
Wed, 13 Dec 2023 13:56:49 +0000 (14:56 +0100)
committerPhil Sutter <phil@nwl.cc>
Wed, 6 Mar 2024 14:40:37 +0000 (15:40 +0100)
Instead of holding the maximum kernel space (NFTA_*) attribute value,
use it to hold the maximum expression attribute (NFTNL_EXPR_*) value
instead. This will be used for index boundary checks in an attribute
policy array later.

Signed-off-by: Phil Sutter <phil@nwl.cc>
41 files changed:
include/expr_ops.h
include/libnftnl/expr.h
src/expr/bitwise.c
src/expr/byteorder.c
src/expr/cmp.c
src/expr/connlimit.c
src/expr/counter.c
src/expr/ct.c
src/expr/dup.c
src/expr/dynset.c
src/expr/exthdr.c
src/expr/fib.c
src/expr/flow_offload.c
src/expr/fwd.c
src/expr/hash.c
src/expr/immediate.c
src/expr/inner.c
src/expr/last.c
src/expr/limit.c
src/expr/log.c
src/expr/lookup.c
src/expr/masq.c
src/expr/match.c
src/expr/meta.c
src/expr/nat.c
src/expr/numgen.c
src/expr/objref.c
src/expr/osf.c
src/expr/payload.c
src/expr/queue.c
src/expr/quota.c
src/expr/range.c
src/expr/redir.c
src/expr/reject.c
src/expr/rt.c
src/expr/socket.c
src/expr/synproxy.c
src/expr/target.c
src/expr/tproxy.c
src/expr/tunnel.c
src/expr/xfrm.c

index a7d747a2568a08e42abb96f0981d534b8e7ed940..51b221483552c9084bec202ce1dc8a8958a3334e 100644 (file)
@@ -11,7 +11,7 @@ struct nftnl_expr;
 struct expr_ops {
        const char *name;
        uint32_t alloc_len;
-       int     max_attr;
+       int     nftnl_max_attr;
        void    (*init)(const struct nftnl_expr *e);
        void    (*free)(const struct nftnl_expr *e);
        int     (*set)(struct nftnl_expr *e, uint16_t type, const void *data, uint32_t data_len);
index 9873228dd794a17055042294df16e4041af4fddb..fba1210622440969e61c5564851a840727a723ff 100644 (file)
@@ -56,6 +56,7 @@ enum {
        NFTNL_EXPR_PAYLOAD_CSUM_TYPE,
        NFTNL_EXPR_PAYLOAD_CSUM_OFFSET,
        NFTNL_EXPR_PAYLOAD_FLAGS,
+       __NFTNL_EXPR_PAYLOAD_MAX
 };
 
 enum {
@@ -65,34 +66,40 @@ enum {
        NFTNL_EXPR_NG_OFFSET,
        NFTNL_EXPR_NG_SET_NAME,         /* deprecated */
        NFTNL_EXPR_NG_SET_ID,           /* deprecated */
+       __NFTNL_EXPR_NG_MAX
 };
 
 enum {
        NFTNL_EXPR_META_KEY     = NFTNL_EXPR_BASE,
        NFTNL_EXPR_META_DREG,
        NFTNL_EXPR_META_SREG,
+       __NFTNL_EXPR_META_MAX
 };
 
 enum {
        NFTNL_EXPR_RT_KEY       = NFTNL_EXPR_BASE,
        NFTNL_EXPR_RT_DREG,
+       __NFTNL_EXPR_RT_MAX
 };
 
 enum {
        NFTNL_EXPR_SOCKET_KEY   = NFTNL_EXPR_BASE,
        NFTNL_EXPR_SOCKET_DREG,
        NFTNL_EXPR_SOCKET_LEVEL,
+       __NFTNL_EXPR_SOCKET_MAX
 };
 
 enum {
        NFTNL_EXPR_TUNNEL_KEY   = NFTNL_EXPR_BASE,
        NFTNL_EXPR_TUNNEL_DREG,
+       __NFTNL_EXPR_TUNNEL_MAX
 };
 
 enum {
        NFTNL_EXPR_CMP_SREG     = NFTNL_EXPR_BASE,
        NFTNL_EXPR_CMP_OP,
        NFTNL_EXPR_CMP_DATA,
+       __NFTNL_EXPR_CMP_MAX
 };
 
 enum {
@@ -100,6 +107,7 @@ enum {
        NFTNL_EXPR_RANGE_OP,
        NFTNL_EXPR_RANGE_FROM_DATA,
        NFTNL_EXPR_RANGE_TO_DATA,
+       __NFTNL_EXPR_RANGE_MAX
 };
 
 enum {
@@ -108,16 +116,19 @@ enum {
        NFTNL_EXPR_IMM_VERDICT,
        NFTNL_EXPR_IMM_CHAIN,
        NFTNL_EXPR_IMM_CHAIN_ID,
+       __NFTNL_EXPR_IMM_MAX
 };
 
 enum {
        NFTNL_EXPR_CTR_PACKETS  = NFTNL_EXPR_BASE,
        NFTNL_EXPR_CTR_BYTES,
+       __NFTNL_EXPR_CTR_MAX
 };
 
 enum {
        NFTNL_EXPR_CONNLIMIT_COUNT = NFTNL_EXPR_BASE,
        NFTNL_EXPR_CONNLIMIT_FLAGS,
+       __NFTNL_EXPR_CONNLIMIT_MAX
 };
 
 enum {
@@ -128,18 +139,21 @@ enum {
        NFTNL_EXPR_BITWISE_XOR,
        NFTNL_EXPR_BITWISE_OP,
        NFTNL_EXPR_BITWISE_DATA,
+       __NFTNL_EXPR_BITWISE_MAX
 };
 
 enum {
        NFTNL_EXPR_TG_NAME      = NFTNL_EXPR_BASE,
        NFTNL_EXPR_TG_REV,
        NFTNL_EXPR_TG_INFO,
+       __NFTNL_EXPR_TG_MAX
 };
 
 enum {
        NFTNL_EXPR_MT_NAME      = NFTNL_EXPR_BASE,
        NFTNL_EXPR_MT_REV,
        NFTNL_EXPR_MT_INFO,
+       __NFTNL_EXPR_MT_MAX
 };
 
 enum {
@@ -150,12 +164,14 @@ enum {
        NFTNL_EXPR_NAT_REG_PROTO_MIN,
        NFTNL_EXPR_NAT_REG_PROTO_MAX,
        NFTNL_EXPR_NAT_FLAGS,
+       __NFTNL_EXPR_NAT_MAX
 };
 
 enum {
        NFTNL_EXPR_TPROXY_FAMILY        = NFTNL_EXPR_BASE,
        NFTNL_EXPR_TPROXY_REG_ADDR,
        NFTNL_EXPR_TPROXY_REG_PORT,
+       __NFTNL_EXPR_TPROXY_MAX
 };
 
 enum {
@@ -164,6 +180,7 @@ enum {
        NFTNL_EXPR_LOOKUP_SET,
        NFTNL_EXPR_LOOKUP_SET_ID,
        NFTNL_EXPR_LOOKUP_FLAGS,
+       __NFTNL_EXPR_LOOKUP_MAX
 };
 
 enum {
@@ -176,6 +193,7 @@ enum {
        NFTNL_EXPR_DYNSET_EXPR,
        NFTNL_EXPR_DYNSET_EXPRESSIONS,
        NFTNL_EXPR_DYNSET_FLAGS,
+       __NFTNL_EXPR_DYNSET_MAX
 };
 
 enum {
@@ -185,6 +203,7 @@ enum {
        NFTNL_EXPR_LOG_QTHRESHOLD,
        NFTNL_EXPR_LOG_LEVEL,
        NFTNL_EXPR_LOG_FLAGS,
+       __NFTNL_EXPR_LOG_MAX
 };
 
 enum {
@@ -195,6 +214,7 @@ enum {
        NFTNL_EXPR_EXTHDR_FLAGS,
        NFTNL_EXPR_EXTHDR_OP,
        NFTNL_EXPR_EXTHDR_SREG,
+       __NFTNL_EXPR_EXTHDR_MAX
 };
 
 enum {
@@ -202,6 +222,7 @@ enum {
        NFTNL_EXPR_CT_KEY,
        NFTNL_EXPR_CT_DIR,
        NFTNL_EXPR_CT_SREG,
+       __NFTNL_EXPR_CT_MAX
 };
 
 enum {
@@ -210,6 +231,7 @@ enum {
        NFTNL_EXPR_BYTEORDER_OP,
        NFTNL_EXPR_BYTEORDER_LEN,
        NFTNL_EXPR_BYTEORDER_SIZE,
+       __NFTNL_EXPR_BYTEORDER_MAX
 };
 
 enum {
@@ -218,11 +240,13 @@ enum {
        NFTNL_EXPR_LIMIT_BURST,
        NFTNL_EXPR_LIMIT_TYPE,
        NFTNL_EXPR_LIMIT_FLAGS,
+       __NFTNL_EXPR_LIMIT_MAX
 };
 
 enum {
        NFTNL_EXPR_REJECT_TYPE  = NFTNL_EXPR_BASE,
        NFTNL_EXPR_REJECT_CODE,
+       __NFTNL_EXPR_REJECT_MAX
 };
 
 enum {
@@ -230,39 +254,46 @@ enum {
        NFTNL_EXPR_QUEUE_TOTAL,
        NFTNL_EXPR_QUEUE_FLAGS,
        NFTNL_EXPR_QUEUE_SREG_QNUM,
+       __NFTNL_EXPR_QUEUE_MAX
 };
 
 enum {
        NFTNL_EXPR_QUOTA_BYTES  = NFTNL_EXPR_BASE,
        NFTNL_EXPR_QUOTA_FLAGS,
        NFTNL_EXPR_QUOTA_CONSUMED,
+       __NFTNL_EXPR_QUOTA_MAX
 };
 
 enum {
        NFTNL_EXPR_MASQ_FLAGS           = NFTNL_EXPR_BASE,
        NFTNL_EXPR_MASQ_REG_PROTO_MIN,
        NFTNL_EXPR_MASQ_REG_PROTO_MAX,
+       __NFTNL_EXPR_MASQ_MAX
 };
 
 enum {
        NFTNL_EXPR_REDIR_REG_PROTO_MIN  = NFTNL_EXPR_BASE,
        NFTNL_EXPR_REDIR_REG_PROTO_MAX,
        NFTNL_EXPR_REDIR_FLAGS,
+       __NFTNL_EXPR_REDIR_MAX
 };
 
 enum {
        NFTNL_EXPR_DUP_SREG_ADDR = NFTNL_EXPR_BASE,
        NFTNL_EXPR_DUP_SREG_DEV,
+       __NFTNL_EXPR_DUP_MAX
 };
 
 enum {
        NFTNL_EXPR_FLOW_TABLE_NAME = NFTNL_EXPR_BASE,
+       __NFTNL_EXPR_FLOW_MAX
 };
 
 enum {
        NFTNL_EXPR_FWD_SREG_DEV = NFTNL_EXPR_BASE,
        NFTNL_EXPR_FWD_SREG_ADDR,
        NFTNL_EXPR_FWD_NFPROTO,
+       __NFTNL_EXPR_FWD_MAX
 };
 
 enum {
@@ -275,12 +306,14 @@ enum {
        NFTNL_EXPR_HASH_TYPE,
        NFTNL_EXPR_HASH_SET_NAME,       /* deprecated */
        NFTNL_EXPR_HASH_SET_ID,         /* deprecated */
+       __NFTNL_EXPR_HASH_MAX
 };
 
 enum {
        NFTNL_EXPR_FIB_DREG     = NFTNL_EXPR_BASE,
        NFTNL_EXPR_FIB_RESULT,
        NFTNL_EXPR_FIB_FLAGS,
+       __NFTNL_EXPR_FIB_MAX
 };
 
 enum {
@@ -289,12 +322,14 @@ enum {
        NFTNL_EXPR_OBJREF_SET_SREG,
        NFTNL_EXPR_OBJREF_SET_NAME,
        NFTNL_EXPR_OBJREF_SET_ID,
+       __NFTNL_EXPR_OBJREF_MAX
 };
 
 enum {
        NFTNL_EXPR_OSF_DREG     = NFTNL_EXPR_BASE,
        NFTNL_EXPR_OSF_TTL,
        NFTNL_EXPR_OSF_FLAGS,
+       __NFTNL_EXPR_OSF_MAX
 };
 
 enum {
@@ -303,17 +338,20 @@ enum {
        NFTNL_EXPR_XFRM_KEY,
        NFTNL_EXPR_XFRM_DIR,
        NFTNL_EXPR_XFRM_SPNUM,
+       __NFTNL_EXPR_XFRM_MAX
 };
 
 enum {
        NFTNL_EXPR_SYNPROXY_MSS = NFTNL_EXPR_BASE,
        NFTNL_EXPR_SYNPROXY_WSCALE,
        NFTNL_EXPR_SYNPROXY_FLAGS,
+       __NFTNL_EXPR_SYNPROXY_MAX
 };
 
 enum {
        NFTNL_EXPR_LAST_MSECS = NFTNL_EXPR_BASE,
        NFTNL_EXPR_LAST_SET,
+       __NFTNL_EXPR_LAST_MAX
 };
 
 enum {
@@ -321,6 +359,7 @@ enum {
        NFTNL_EXPR_INNER_FLAGS,
        NFTNL_EXPR_INNER_HDRSIZE,
        NFTNL_EXPR_INNER_EXPR,
+       __NFTNL_EXPR_INNER_MAX
 };
 
 #ifdef __cplusplus
index e5dba827f3d932eb47b11f0d98ea8acaa78ea2d0..69efe1d7e868fe58e4f4313fb526d5d08790a96f 100644 (file)
@@ -271,7 +271,7 @@ nftnl_expr_bitwise_snprintf(char *buf, size_t size,
 struct expr_ops expr_ops_bitwise = {
        .name           = "bitwise",
        .alloc_len      = sizeof(struct nftnl_expr_bitwise),
-       .max_attr       = NFTA_BITWISE_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_BITWISE_MAX - 1,
        .set            = nftnl_expr_bitwise_set,
        .get            = nftnl_expr_bitwise_get,
        .parse          = nftnl_expr_bitwise_parse,
index 89ed0a8232af15e79c49d4c4407dd6321408307b..f05ae59b688eb98f8a74c2857ffa7d00ecf43fa5 100644 (file)
@@ -215,7 +215,7 @@ nftnl_expr_byteorder_snprintf(char *buf, size_t remain,
 struct expr_ops expr_ops_byteorder = {
        .name           = "byteorder",
        .alloc_len      = sizeof(struct nftnl_expr_byteorder),
-       .max_attr       = NFTA_BYTEORDER_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_BYTEORDER_MAX - 1,
        .set            = nftnl_expr_byteorder_set,
        .get            = nftnl_expr_byteorder_get,
        .parse          = nftnl_expr_byteorder_parse,
index 1d396e83411ab7819281672e8205f1deb87d8930..40431fad56f3ee74b386d5c46101a46aeaed194e 100644 (file)
@@ -195,7 +195,7 @@ nftnl_expr_cmp_snprintf(char *buf, size_t remain,
 struct expr_ops expr_ops_cmp = {
        .name           = "cmp",
        .alloc_len      = sizeof(struct nftnl_expr_cmp),
-       .max_attr       = NFTA_CMP_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_CMP_MAX - 1,
        .set            = nftnl_expr_cmp_set,
        .get            = nftnl_expr_cmp_get,
        .parse          = nftnl_expr_cmp_parse,
index 549417bf31e6b6ea3e6da38f34568de875f346a9..3b6c36c490636241c6355b52d0c1b3280146049d 100644 (file)
@@ -130,7 +130,7 @@ static int nftnl_expr_connlimit_snprintf(char *buf, size_t len,
 struct expr_ops expr_ops_connlimit = {
        .name           = "connlimit",
        .alloc_len      = sizeof(struct nftnl_expr_connlimit),
-       .max_attr       = NFTA_CONNLIMIT_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_CONNLIMIT_MAX - 1,
        .set            = nftnl_expr_connlimit_set,
        .get            = nftnl_expr_connlimit_get,
        .parse          = nftnl_expr_connlimit_parse,
index d139a5f758a0bc0790e1bc55354f0fb7d5428b3c..0595d505eb2fc00c12cb44ae3afb075a5f9b846c 100644 (file)
@@ -128,7 +128,7 @@ static int nftnl_expr_counter_snprintf(char *buf, size_t len,
 struct expr_ops expr_ops_counter = {
        .name           = "counter",
        .alloc_len      = sizeof(struct nftnl_expr_counter),
-       .max_attr       = NFTA_COUNTER_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_CTR_MAX - 1,
        .set            = nftnl_expr_counter_set,
        .get            = nftnl_expr_counter_get,
        .parse          = nftnl_expr_counter_parse,
index f4a2aeaf31acc721b670f2b9d84901513a4142e6..36b61fdeaaf26acb55b5d60016c13b7ce0bc2fb2 100644 (file)
@@ -253,7 +253,7 @@ nftnl_expr_ct_snprintf(char *buf, size_t remain,
 struct expr_ops expr_ops_ct = {
        .name           = "ct",
        .alloc_len      = sizeof(struct nftnl_expr_ct),
-       .max_attr       = NFTA_CT_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_CT_MAX - 1,
        .set            = nftnl_expr_ct_set,
        .get            = nftnl_expr_ct_get,
        .parse          = nftnl_expr_ct_parse,
index a239ff35640a62e99d9063ff8a5186ba39ccdb31..33731cc29b1652cacd40904dc4294f6391cc724d 100644 (file)
@@ -133,7 +133,7 @@ static int nftnl_expr_dup_snprintf(char *buf, size_t remain,
 struct expr_ops expr_ops_dup = {
        .name           = "dup",
        .alloc_len      = sizeof(struct nftnl_expr_dup),
-       .max_attr       = NFTA_DUP_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_DUP_MAX - 1,
        .set            = nftnl_expr_dup_set,
        .get            = nftnl_expr_dup_get,
        .parse          = nftnl_expr_dup_parse,
index 5bcf1c6f8b06092867d6defaa6d4ff8c19133325..ee6ce1ec715635c83225e37d4445f0b55a9de75a 100644 (file)
@@ -366,7 +366,7 @@ static void nftnl_expr_dynset_free(const struct nftnl_expr *e)
 struct expr_ops expr_ops_dynset = {
        .name           = "dynset",
        .alloc_len      = sizeof(struct nftnl_expr_dynset),
-       .max_attr       = NFTA_DYNSET_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_DYNSET_MAX - 1,
        .init           = nftnl_expr_dynset_init,
        .free           = nftnl_expr_dynset_free,
        .set            = nftnl_expr_dynset_set,
index 739c7ff2179f99fad0c67f6d4bc7748b2db88ca9..a1227a6cb4509422d3455c43d44f504a88e9eddb 100644 (file)
@@ -262,7 +262,7 @@ nftnl_expr_exthdr_snprintf(char *buf, size_t len,
 struct expr_ops expr_ops_exthdr = {
        .name           = "exthdr",
        .alloc_len      = sizeof(struct nftnl_expr_exthdr),
-       .max_attr       = NFTA_EXTHDR_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_EXTHDR_MAX - 1,
        .set            = nftnl_expr_exthdr_set,
        .get            = nftnl_expr_exthdr_get,
        .parse          = nftnl_expr_exthdr_parse,
index 957f929ea912e500b30d87cfeaaa03c99d90bece..36637bd74f056af06ccc720cf807f584f8eefe86 100644 (file)
@@ -193,7 +193,7 @@ nftnl_expr_fib_snprintf(char *buf, size_t remain,
 struct expr_ops expr_ops_fib = {
        .name           = "fib",
        .alloc_len      = sizeof(struct nftnl_expr_fib),
-       .max_attr       = NFTA_FIB_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_FIB_MAX - 1,
        .set            = nftnl_expr_fib_set,
        .get            = nftnl_expr_fib_get,
        .parse          = nftnl_expr_fib_parse,
index 4fc0563bfb53732ca351b645292ab0952f9975f1..f60471240cc40832d4caa2128e520b32152fcc73 100644 (file)
@@ -114,7 +114,7 @@ static void nftnl_expr_flow_free(const struct nftnl_expr *e)
 struct expr_ops expr_ops_flow = {
        .name           = "flow_offload",
        .alloc_len      = sizeof(struct nftnl_expr_flow),
-       .max_attr       = NFTA_FLOW_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_FLOW_MAX - 1,
        .free           = nftnl_expr_flow_free,
        .set            = nftnl_expr_flow_set,
        .get            = nftnl_expr_flow_get,
index 51f661258900f9bb350f7a99e9bced0f8cd9083f..3aaf328313cd9d57234bb52978a765f393c049fa 100644 (file)
@@ -153,7 +153,7 @@ static int nftnl_expr_fwd_snprintf(char *buf, size_t remain,
 struct expr_ops expr_ops_fwd = {
        .name           = "fwd",
        .alloc_len      = sizeof(struct nftnl_expr_fwd),
-       .max_attr       = NFTA_FWD_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_FWD_MAX - 1,
        .set            = nftnl_expr_fwd_set,
        .get            = nftnl_expr_fwd_get,
        .parse          = nftnl_expr_fwd_parse,
index 6e2dd197fa708af5e6d5eabc0d0fa73d10d41e3e..1fc72ec331a3d884cf40e0ac81a0a1eef73fb8b6 100644 (file)
@@ -221,7 +221,7 @@ nftnl_expr_hash_snprintf(char *buf, size_t remain,
 struct expr_ops expr_ops_hash = {
        .name           = "hash",
        .alloc_len      = sizeof(struct nftnl_expr_hash),
-       .max_attr       = NFTA_HASH_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_HASH_MAX - 1,
        .set            = nftnl_expr_hash_set,
        .get            = nftnl_expr_hash_get,
        .parse          = nftnl_expr_hash_parse,
index acc01a10154e0589ea15adab063ee403a96c44a1..644603fab2f4ff3d5abeef13af146d664dcbe631 100644 (file)
@@ -221,7 +221,7 @@ static void nftnl_expr_immediate_free(const struct nftnl_expr *e)
 struct expr_ops expr_ops_immediate = {
        .name           = "immediate",
        .alloc_len      = sizeof(struct nftnl_expr_immediate),
-       .max_attr       = NFTA_IMMEDIATE_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_IMM_MAX - 1,
        .free           = nftnl_expr_immediate_free,
        .set            = nftnl_expr_immediate_set,
        .get            = nftnl_expr_immediate_get,
index 7daae4f36adb069e5fa41233c8fea499f62fc9d9..cb6f607138ce3b1c0202991c3bf0227575c35084 100644 (file)
@@ -204,7 +204,7 @@ nftnl_expr_inner_snprintf(char *buf, size_t remain, uint32_t flags,
 struct expr_ops expr_ops_inner = {
        .name           = "inner",
        .alloc_len      = sizeof(struct nftnl_expr_inner),
-       .max_attr       = NFTA_INNER_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_INNER_MAX - 1,
        .free           = nftnl_expr_inner_free,
        .set            = nftnl_expr_inner_set,
        .get            = nftnl_expr_inner_get,
index 641b713fca66f54d51fa389d970ac002417e5bc0..273aaa1e14a858bd3fc55b75adcc6a18278d1b25 100644 (file)
@@ -129,7 +129,7 @@ static int nftnl_expr_last_snprintf(char *buf, size_t len,
 struct expr_ops expr_ops_last = {
        .name           = "last",
        .alloc_len      = sizeof(struct nftnl_expr_last),
-       .max_attr       = NFTA_LAST_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_LAST_MAX - 1,
        .set            = nftnl_expr_last_set,
        .get            = nftnl_expr_last_get,
        .parse          = nftnl_expr_last_parse,
index 1870e0e473a90b58f847ae6bebb3e4c8335dffa6..a1f9eac390d9116223ed2ef9fd3aa65fb20c03fa 100644 (file)
@@ -197,7 +197,7 @@ nftnl_expr_limit_snprintf(char *buf, size_t len,
 struct expr_ops expr_ops_limit = {
        .name           = "limit",
        .alloc_len      = sizeof(struct nftnl_expr_limit),
-       .max_attr       = NFTA_LIMIT_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_LIMIT_MAX - 1,
        .set            = nftnl_expr_limit_set,
        .get            = nftnl_expr_limit_get,
        .parse          = nftnl_expr_limit_parse,
index 180d83973d70610896c1483a5be2681fe82551be..6df030d83fcd2b55b78f36deac0d09151cb0c962 100644 (file)
@@ -247,7 +247,7 @@ static void nftnl_expr_log_free(const struct nftnl_expr *e)
 struct expr_ops expr_ops_log = {
        .name           = "log",
        .alloc_len      = sizeof(struct nftnl_expr_log),
-       .max_attr       = NFTA_LOG_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_LOG_MAX - 1,
        .free           = nftnl_expr_log_free,
        .set            = nftnl_expr_log_set,
        .get            = nftnl_expr_log_get,
index a06c3385411ac535a96f1724c465d0a642f7a525..8b230818c1bed2a1f6055c38d961e557d2d56118 100644 (file)
@@ -200,7 +200,7 @@ static void nftnl_expr_lookup_free(const struct nftnl_expr *e)
 struct expr_ops expr_ops_lookup = {
        .name           = "lookup",
        .alloc_len      = sizeof(struct nftnl_expr_lookup),
-       .max_attr       = NFTA_LOOKUP_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_LOOKUP_MAX - 1,
        .free           = nftnl_expr_lookup_free,
        .set            = nftnl_expr_lookup_set,
        .get            = nftnl_expr_lookup_get,
index e6e528d9acca8d0f0292ccb3219f51c59e5a0ade..a103cc33e23f79bc2513b63e7f7b87222b555e13 100644 (file)
@@ -158,7 +158,7 @@ static int nftnl_expr_masq_snprintf(char *buf, size_t remain,
 struct expr_ops expr_ops_masq = {
        .name           = "masq",
        .alloc_len      = sizeof(struct nftnl_expr_masq),
-       .max_attr       = NFTA_MASQ_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_MASQ_MAX - 1,
        .set            = nftnl_expr_masq_set,
        .get            = nftnl_expr_masq_get,
        .parse          = nftnl_expr_masq_parse,
index f472add1cbc8e3f724e94bd4a284e907d375dbd2..eed85db4d40d1c85809e73a06b0717d4f5221907 100644 (file)
@@ -183,7 +183,7 @@ static void nftnl_expr_match_free(const struct nftnl_expr *e)
 struct expr_ops expr_ops_match = {
        .name           = "match",
        .alloc_len      = sizeof(struct nftnl_expr_match),
-       .max_attr       = NFTA_MATCH_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_MT_MAX - 1,
        .free           = nftnl_expr_match_free,
        .set            = nftnl_expr_match_set,
        .get            = nftnl_expr_match_get,
index 183f4412da218780bfee3d745d7d6d73fb721fcd..f86fdffd3f14e524561bdd369e7cb967aa0f3df1 100644 (file)
@@ -212,7 +212,7 @@ nftnl_expr_meta_snprintf(char *buf, size_t len,
 struct expr_ops expr_ops_meta = {
        .name           = "meta",
        .alloc_len      = sizeof(struct nftnl_expr_meta),
-       .max_attr       = NFTA_META_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_META_MAX - 1,
        .set            = nftnl_expr_meta_set,
        .get            = nftnl_expr_meta_get,
        .parse          = nftnl_expr_meta_parse,
index ca727be0cda635aa8dcbcdc79d9071874750bb61..1d10bc1c5442d8e9f965f1d1efe1445c0cd042d7 100644 (file)
@@ -269,7 +269,7 @@ nftnl_expr_nat_snprintf(char *buf, size_t remain,
 struct expr_ops expr_ops_nat = {
        .name           = "nat",
        .alloc_len      = sizeof(struct nftnl_expr_nat),
-       .max_attr       = NFTA_NAT_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_NAT_MAX - 1,
        .set            = nftnl_expr_nat_set,
        .get            = nftnl_expr_nat_get,
        .parse          = nftnl_expr_nat_parse,
index d4020a6978e0c8eb27244b9d1d6b63868e6284ab..3e83e05f2e3e07e2ce5a7637e9f1e99f7ca3d30c 100644 (file)
@@ -175,7 +175,7 @@ nftnl_expr_ng_snprintf(char *buf, size_t remain,
 struct expr_ops expr_ops_ng = {
        .name           = "numgen",
        .alloc_len      = sizeof(struct nftnl_expr_ng),
-       .max_attr       = NFTA_NG_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_NG_MAX - 1,
        .set            = nftnl_expr_ng_set,
        .get            = nftnl_expr_ng_get,
        .parse          = nftnl_expr_ng_parse,
index ad0688f46ec62f66f1b8184c4cd1390e1972eade..e96bd6977e93aeb5f9d9aaa4b59171be3fd9bc40 100644 (file)
@@ -199,7 +199,7 @@ static void nftnl_expr_objref_free(const struct nftnl_expr *e)
 struct expr_ops expr_ops_objref = {
        .name           = "objref",
        .alloc_len      = sizeof(struct nftnl_expr_objref),
-       .max_attr       = NFTA_OBJREF_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_OBJREF_MAX - 1,
        .free           = nftnl_expr_objref_free,
        .set            = nftnl_expr_objref_set,
        .get            = nftnl_expr_objref_get,
index f15a72223383045ef277bd6f68b9ed1af0bc6435..3838af72debeb8b3f8469a3331a2362dfc656106 100644 (file)
@@ -142,7 +142,7 @@ nftnl_expr_osf_snprintf(char *buf, size_t len,
 struct expr_ops expr_ops_osf = {
        .name           = "osf",
        .alloc_len      = sizeof(struct nftnl_expr_osf),
-       .max_attr       = NFTA_OSF_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_OSF_MAX - 1,
        .set            = nftnl_expr_osf_set,
        .get            = nftnl_expr_osf_get,
        .parse          = nftnl_expr_osf_parse,
index c633e33bedd3eff908174c59820ccf797d9036b1..f603662ac8da743bcee105775ded91cc572cb356 100644 (file)
@@ -241,7 +241,7 @@ nftnl_expr_payload_snprintf(char *buf, size_t len,
 struct expr_ops expr_ops_payload = {
        .name           = "payload",
        .alloc_len      = sizeof(struct nftnl_expr_payload),
-       .max_attr       = NFTA_PAYLOAD_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_PAYLOAD_MAX - 1,
        .set            = nftnl_expr_payload_set,
        .get            = nftnl_expr_payload_get,
        .parse          = nftnl_expr_payload_parse,
index de287f245d9a9c0d50c38178f60c4dc7468f3efb..fba65d1003b31c695fc104802e1611c063708030 100644 (file)
@@ -188,7 +188,7 @@ nftnl_expr_queue_snprintf(char *buf, size_t remain,
 struct expr_ops expr_ops_queue = {
        .name           = "queue",
        .alloc_len      = sizeof(struct nftnl_expr_queue),
-       .max_attr       = NFTA_QUEUE_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_QUEUE_MAX - 1,
        .set            = nftnl_expr_queue_set,
        .get            = nftnl_expr_queue_get,
        .parse          = nftnl_expr_queue_parse,
index 835729ceac17b49fcd6638d1903ff395c41a7990..d3923f3197900b5571f250413df7912f3b82b77b 100644 (file)
@@ -142,7 +142,7 @@ static int nftnl_expr_quota_snprintf(char *buf, size_t len,
 struct expr_ops expr_ops_quota = {
        .name           = "quota",
        .alloc_len      = sizeof(struct nftnl_expr_quota),
-       .max_attr       = NFTA_QUOTA_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_QUOTA_MAX - 1,
        .set            = nftnl_expr_quota_set,
        .get            = nftnl_expr_quota_get,
        .parse          = nftnl_expr_quota_parse,
index 5a30e48fde928cd54d393c179f3c24a710f1230b..cb3708c8a003dbe350d65dbc670b2c191dfd00cb 100644 (file)
@@ -204,7 +204,7 @@ static int nftnl_expr_range_snprintf(char *buf, size_t remain,
 struct expr_ops expr_ops_range = {
        .name           = "range",
        .alloc_len      = sizeof(struct nftnl_expr_range),
-       .max_attr       = NFTA_RANGE_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_RANGE_MAX - 1,
        .set            = nftnl_expr_range_set,
        .get            = nftnl_expr_range_get,
        .parse          = nftnl_expr_range_parse,
index 87c2accb923fa6614900dbbd60033dc1d298a724..eca8bfe1abd4c1343cf10b3addc587051ae0a71b 100644 (file)
@@ -162,7 +162,7 @@ nftnl_expr_redir_snprintf(char *buf, size_t remain,
 struct expr_ops expr_ops_redir = {
        .name           = "redir",
        .alloc_len      = sizeof(struct nftnl_expr_redir),
-       .max_attr       = NFTA_REDIR_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_REDIR_MAX - 1,
        .set            = nftnl_expr_redir_set,
        .get            = nftnl_expr_redir_get,
        .parse          = nftnl_expr_redir_parse,
index c7c944124ca3933abcfe89035451d5d4aacc9ee3..6b923adf5e56917d26032d558973107429195857 100644 (file)
@@ -129,7 +129,7 @@ nftnl_expr_reject_snprintf(char *buf, size_t len,
 struct expr_ops expr_ops_reject = {
        .name           = "reject",
        .alloc_len      = sizeof(struct nftnl_expr_reject),
-       .max_attr       = NFTA_REJECT_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_REJECT_MAX - 1,
        .set            = nftnl_expr_reject_set,
        .get            = nftnl_expr_reject_get,
        .parse          = nftnl_expr_reject_parse,
index 695a6589b5c84c3cbbc7d5fe6789605be2b2fa0b..aaec43025011b37f53989cd21118a252827ffd7a 100644 (file)
@@ -157,7 +157,7 @@ nftnl_expr_rt_snprintf(char *buf, size_t len,
 struct expr_ops expr_ops_rt = {
        .name           = "rt",
        .alloc_len      = sizeof(struct nftnl_expr_rt),
-       .max_attr       = NFTA_RT_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_RT_MAX - 1,
        .set            = nftnl_expr_rt_set,
        .get            = nftnl_expr_rt_get,
        .parse          = nftnl_expr_rt_parse,
index 83045c075fb5b0637f15a993e8b6532ef34b5274..ef299c456cdd1a6162de597a6c47b8ed9d87f9ce 100644 (file)
@@ -160,7 +160,7 @@ nftnl_expr_socket_snprintf(char *buf, size_t len,
 struct expr_ops expr_ops_socket = {
        .name           = "socket",
        .alloc_len      = sizeof(struct nftnl_expr_socket),
-       .max_attr       = NFTA_SOCKET_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_SOCKET_MAX - 1,
        .set            = nftnl_expr_socket_set,
        .get            = nftnl_expr_socket_get,
        .parse          = nftnl_expr_socket_parse,
index 47fcaefb23b1b4966777273bdf3de80bb880fe17..dc25962c00d8187d0745c95eee151eabda2a40b4 100644 (file)
@@ -147,7 +147,7 @@ nftnl_expr_synproxy_snprintf(char *buf, size_t len,
 struct expr_ops expr_ops_synproxy = {
        .name           = "synproxy",
        .alloc_len      = sizeof(struct nftnl_expr_synproxy),
-       .max_attr       = NFTA_SYNPROXY_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_SYNPROXY_MAX - 1,
        .set            = nftnl_expr_synproxy_set,
        .get            = nftnl_expr_synproxy_get,
        .parse          = nftnl_expr_synproxy_parse,
index 2a3fe8ae1020d76c370231ace203d24df6e62b41..ebc48bafb06cc05c0095487791d906ac943f4027 100644 (file)
@@ -183,7 +183,7 @@ static void nftnl_expr_target_free(const struct nftnl_expr *e)
 struct expr_ops expr_ops_target = {
        .name           = "target",
        .alloc_len      = sizeof(struct nftnl_expr_target),
-       .max_attr       = NFTA_TARGET_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_TG_MAX - 1,
        .free           = nftnl_expr_target_free,
        .set            = nftnl_expr_target_set,
        .get            = nftnl_expr_target_get,
index bd5ffbf1d93eef3f76e6a726fa9a769aa17ea17b..ac5419b1f3405143ce42c04215dd5055b3158d63 100644 (file)
@@ -165,7 +165,7 @@ nftnl_expr_tproxy_snprintf(char *buf, size_t remain,
 struct expr_ops expr_ops_tproxy = {
        .name           = "tproxy",
        .alloc_len      = sizeof(struct nftnl_expr_tproxy),
-       .max_attr       = NFTA_TPROXY_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_TPROXY_MAX - 1,
        .set            = nftnl_expr_tproxy_set,
        .get            = nftnl_expr_tproxy_get,
        .parse          = nftnl_expr_tproxy_parse,
index a00f620fa471a9641579f71df642d3483b2b8aa4..e381994707fe9e82bcaf12b02dff8fc24dfa59af 100644 (file)
@@ -140,7 +140,7 @@ nftnl_expr_tunnel_snprintf(char *buf, size_t len,
 struct expr_ops expr_ops_tunnel = {
        .name           = "tunnel",
        .alloc_len      = sizeof(struct nftnl_expr_tunnel),
-       .max_attr       = NFTA_TUNNEL_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_TUNNEL_MAX - 1,
        .set            = nftnl_expr_tunnel_set,
        .get            = nftnl_expr_tunnel_get,
        .parse          = nftnl_expr_tunnel_parse,
index 2db00d50a158a793b9b234ac54c6d563225e89a0..3f4cb0a91762ed3e35eb2ee3327680076256885f 100644 (file)
@@ -191,7 +191,7 @@ nftnl_expr_xfrm_snprintf(char *buf, size_t remain,
 struct expr_ops expr_ops_xfrm = {
        .name           = "xfrm",
        .alloc_len      = sizeof(struct nftnl_expr_xfrm),
-       .max_attr       = NFTA_XFRM_MAX,
+       .nftnl_max_attr = __NFTNL_EXPR_XFRM_MAX - 1,
        .set            = nftnl_expr_xfrm_set,
        .get            = nftnl_expr_xfrm_get,
        .parse          = nftnl_expr_xfrm_parse,