This last patch does not work. The first one works fine with a string as chain name. # nft add table ip foo # nft add chain ip foo bar {type filter hook input priority 0\;} # nft add chain ip foo ber # nft add rule ip foo ber counter # nft add rule ip foo bar jump ber # nft list ruleset table ip foo { chain bar { type filter hook input priority filter; policy accept; jump ber } chain ber { counter packets 69 bytes 6138 } } But when trying to execute "# nft -f file.nft", being file.nft: > define dest = ber > add rule ip foo bar jump $dest I am getting the following error: file.nft:3:26-30: Error: Can't parse symbolic netfilter verdict expressions add rule ip foo bar jump $dest ^^^^^ This error comes from symbol_parse() at expr_evaluate_symbol() after the expr_evaluate() call added in the first patch. On 5/14/19 5:25 PM, Fernando Fernandez Mancera wrote: > This patch introduces the use of nft input files variables in 'jump' > statements, e.g. > > define dest = chainame > > add rule ip filter input jump $dest > > Signed-off-by: Fernando Fernandez Mancera <ffmancera@xxxxxxxxxx> > --- > src/parser_bison.y | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/src/parser_bison.y b/src/parser_bison.y > index 69b5773..42fd71f 100644 > --- a/src/parser_bison.y > +++ b/src/parser_bison.y > @@ -3841,7 +3841,13 @@ verdict_expr : ACCEPT > } > ; > > -chain_expr : identifier > +chain_expr : variable_expr > + { > + $$ = symbol_expr_alloc(&@$, SYMBOL_VALUE, > + current_scope(state), > + $1->sym->identifier); > + } > + | identifier > { > $$ = constant_expr_alloc(&@$, &string_type, > BYTEORDER_HOST_ENDIAN, >