67 lines
2.7 KiB
Diff
67 lines
2.7 KiB
Diff
From fe34381b48689be42d8fd02543d12b0a99d8590c Mon Sep 17 00:00:00 2001
|
|
From: Phil Sutter <psutter@redhat.com>
|
|
Date: Fri, 17 Jul 2026 11:14:04 +0200
|
|
Subject: [PATCH] parser_bison: allow delete command with map via handle
|
|
|
|
JIRA: https://issues.redhat.com/browse/RHEL-190549
|
|
Upstream Status: nftables commit 640312b1529c548790117635c91886a6c83e83f2
|
|
|
|
commit 640312b1529c548790117635c91886a6c83e83f2
|
|
Author: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
Date: Sun Jun 15 11:36:28 2025 +0200
|
|
|
|
parser_bison: allow delete command with map via handle
|
|
|
|
For consistency with sets, allow delete via handle for maps too.
|
|
|
|
Fixes: f4a34d25f6d5 ("src: list set handle and delete set via set handle")
|
|
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
|
|
Signed-off-by: Phil Sutter <psutter@redhat.com>
|
|
---
|
|
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 47482fa..67a35e1 100644
|
|
--- a/src/parser_bison.y
|
|
+++ b/src/parser_bison.y
|
|
@@ -1448,7 +1448,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 0db4c69..9eb75e6 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 f0bb02a..dd390e7 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
|