]> git.ipfire.org Git - thirdparty/nftables.git/commit
src: add xt compat support
authorPablo Neira Ayuso <pablo@netfilter.org>
Tue, 12 Jul 2016 20:04:17 +0000 (22:04 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Wed, 13 Jul 2016 09:54:21 +0000 (11:54 +0200)
commitb65a70131d0d38844be12235270eebaa9d2f5a4d
treecf3d687dba6d9a581e98e00f95ee4a692d019a0c
parentb553eefe5ef1ac538fdf051df51481d19c9fbf4e
src: add xt compat support

At compilation time, you have to pass this option.

  # ./configure --with-xtables

And libxtables needs to be installed in your system.

This patch allows to list a ruleset containing xt extensions loaded
through iptables-compat-restore tool.

Example:

$ iptables-save > ruleset

$ cat ruleset
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p tcp -m multiport --dports 80,81 -j REJECT
COMMIT

$ sudo iptables-compat-restore ruleset

$ sudo nft list rulseset
table ip filter {
    chain INPUT {
        type filter hook input priority 0; policy accept;
        ip protocol tcp tcp dport { 80,81} counter packets 0 bytes 0 reject
    }

    chain FORWARD {
        type filter hook forward priority 0; policy drop;
    }

    chain OUTPUT {
        type filter hook output priority 0; policy accept;
    }
}

A translation of the extension is shown if this is available. In other
case, match or target definition is preceded by a hash. For example,
classify target has not translation:

$ sudo nft list chain mangle POSTROUTING
table ip mangle {
    chain POSTROUTING {
        type filter hook postrouting priority -150; policy accept;
        ip protocol tcp tcp dport 80 counter packets 0 bytes 0 # CLASSIFY set 20:10
                                                              ^^^
    }
}

If the whole ruleset is translatable, the users can (re)load it using
"nft -f" and get nft native support for all their rules.

This patch is joint work by the authors listed below.

Signed-off-by: Arturo Borrero Gonzalez <arturo.borrero.glez@gmail.com>
Signed-off-by: Pablo M. Bermudo Garay <pablombg@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
configure.ac
include/linux/netfilter/nf_tables_compat.h [new file with mode: 0644]
include/statement.h
include/xt.h [new file with mode: 0644]
src/Makefile.am
src/evaluate.c
src/netlink_delinearize.c
src/statement.c
src/xt.c [new file with mode: 0644]