path: root/include/netlink.h
diff options
authorArturo Borrero <>2014-09-02 16:42:22 +0200
committerPablo Neira Ayuso <>2014-09-09 15:38:14 +0200
commit6def2fbb5deb33b489dfef1ed8d23aac9f639c9f (patch)
treedb82c71e17f7e828555f5ac50134774388e4b357 /include/netlink.h
parent9173c1ab4846f5934932511c97b29b7755ca1e19 (diff)
src: add `flush ruleset'
This patch adds the `flush ruleset' operation to nft. The syntax is: % nft flush ruleset [family] To flush all the ruleset (all families): % nft flush ruleset To flush the ruleset of a given family: % nft flush ruleset ip % nft flush ruleset inet This flush is a shortcut operation which deletes all rules, sets, tables and chains. It's possible since the modifications in the kernel to the NFT_MSG_DELTABLE API call. Users can benefit of this operation when doing an atomic replacement of the entire ruleset, loading a file like this: ========= flush ruleset table ip filter { chain input { counter accept } } ========= Also, users who want to simply clean the ruleset for whatever reason can do it now without having to iterate families/tables. Signed-off-by: Arturo Borrero Gonzalez <> Signed-off-by: Pablo Neira Ayuso <>
Diffstat (limited to 'include/netlink.h')
1 files changed, 4 insertions, 0 deletions
diff --git a/include/netlink.h b/include/netlink.h
index d7d5c2d1..f611452f 100644
--- a/include/netlink.h
+++ b/include/netlink.h
@@ -144,6 +144,10 @@ extern int netlink_io_error(struct netlink_ctx *ctx,
const struct location *loc, const char *fmt, ...);
extern void netlink_open_error(void) __noreturn;
+extern int netlink_flush_ruleset(struct netlink_ctx *ctx,
+ const struct handle *h,
+ const struct location *loc);
extern struct nft_ruleset *netlink_dump_ruleset(struct netlink_ctx *ctx,
const struct handle *h,
const struct location *loc);