summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorPhil Sutter <phil@nwl.cc>2017-03-10 18:13:50 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2017-03-10 19:01:21 +0100
commit627be570eff8f05849614a257e6fa45c744f4dbd (patch)
treebf434417d7d862ab4ee74cb7f330729fa84149fc /include
parent9fd9baba43c8ee17f944a1157b77a8e47cb9ba41 (diff)
exthdr: Add support for exthdr specific flags
This allows to have custom flags in exthdr expression, which is necessary for upcoming existence checks (of both IPv6 extension headers as well as TCP options). Signed-off-by: Phil Sutter <phil@nwl.cc> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'include')
-rw-r--r--include/expression.h1
-rw-r--r--include/exthdr.h2
-rw-r--r--include/tcpopt.h3
3 files changed, 4 insertions, 2 deletions
diff --git a/include/expression.h b/include/expression.h
index 4f2948cc..423eae71 100644
--- a/include/expression.h
+++ b/include/expression.h
@@ -282,6 +282,7 @@ struct expr {
const struct proto_hdr_template *tmpl;
unsigned int offset;
enum nft_exthdr_op op;
+ unsigned int flags;
} exthdr;
struct {
/* EXPR_META */
diff --git a/include/exthdr.h b/include/exthdr.h
index cdcc2b95..c7f806eb 100644
--- a/include/exthdr.h
+++ b/include/exthdr.h
@@ -23,7 +23,7 @@ extern struct expr *exthdr_expr_alloc(const struct location *loc,
extern void exthdr_init_raw(struct expr *expr, uint8_t type,
unsigned int offset, unsigned int len,
- enum nft_exthdr_op op);
+ enum nft_exthdr_op op, uint32_t flags);
extern bool exthdr_find_template(struct expr *expr, const struct expr *mask,
unsigned int *shift);
diff --git a/include/tcpopt.h b/include/tcpopt.h
index f43a7eb7..412d02e7 100644
--- a/include/tcpopt.h
+++ b/include/tcpopt.h
@@ -8,7 +8,8 @@ extern struct expr *tcpopt_expr_alloc(const struct location *loc,
uint8_t type, uint8_t field);
extern void tcpopt_init_raw(struct expr *expr, uint8_t type,
- unsigned int offset, unsigned int len);
+ unsigned int offset, unsigned int len,
+ uint32_t flags);
extern bool tcpopt_find_template(struct expr *expr, const struct expr *mask,
unsigned int *shift);