diff options
author | Patrick McHardy <kaber@trash.net> | 2014-01-08 13:02:16 +0000 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2014-01-08 13:03:19 +0000 |
commit | b90667a2ae941d2b79630d0344ef489c2bf9d9aa (patch) | |
tree | 39484a0b038b6db9509b18d6585e9da590213629 /include | |
parent | 1249b7b0b47bca67cf3adac4143b4bda43e4c582 (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.h | 11 |
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 |