summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorFlorian Westphal <fw@strlen.de>2024-10-25 09:47:25 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2024-11-11 11:40:08 +0100
commit058246016188c8418cae1b3db70b16b935b1fe7c (patch)
tree6f4c6363aaeb88bb79c9a843b50166deda0138ea /include
parent1e0b74fae4d5f15c48ccabfe2fe147a78a5341d6 (diff)
src: allow to map key to nfqueue number
Allow to specify a numeric queue id as part of a map. The parser side is easy, but the reverse direction (listing) is not. 'queue' is a statement, it doesn't have an expression. Add a generic 'queue_type' datatype as a shim to the real basetype with constant expressions, this is used only for udata build/parse, it stores the "key" (the parser token, here "queue") as udata in kernel and can then restore the original key. Add a dumpfile to validate parser & output. JSON support is missing because JSON allow typeof only since quite recently. Joint work with Pablo. Closes: https://bugzilla.netfilter.org/show_bug.cgi?id=1455 Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'include')
-rw-r--r--include/datatype.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/include/datatype.h b/include/datatype.h
index 75d6d6b8..8b950f91 100644
--- a/include/datatype.h
+++ b/include/datatype.h
@@ -140,7 +140,8 @@ struct parse_ctx;
struct datatype {
uint32_t type;
enum byteorder byteorder:8;
- uint32_t alloc:1;
+ uint32_t alloc:1,
+ is_typeof:1;
unsigned int size;
unsigned int subtypes;
const char *name;
@@ -271,6 +272,7 @@ extern const struct datatype boolean_type;
extern const struct datatype priority_type;
extern const struct datatype policy_type;
extern const struct datatype cgroupv2_type;
+extern const struct datatype queue_type;
/* private datatypes for reject statement. */
extern const struct datatype reject_icmp_code_type;