diff -Nru xtables-addons-2.11/aclocal.m4 xtables-addons-2.12/aclocal.m4 --- xtables-addons-2.11/aclocal.m4 2016-05-20 21:42:52.871834167 +0000 +++ xtables-addons-2.12/aclocal.m4 2017-01-11 00:40:27.110821172 +0000 @@ -377,10 +377,9 @@ # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- diff -Nru xtables-addons-2.11/configure xtables-addons-2.12/configure --- xtables-addons-2.11/configure 2016-05-20 21:42:53.447820037 +0000 +++ xtables-addons-2.12/configure 2017-01-11 00:40:27.694807048 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for xtables-addons 2.11. +# Generated by GNU Autoconf 2.69 for xtables-addons 2.12. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -587,8 +587,8 @@ # Identity of this package. PACKAGE_NAME='xtables-addons' PACKAGE_TARNAME='xtables-addons' -PACKAGE_VERSION='2.11' -PACKAGE_STRING='xtables-addons 2.11' +PACKAGE_VERSION='2.12' +PACKAGE_STRING='xtables-addons 2.12' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1322,7 +1322,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures xtables-addons 2.11 to adapt to many kinds of systems. +\`configure' configures xtables-addons 2.12 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1392,7 +1392,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of xtables-addons 2.11:";; + short | recursive ) echo "Configuration of xtables-addons 2.12:";; esac cat <<\_ACEOF @@ -1511,7 +1511,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -xtables-addons configure 2.11 +xtables-addons configure 2.12 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1876,7 +1876,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by xtables-addons $as_me 2.11, which was +It was created by xtables-addons $as_me 2.12, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2428,8 +2428,8 @@ ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in @@ -2742,7 +2742,7 @@ # Define the identity of the package. PACKAGE='xtables-addons' - VERSION='2.11' + VERSION='2.12' cat >>confdefs.h <<_ACEOF @@ -11963,9 +11963,9 @@ echo "WARNING: Version detection did not succeed. Continue at own luck."; else echo "$kmajor.$kminor.$kmicro.$kstable in $kbuilddir"; - if test "$kmajor" -gt 4 -o "$kmajor" -eq 7 -a "$kminor" -gt 3; then + if test "$kmajor" -gt 4 -o "$kmajor" -eq 4 -a "$kminor" -gt 10; then echo "WARNING: That kernel version is not officially supported yet. Continue at own luck."; - elif test "$kmajor" -eq 4 -a "$kminor" -le 3; then + elif test "$kmajor" -eq 4 -a "$kminor" -le 10; then :; elif test "$kmajor" -eq 3 -a "$kminor" -ge 7; then :; @@ -12511,7 +12511,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by xtables-addons $as_me 2.11, which was +This file was extended by xtables-addons $as_me 2.12, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -12577,7 +12577,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -xtables-addons config.status 2.11 +xtables-addons config.status 2.12 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -Nru xtables-addons-2.11/configure.ac xtables-addons-2.12/configure.ac --- xtables-addons-2.11/configure.ac 2016-05-20 12:35:46.000000000 +0000 +++ xtables-addons-2.12/configure.ac 2017-01-11 00:39:53.000000000 +0000 @@ -1,4 +1,4 @@ -AC_INIT([xtables-addons], [2.11]) +AC_INIT([xtables-addons], [2.12]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIR([m4]) @@ -57,9 +57,9 @@ echo "WARNING: Version detection did not succeed. Continue at own luck."; else echo "$kmajor.$kminor.$kmicro.$kstable in $kbuilddir"; - if test "$kmajor" -gt 4 -o "$kmajor" -eq 7 -a "$kminor" -gt 3; then + if test "$kmajor" -gt 4 -o "$kmajor" -eq 4 -a "$kminor" -gt 10; then echo "WARNING: That kernel version is not officially supported yet. Continue at own luck."; - elif test "$kmajor" -eq 4 -a "$kminor" -le 3; then + elif test "$kmajor" -eq 4 -a "$kminor" -le 10; then :; elif test "$kmajor" -eq 3 -a "$kminor" -ge 7; then :; diff -Nru xtables-addons-2.11/debian/changelog xtables-addons-2.12/debian/changelog --- xtables-addons-2.11/debian/changelog 2016-12-13 21:07:08.000000000 +0000 +++ xtables-addons-2.12/debian/changelog 2017-01-28 23:15:35.000000000 +0000 @@ -1,9 +1,10 @@ -xtables-addons (2.11-3ubuntu1) zesty; urgency=medium +xtables-addons (2.12-0.1) unstable; urgency=medium - * v4.9 compatibility - debian/patches/timeout.patch + * Non-maintainer upload. + * New upstream release [January 2017] + + support for Linux 4.9, 4.10 (Closes: #851576) - -- Tim Gardner Tue, 13 Dec 2016 14:07:08 -0700 + -- Ben Hutchings Sat, 28 Jan 2017 23:15:35 +0000 xtables-addons (2.11-3) unstable; urgency=medium diff -Nru xtables-addons-2.11/debian/control xtables-addons-2.12/debian/control --- xtables-addons-2.11/debian/control 2016-12-13 21:07:08.000000000 +0000 +++ xtables-addons-2.12/debian/control 2017-01-28 23:13:50.000000000 +0000 @@ -1,8 +1,7 @@ Source: xtables-addons Section: admin Priority: extra -Maintainer: Ubuntu Developers -XSBC-Original-Maintainer: Pierre Chifflier +Maintainer: Pierre Chifflier Uploaders: Dmitry Smirnov Build-Depends: debhelper (>= 9), dh-autoreconf, dkms, bzip2, pkg-config, diff -Nru xtables-addons-2.11/debian/patches/series xtables-addons-2.12/debian/patches/series --- xtables-addons-2.11/debian/patches/series 2016-12-13 21:06:26.000000000 +0000 +++ xtables-addons-2.12/debian/patches/series 2017-01-28 23:13:50.000000000 +0000 @@ -1,2 +1 @@ #automake-1.11.2.patch -timeout.patch diff -Nru xtables-addons-2.11/debian/patches/timeout.patch xtables-addons-2.12/debian/patches/timeout.patch --- xtables-addons-2.11/debian/patches/timeout.patch 2016-12-13 21:06:33.000000000 +0000 +++ xtables-addons-2.12/debian/patches/timeout.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ -Description: - TODO: Put a short summary on the line above and replace this paragraph - with a longer explanation of this change. Complete the meta-information - with other relevant fields (see below for details). To make it easier, the - information below has been extracted from the changelog. Adjust it or drop - it. - . - xtables-addons (2.11-3) unstable; urgency=medium - . - * Re-build for auto-iptables transition (Closes: #845516). - * rules: make build reproducible (Closes: #803601). - Thanks, Reiner Herrmann. -Author: Dmitry Smirnov -Bug-Debian: https://bugs.debian.org/803601 -Bug-Debian: https://bugs.debian.org/845516 - ---- -The information above should follow the Patch Tagging Guidelines, please -checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here -are templates for supplementary fields that you might want to add: - -Origin: , -Bug: -Bug-Debian: https://bugs.debian.org/ -Bug-Ubuntu: https://launchpad.net/bugs/ -Forwarded: -Reviewed-By: -Last-Update: - ---- xtables-addons-2.11.orig/extensions/xt_LOGMARK.c -+++ xtables-addons-2.11/extensions/xt_LOGMARK.c -@@ -58,8 +58,13 @@ static void logmark_ct(const struct nf_c - printk("%s""ASSURED", prev++ ? "," : ""); - if (ct->status & IPS_CONFIRMED) - printk("%s""CONFIRMED", prev++ ? "," : ""); -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 9, 0) - printk(" lifetime=%lus", - (jiffies - ct->timeout.expires) / HZ); -+#else -+ printk(" lifetime=%lus", -+ (jiffies - ct->timeout) / HZ); -+#endif - } - - static unsigned int diff -Nru xtables-addons-2.11/doc/changelog.txt xtables-addons-2.12/doc/changelog.txt --- xtables-addons-2.11/doc/changelog.txt 2016-05-20 12:35:46.000000000 +0000 +++ xtables-addons-2.12/doc/changelog.txt 2017-01-11 00:39:53.000000000 +0000 @@ -3,6 +3,12 @@ ==== +v2.12 (2017-01-11) +================== +Enhancements: +- support for Linux up to 4.10 + + v2.11 (2016-05-20) ================== Enhancements: diff -Nru xtables-addons-2.11/extensions/ACCOUNT/xt_ACCOUNT.c xtables-addons-2.12/extensions/ACCOUNT/xt_ACCOUNT.c --- xtables-addons-2.11/extensions/ACCOUNT/xt_ACCOUNT.c 2016-05-20 12:35:46.000000000 +0000 +++ xtables-addons-2.12/extensions/ACCOUNT/xt_ACCOUNT.c 2017-01-11 00:39:53.000000000 +0000 @@ -482,12 +482,16 @@ static unsigned int ipt_acc_target(struct sk_buff *skb, const struct xt_action_param *par) { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) + struct ipt_acc_net *ian = net_generic(par->state->net, ipt_acc_net_id); +#else #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,4,0) struct ipt_acc_net *ian = net_generic(par->net, ipt_acc_net_id); #else struct net *net = dev_net(par->in ? par->in : par->out); struct ipt_acc_net *ian = net_generic(net, ipt_acc_net_id); #endif +#endif struct ipt_acc_table *ipt_acc_tables = ian->ipt_acc_tables; const struct ipt_acc_info *info = par->targinfo; diff -Nru xtables-addons-2.11/extensions/compat_xtables.h xtables-addons-2.12/extensions/compat_xtables.h --- xtables-addons-2.11/extensions/compat_xtables.h 2016-05-20 12:35:46.000000000 +0000 +++ xtables-addons-2.12/extensions/compat_xtables.h 2017-01-11 00:39:53.000000000 +0000 @@ -82,11 +82,15 @@ static inline struct net *par_net(const struct xt_action_param *par) { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0) + return par->state->net; +#else #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0) return par->net; #else return dev_net((par->in != NULL) ? par->in : par->out); #endif +#endif } #endif /* _XTABLES_COMPAT_H */ diff -Nru xtables-addons-2.11/extensions/xt_CHAOS.c xtables-addons-2.12/extensions/xt_CHAOS.c --- xtables-addons-2.11/extensions/xt_CHAOS.c 2016-05-20 12:35:46.000000000 +0000 +++ xtables-addons-2.12/extensions/xt_CHAOS.c 2017-01-11 00:39:53.000000000 +0000 @@ -58,8 +58,12 @@ { struct xt_action_param local_par; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) + local_par.state = par->state; +#else local_par.in = par->in, local_par.out = par->out, +#endif local_par.match = xm_tcp; local_par.matchinfo = &tcp_params; local_par.fragoff = fragoff; @@ -74,12 +78,16 @@ destiny = (info->variant == XTCHAOS_TARPIT) ? xt_tarpit : xt_delude; { struct xt_action_param local_par; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) + local_par.state = par->state; +#else local_par.in = par->in; local_par.out = par->out; local_par.hooknum = par->hooknum; + local_par.family = par->family; +#endif local_par.target = destiny; local_par.targinfo = par->targinfo; - local_par.family = par->family; destiny->target(skb, &local_par); } } @@ -100,9 +108,13 @@ if ((unsigned int)prandom_u32() <= reject_percentage) { struct xt_action_param local_par; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) + local_par.state = par->state; +#else local_par.in = par->in; local_par.out = par->out; local_par.hooknum = par->hooknum; +#endif local_par.target = xt_reject; local_par.targinfo = &reject_params; return xt_reject->target(skb, &local_par); @@ -111,7 +123,12 @@ /* TARPIT/DELUDE may not be called from the OUTPUT chain */ if (iph->protocol == IPPROTO_TCP && info->variant != XTCHAOS_NORMAL && - par->hooknum != NF_INET_LOCAL_OUT) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) + par->state->hook +#else + par->hooknum +#endif + != NF_INET_LOCAL_OUT) xt_chaos_total(skb, par); return NF_DROP; diff -Nru xtables-addons-2.11/extensions/xt_DELUDE.c xtables-addons-2.12/extensions/xt_DELUDE.c --- xtables-addons-2.11/extensions/xt_DELUDE.c 2016-05-20 12:35:46.000000000 +0000 +++ xtables-addons-2.12/extensions/xt_DELUDE.c 2017-01-11 00:39:53.000000000 +0000 @@ -151,7 +151,13 @@ * a problem, as that is supported since Linux 2.6.35. But since we do not * actually want to have a connection open, we are still going to drop it. */ - delude_send_reset(par_net(par), skb, par->hooknum); + delude_send_reset(par_net(par), skb, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) + par->state->hook +#else + par->hooknum +#endif + ); return NF_DROP; } diff -Nru xtables-addons-2.11/extensions/xt_DNETMAP.c xtables-addons-2.12/extensions/xt_DNETMAP.c --- xtables-addons-2.11/extensions/xt_DNETMAP.c 2016-05-20 12:35:46.000000000 +0000 +++ xtables-addons-2.12/extensions/xt_DNETMAP.c 2017-01-11 00:39:53.000000000 +0000 @@ -356,7 +356,11 @@ static unsigned int dnetmap_tg(struct sk_buff *skb, const struct xt_action_param *par) { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) + struct net *net = dev_net(par->state->in ? par->state->in : par->state->out); +#else struct net *net = dev_net(par->in ? par->in : par->out); +#endif struct dnetmap_net *dnetmap_net = dnetmap_pernet(net); struct nf_conn *ct; enum ip_conntrack_info ctinfo; @@ -367,16 +371,21 @@ struct dnetmap_entry *e; struct dnetmap_prefix *p; __s32 jttl; - - NF_CT_ASSERT(par->hooknum == NF_INET_POST_ROUTING || - par->hooknum == NF_INET_LOCAL_OUT || - par->hooknum == NF_INET_PRE_ROUTING); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) + unsigned int hooknum = par->state->hook; +#else + unsigned int hooknum = par->hooknum; +#endif + + NF_CT_ASSERT(hooknum == NF_INET_POST_ROUTING || + hooknum == NF_INET_LOCAL_OUT || + hooknum == NF_INET_PRE_ROUTING); ct = nf_ct_get(skb, &ctinfo); jttl = tginfo->flags & XT_DNETMAP_TTL ? tginfo->ttl * HZ : jtimeout; /* in prerouting we try to map postnat-ip to prenat-ip */ - if (par->hooknum == NF_INET_PRE_ROUTING) { + if (hooknum == NF_INET_PRE_ROUTING) { postnat_ip = ip_hdr(skb)->daddr; spin_lock_bh(&dnetmap_lock); @@ -407,7 +416,7 @@ newrange.min_proto = mr->min_proto; newrange.max_proto = mr->max_proto; return nf_nat_setup_info(ct, &newrange, - HOOK2MANIP(par->hooknum)); + HOOK2MANIP(hooknum)); } prenat_ip = ip_hdr(skb)->saddr; @@ -495,7 +504,11 @@ newrange.max_addr.ip = postnat_ip; newrange.min_proto = mr->min_proto; newrange.max_proto = mr->max_proto; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) + return nf_nat_setup_info(ct, &newrange, HOOK2MANIP(par->state->hook)); +#else return nf_nat_setup_info(ct, &newrange, HOOK2MANIP(par->hooknum)); +#endif no_rev_map: no_free_ip: diff -Nru xtables-addons-2.11/extensions/xt_ECHO.c xtables-addons-2.12/extensions/xt_ECHO.c --- xtables-addons-2.11/extensions/xt_ECHO.c 2016-05-20 12:35:46.000000000 +0000 +++ xtables-addons-2.12/extensions/xt_ECHO.c 2017-01-11 00:39:53.000000000 +0000 @@ -35,7 +35,11 @@ void *payload; struct flowi6 fl; struct dst_entry *dst = NULL; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) + struct net *net = dev_net((par->state->in != NULL) ? par->state->in : par->state->out); +#else struct net *net = dev_net((par->in != NULL) ? par->in : par->out); +#endif /* This allows us to do the copy operation in fewer lines of code. */ if (skb_linearize(oldskb) < 0) diff -Nru xtables-addons-2.11/extensions/xt_iface.c xtables-addons-2.12/extensions/xt_iface.c --- xtables-addons-2.11/extensions/xt_iface.c 2016-05-20 12:35:46.000000000 +0000 +++ xtables-addons-2.12/extensions/xt_iface.c 2017-01-11 00:39:53.000000000 +0000 @@ -45,9 +45,17 @@ const struct xt_action_param *par, struct net_device **put) { if (info->flags & XT_IFACE_DEV_IN) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) + return par->state->in; +#else return par->in; +#endif else if (info->flags & XT_IFACE_DEV_OUT) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) + return par->state->out; +#else return par->out; +#endif return *put = dev_get_by_name(&init_net, info->ifname); } diff -Nru xtables-addons-2.11/extensions/xt_LOGMARK.c xtables-addons-2.12/extensions/xt_LOGMARK.c --- xtables-addons-2.11/extensions/xt_LOGMARK.c 2016-05-20 12:35:46.000000000 +0000 +++ xtables-addons-2.12/extensions/xt_LOGMARK.c 2017-01-11 00:39:53.000000000 +0000 @@ -58,8 +58,12 @@ printk("%s""ASSURED", prev++ ? "," : ""); if (ct->status & IPS_CONFIRMED) printk("%s""CONFIRMED", prev++ ? "," : ""); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,9,0) + printk(" lifetime=%lus", nf_ct_expires(ct) / HZ); +#else printk(" lifetime=%lus", (jiffies - ct->timeout.expires) / HZ); +#endif } static unsigned int @@ -72,7 +76,11 @@ printk("<%u>%.*s""iif=%d hook=%s nfmark=0x%x " "secmark=0x%x classify=0x%x", info->level, (unsigned int)sizeof(info->prefix), info->prefix, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) + skb_ifindex(skb), hook_names[par->state->hook], +#else skb_ifindex(skb), hook_names[par->hooknum], +#endif skb_nfmark(skb), skb_secmark(skb), skb->priority); ct = nf_ct_get(skb, &ctinfo); diff -Nru xtables-addons-2.11/extensions/xt_lscan.c xtables-addons-2.12/extensions/xt_lscan.c --- xtables-addons-2.11/extensions/xt_lscan.c 2016-05-20 12:35:46.000000000 +0000 +++ xtables-addons-2.12/extensions/xt_lscan.c 2017-01-11 00:39:53.000000000 +0000 @@ -204,7 +204,11 @@ unsigned int n; n = lscan_mt_full(ctdata->mark & connmark_mask, ctstate, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) + par->state->in == init_net.loopback_dev, tcph, +#else par->in == init_net.loopback_dev, tcph, +#endif skb->len - par->thoff - 4 * tcph->doff); ctdata->mark = (ctdata->mark & ~connmark_mask) | n; diff -Nru xtables-addons-2.11/extensions/xt_TARPIT.c xtables-addons-2.12/extensions/xt_TARPIT.c --- xtables-addons-2.11/extensions/xt_TARPIT.c 2016-05-20 12:35:46.000000000 +0000 +++ xtables-addons-2.12/extensions/xt_TARPIT.c 2017-01-11 00:39:53.000000000 +0000 @@ -455,7 +455,11 @@ if (iph->frag_off & htons(IP_OFFSET)) return NF_DROP; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) + tarpit_tcp4(par_net(par), skb, par->state->hook, info->variant); +#else tarpit_tcp4(par_net(par), skb, par->hooknum, info->variant); +#endif return NF_DROP; } @@ -497,7 +501,11 @@ return NF_DROP; } +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) + tarpit_tcp6(par_net(par), skb, par->state->hook, info->variant); +#else tarpit_tcp6(par_net(par), skb, par->hooknum, info->variant); +#endif return NF_DROP; } #endif diff -Nru xtables-addons-2.11/xtables-addons.8.in xtables-addons-2.12/xtables-addons.8.in --- xtables-addons-2.11/xtables-addons.8.in 2016-05-20 12:35:46.000000000 +0000 +++ xtables-addons-2.12/xtables-addons.8.in 2017-01-11 00:39:53.000000000 +0000 @@ -1,4 +1,4 @@ -.TH xtables-addons 8 "For Workgroups?" "" "v2.11 (2016-05-20)" +.TH xtables-addons 8 "Not For Workgroups" "" "v2.12 (2017-01-11)" .SH Name Xtables-addons \(em additional extensions for iptables, ip6tables, etc. .SH Targets