summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ct.c2
-rw-r--r--src/parser_bison.y10
-rw-r--r--src/scanner.l1
3 files changed, 9 insertions, 4 deletions
diff --git a/src/ct.c b/src/ct.c
index 31c7a4b1..99f450a7 100644
--- a/src/ct.c
+++ b/src/ct.c
@@ -234,6 +234,8 @@ static const struct ct_template ct_templates[] = {
BYTEORDER_HOST_ENDIAN, 64),
[NFT_CT_AVGPKT] = CT_TEMPLATE("avgpkt", &integer_type,
BYTEORDER_HOST_ENDIAN, 64),
+ [NFT_CT_ZONE] = CT_TEMPLATE("zone", &integer_type,
+ BYTEORDER_HOST_ENDIAN, 16),
};
static void ct_expr_print(const struct expr *expr)
diff --git a/src/parser_bison.y b/src/parser_bison.y
index b295bfde..80ac2bd0 100644
--- a/src/parser_bison.y
+++ b/src/parser_bison.y
@@ -358,6 +358,7 @@ static void location_update(struct location *loc, struct location *rhs, int n)
%token L3PROTOCOL "l3proto"
%token PROTO_SRC "proto-src"
%token PROTO_DST "proto-dst"
+%token ZONE "zone"
%token COUNTER "counter"
%token NAME "name"
@@ -614,7 +615,7 @@ static void location_update(struct location *loc, struct location *rhs, int n)
%type <expr> ct_expr
%destructor { expr_free($$); } ct_expr
-%type <val> ct_key ct_key_dir ct_key_counters
+%type <val> ct_key ct_key_dir ct_key_dir_optional
%type <expr> fib_expr
%destructor { expr_free($$); } fib_expr
@@ -2957,7 +2958,7 @@ ct_expr : CT ct_key
ct_key : L3PROTOCOL { $$ = NFT_CT_L3PROTOCOL; }
| PROTOCOL { $$ = NFT_CT_PROTOCOL; }
| MARK { $$ = NFT_CT_MARK; }
- | ct_key_counters
+ | ct_key_dir_optional
;
ct_key_dir : SADDR { $$ = NFT_CT_SRC; }
| DADDR { $$ = NFT_CT_DST; }
@@ -2965,12 +2966,13 @@ ct_key_dir : SADDR { $$ = NFT_CT_SRC; }
| PROTOCOL { $$ = NFT_CT_PROTOCOL; }
| PROTO_SRC { $$ = NFT_CT_PROTO_SRC; }
| PROTO_DST { $$ = NFT_CT_PROTO_DST; }
- | ct_key_counters
+ | ct_key_dir_optional
;
-ct_key_counters : BYTES { $$ = NFT_CT_BYTES; }
+ct_key_dir_optional : BYTES { $$ = NFT_CT_BYTES; }
| PACKETS { $$ = NFT_CT_PKTS; }
| AVGPKT { $$ = NFT_CT_AVGPKT; }
+ | ZONE { $$ = NFT_CT_ZONE; }
;
ct_stmt : CT ct_key SET expr
diff --git a/src/scanner.l b/src/scanner.l
index 922d8ec8..e0ddcac1 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -461,6 +461,7 @@ addrstring ({macaddr}|{ip4addr}|{ip6addr})
"l3proto" { return L3PROTOCOL; }
"proto-src" { return PROTO_SRC; }
"proto-dst" { return PROTO_DST; }
+"zone" { return ZONE; }
"numgen" { return NUMGEN; }
"inc" { return INC; }