diff options
Diffstat (limited to 'src/parser_bison.y')
-rw-r--r-- | src/parser_bison.y | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/parser_bison.y b/src/parser_bison.y index 0e04a0e4..731a5b3e 100644 --- a/src/parser_bison.y +++ b/src/parser_bison.y @@ -1792,6 +1792,17 @@ map_block : /* empty */ { $$ = $<set>-1; } $1->flags |= NFT_SET_MAP; $$ = $1; } + | map_block TYPE + data_type_expr COLON INTERVAL data_type_expr + stmt_separator + { + $1->key = $3; + $1->data = $6; + $1->data->flags |= EXPR_F_INTERVAL; + + $1->flags |= NFT_SET_MAP; + $$ = $1; + } | map_block TYPEOF typeof_expr COLON typeof_expr stmt_separator @@ -1803,6 +1814,18 @@ map_block : /* empty */ { $$ = $<set>-1; } $1->flags |= NFT_SET_MAP; $$ = $1; } + | map_block TYPEOF + typeof_expr COLON INTERVAL typeof_expr + stmt_separator + { + $1->key = $3; + datatype_set($1->key, $3->dtype); + $1->data = $6; + $1->data->flags |= EXPR_F_INTERVAL; + + $1->flags |= NFT_SET_MAP; + $$ = $1; + } | map_block TYPE data_type_expr COLON COUNTER stmt_separator @@ -3171,6 +3194,17 @@ nat_stmt_args : stmt_expr $<stmt>0->nat.addr = $6; $<stmt>0->nat.ipportmap = true; } + | nf_key_proto INTERVAL TO stmt_expr + { + $<stmt>0->nat.family = $1; + $<stmt>0->nat.addr = $4; + $<stmt>0->nat.type_flags = STMT_NAT_F_INTERVAL; + } + | INTERVAL TO stmt_expr + { + $<stmt>0->nat.addr = $3; + $<stmt>0->nat.type_flags = STMT_NAT_F_INTERVAL; + } ; masq_stmt : masq_stmt_alloc masq_stmt_args |