diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ct.c | 2 | ||||
-rw-r--r-- | src/parser_bison.y | 10 | ||||
-rw-r--r-- | src/scanner.l | 1 |
3 files changed, 9 insertions, 4 deletions
@@ -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; } |