summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2014-01-08 13:02:16 +0000
committerPatrick McHardy <kaber@trash.net>2014-01-08 13:03:19 +0000
commitb90667a2ae941d2b79630d0344ef489c2bf9d9aa (patch)
tree39484a0b038b6db9509b18d6585e9da590213629 /include
parent1249b7b0b47bca67cf3adac4143b4bda43e4c582 (diff)
proto: add support for meta templates
The following two patches will add two new meta expression types that are used as dependencies in the inet table. To reuse the existing dependency generation code, add a slightly hackish way to specify meta expressions as payload dependencies. Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'include')
-rw-r--r--include/proto.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/proto.h b/include/proto.h
index de58d4cc..6a280367 100644
--- a/include/proto.h
+++ b/include/proto.h
@@ -2,6 +2,7 @@
#define NFTABLES_PROTO_H
#include <nftables.h>
+#include <linux/netfilter/nf_tables.h>
/**
* enum proto_bases - protocol bases
@@ -30,12 +31,14 @@ extern const char *proto_base_tokens[];
* @dtype: data type of the header field
* @offset: offset of the header field from base
* @len: length of header field
+ * @meta_key: special case: meta expression key
*/
struct proto_hdr_template {
const char *token;
const struct datatype *dtype;
uint16_t offset;
uint16_t len;
+ enum nft_meta_keys meta_key;
};
#define PROTO_HDR_TEMPLATE(__token, __dtype, __offset, __len) \
@@ -46,6 +49,14 @@ struct proto_hdr_template {
.len = (__len), \
}
+#define PROTO_META_TEMPLATE(__token, __dtype, __key, __len) \
+ { \
+ .token = (__token), \
+ .dtype = (__dtype), \
+ .meta_key = (__key), \
+ .len = (__len), \
+ }
+
#define PROTO_UPPER_MAX 16
#define PROTO_HDRS_MAX 20