]> git.ipfire.org Git - thirdparty/iptables.git/commit
use nf_tables and nf_tables compatibility interface
authorPablo Neira Ayuso <pablo@netfilter.org>
Thu, 27 Sep 2012 17:12:53 +0000 (19:12 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 30 Dec 2013 22:50:09 +0000 (23:50 +0100)
commit384958620abab397062b67fb2763e813b63f74f0
treeec01cb88585150a37f122bfbf39ea33218bafdb6
parent99b85b7837707bd6c6d578c9328e1321fceb8082
use nf_tables and nf_tables compatibility interface

This patch adds the following utilities:

* xtables
* xtables-restore
* xtables-save
* xtables-config

They all use Patrick's nf_tables infrastructure plus my compatibility
layer.

xtables, xtables-restore and xtables-save are syntax compatible with
ip[6]tables, ip[6]tables-restore and ip[6]tables-save.

Semantics aims to be similar, still the main exception is that there
is no commit operation. Thus, we incrementally add/delete rules without
entire table locking.

The following options are also not yet implemented:

-Z (this requires adding expr->ops->reset(...) so nft_counters can reset
    internal state of expressions while dumping it)

-R and -E (this requires adding this feature to nf_tables)

-f (can be implemented with expressions: payload 6 (2-bytes) + bitwise a&b^!b + cmp neq 0)

-IPv6 support.

But those are a matter of time to get them done.

A new utility, xtables-config, is available to register tables and
chains. By default there is a configuration file that adds backward
compatible tables and chains under iptables/etc/xtables.conf. You have
to call this utility first to register tables and chains.

However, it would be possible to automagically register tables and
chains while using xtables and xtables-restore to get similar operation
than with iptables.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
23 files changed:
configure.ac
etc/xtables.conf [new file with mode: 0644]
include/iptables.h
include/linux/netfilter/nf_tables.h [new file with mode: 0644]
include/linux/netfilter/nf_tables_compat.h [new file with mode: 0644]
include/linux/netfilter/nfnetlink.h [new file with mode: 0644]
include/xtables.h
iptables/Makefile.am
iptables/ip6tables.c
iptables/iptables.c
iptables/nft.c [new file with mode: 0644]
iptables/nft.h [new file with mode: 0644]
iptables/xshared.h
iptables/xtables-config-parser.y [new file with mode: 0644]
iptables/xtables-config-syntax.l [new file with mode: 0644]
iptables/xtables-config.c [new file with mode: 0644]
iptables/xtables-multi.c
iptables/xtables-multi.h
iptables/xtables-restore.c [new file with mode: 0644]
iptables/xtables-save.c [new file with mode: 0644]
iptables/xtables-standalone.c [new file with mode: 0644]
iptables/xtables.c [new file with mode: 0644]
libxtables/xtables.c