For consistency with sets, allow delete via handle for maps too. This fix requires the handle hashtable lookup infrastructure. Fixes: f4a34d25f6d5 ("src: list set handle and delete set via set handle") Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> --- src/parser_bison.y | 2 +- tests/shell/testcases/cache/0008_delete_by_handle_0 | 4 ++++ tests/shell/testcases/cache/0009_delete_by_handle_incorrect_0 | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/parser_bison.y b/src/parser_bison.y index 87b34293d22c..9278b67a2931 100644 --- a/src/parser_bison.y +++ b/src/parser_bison.y @@ -1450,7 +1450,7 @@ delete_cmd : TABLE table_or_id_spec { $$ = cmd_alloc(CMD_DELETE, CMD_OBJ_SET, &$2, &@$, NULL); } - | MAP set_spec + | MAP set_or_id_spec { $$ = cmd_alloc(CMD_DELETE, CMD_OBJ_SET, &$2, &@$, NULL); } diff --git a/tests/shell/testcases/cache/0008_delete_by_handle_0 b/tests/shell/testcases/cache/0008_delete_by_handle_0 index 0db4c693f6d4..9eb75e6ce374 100755 --- a/tests/shell/testcases/cache/0008_delete_by_handle_0 +++ b/tests/shell/testcases/cache/0008_delete_by_handle_0 @@ -16,6 +16,10 @@ $NFT add set t s { type ipv4_addr\; } HANDLE=`$NFT -a list ruleset | grep "set.*handle" | cut -d' ' -f6` $NFT delete set t handle $HANDLE +$NFT add map t m { type ipv4_addr : ipv4_addr\; } +HANDLE=`$NFT -a list ruleset | grep "map.*handle" | cut -d' ' -f6` +$NFT delete map t handle $HANDLE + $NFT add flowtable t f { hook ingress priority 0\; devices = { lo } \; } HANDLE=`$NFT -a list ruleset | grep "flowtable.*handle" | cut -d' ' -f6` $NFT delete flowtable t handle $HANDLE diff --git a/tests/shell/testcases/cache/0009_delete_by_handle_incorrect_0 b/tests/shell/testcases/cache/0009_delete_by_handle_incorrect_0 index f0bb02a636ee..dd390e73c8e8 100755 --- a/tests/shell/testcases/cache/0009_delete_by_handle_incorrect_0 +++ b/tests/shell/testcases/cache/0009_delete_by_handle_incorrect_0 @@ -3,6 +3,7 @@ $NFT delete table handle 4000 && exit 1 $NFT delete chain t handle 4000 && exit 1 $NFT delete set t handle 4000 && exit 1 +$NFT delete map t handle 4000 && exit 1 $NFT delete flowtable t handle 4000 && exit 1 $NFT delete counter t handle 4000 && exit 1 exit 0 -- 2.30.2