summaryrefslogtreecommitdiffstats
path: root/include/statement.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/statement.h')
-rw-r--r--include/statement.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/statement.h b/include/statement.h
index a6a86f94..e9313ca7 100644
--- a/include/statement.h
+++ b/include/statement.h
@@ -138,12 +138,22 @@ struct set_stmt {
extern struct stmt *set_stmt_alloc(const struct location *loc);
+struct flow_stmt {
+ struct expr *set;
+ struct expr *key;
+ struct stmt *stmt;
+ const char *table;
+};
+
+extern struct stmt *flow_stmt_alloc(const struct location *loc);
+
/**
* enum stmt_types - statement types
*
* @STMT_INVALID: uninitialised
* @STMT_EXPRESSION: expression statement (relational)
* @STMT_VERDICT: verdict statement
+ * @STMT_FLOW: flow statement
* @STMT_COUNTER: counters
* @STMT_PAYLOAD: payload statement
* @STMT_META: meta statement
@@ -163,6 +173,7 @@ enum stmt_types {
STMT_INVALID,
STMT_EXPRESSION,
STMT_VERDICT,
+ STMT_FLOW,
STMT_COUNTER,
STMT_PAYLOAD,
STMT_META,
@@ -217,6 +228,7 @@ struct stmt {
union {
struct expr *expr;
+ struct flow_stmt flow;
struct counter_stmt counter;
struct payload_stmt payload;
struct meta_stmt meta;