Revisit f99ccda252fa ("parser: allow listing sets in one table") to add an alias to list all sets in a given table, eg. # nft list sets ip x table ip x { set s1 { type ipv4_addr } set s2 { type ipv4_addr } } This is similar to 275989737ec4 ("parser_bison: simplify reset syntax"). Update nft(8) manpage too. Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> --- doc/nft.txt | 2 ++ src/parser_bison.y | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/doc/nft.txt b/doc/nft.txt index 846ccfb28b92..12de0181ab91 100644 --- a/doc/nft.txt +++ b/doc/nft.txt @@ -588,6 +588,8 @@ section describes nft set syntax in more detail. *add set* ['family'] 'table' 'set' *{ type* 'type' | *typeof* 'expression' *;* [*flags* 'flags' *;*] [*timeout* 'timeout' *;*] [*gc-interval* 'gc-interval' *;*] [*elements = {* 'element'[*,* ...] *} ;*] [*size* 'size' *;*] [*comment* 'comment' *;*'] [*policy* 'policy' *;*] [*auto-merge ;*] *}* {*delete* | *destroy* | *list* | *flush* | *reset* } *set* ['family'] 'table' 'set' *list sets* ['family'] +*list sets* ['family'] 'table' +*list set* ['family'] 'table' 'set' *delete set* ['family'] 'table' *handle* 'handle' {*add* | *delete* | *destroy* } *element* ['family'] 'table' 'set' *{* 'element'[*,* ...] *}* diff --git a/src/parser_bison.y b/src/parser_bison.y index c8714812532d..ac8de398f8a7 100644 --- a/src/parser_bison.y +++ b/src/parser_bison.y @@ -1590,8 +1590,13 @@ list_cmd : TABLE table_spec { $$ = cmd_alloc(CMD_LIST, CMD_OBJ_SETS, &$2, &@$, NULL); } + | SETS table_spec + { + $$ = cmd_alloc(CMD_LIST, CMD_OBJ_SETS, &$2, &@$, NULL); + } | SETS TABLE table_spec { + /* alias of previous rule. */ $$ = cmd_alloc(CMD_LIST, CMD_OBJ_SETS, &$3, &@$, NULL); } | SET set_spec -- 2.30.2