%destructor { expr_free($$); } meta_expr
%type <val> meta_key meta_key_qualified meta_key_unqualified numgen_type
+%type <val> nf_key_proto
+
%type <expr> rt_expr
%destructor { expr_free($$); } rt_expr
-%type <val> rt_key_proto rt_key
+%type <val> rt_key
%type <expr> ct_expr
%destructor { expr_free($$); } ct_expr
-%type <val> ct_key ct_dir ct_key_dir_optional ct_key_dir ct_key_proto ct_key_proto_field
+%type <val> ct_key ct_dir ct_key_dir_optional ct_key_dir ct_key_proto_field
%type <expr> fib_expr
%destructor { expr_free($$); } fib_expr
}
;
-rt_key_proto : IP { $$ = NFPROTO_IPV4; }
+nf_key_proto : IP { $$ = NFPROTO_IPV4; }
| IP6 { $$ = NFPROTO_IPV6; }
;
{
$$ = rt_expr_alloc(&@$, $2, true);
}
- | RT rt_key_proto rt_key
+ | RT nf_key_proto rt_key
{
enum nft_rt_keys rtk = $3;
{
$$ = ct_expr_alloc(&@$, $3, $2, NFPROTO_UNSPEC);
}
- | CT ct_dir ct_key_proto ct_key_proto_field
+ | CT ct_dir nf_key_proto ct_key_proto_field
{
$$ = ct_expr_alloc(&@$, $4, $2, $3);
}
| ct_key_dir_optional
;
-ct_key_proto : IP { $$ = NFPROTO_IPV4; }
- | IP6 { $$ = NFPROTO_IPV6; }
- ;
-
ct_key_proto_field : SADDR { $$ = NFT_CT_SRC; }
| DADDR { $$ = NFT_CT_DST; }
;