From: Pablo Neira Ayuso <pablo@netfilter.org>
To: Luciano Coelho <luciano.coelho@nokia.com>
Cc: Changli Gao <xiaosuo@gmail.com>,
Samuel Ortiz <sameo@linux.intel.com>,
Patrick McHardy <kaber@trash.net>,
"David S. Miller" <davem@davemloft.net>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"netfilter-devel@vger.kernel.org"
<netfilter-devel@vger.kernel.org>
Subject: Re: [PATCH] netfilter: xtables: userspace notification target
Date: Tue, 13 Jul 2010 18:38:09 +0200 [thread overview]
Message-ID: <4C3C9671.5090503@netfilter.org> (raw)
In-Reply-To: <1279016596.12673.11.camel@chilepepper>
On 13/07/10 12:23, Luciano Coelho wrote:
> On Tue, 2010-07-13 at 10:50 +0200, ext Pablo Neira Ayuso wrote:
>> On 13/07/10 08:18, Changli Gao wrote:
>>> On Tue, Jul 13, 2010 at 8:11 AM, Samuel Ortiz<sameo@linux.intel.com> wrote:
>>>>
>>>> The userspace notification Xtables target sends a netlink notification
>>>> whenever a packet hits the target. Notifications have a label attribute
>>>> for userspace to match it against a previously set rule. The rules also
>>>> take a --all option to switch between sending a notification for all
>>>> packets or for the first one only.
>>>> Userspace can also send a netlink message to toggle this switch while the
>>>> target is in place. This target uses the nefilter netlink framework.
>>>>
>>>> This target combined with various matches (quota, rateest, etc..) allows
>>>> userspace to make decisions on interfaces handling. One could for example
>>>> decide to switch between power saving modes depending on estimated rate
>>>> thresholds.
>>>>
>>>
>>> It much like the following iptables rules.
>>>
>>> iptables -N log_and_drop
>>> iptables -A log_and_drop -j NFLOG --nflog-group 1 --nflog-prefix "log_and_drop"
>>> iptables -A log_and_drop -j DROP
>>>
>>> ...
>>> iptables ... -m quota --quota-bytes 20000 -j log_and_drop
>>> ...
>>
>> Indeed, this looks to me like something that you can do with NFLOG and
>> some combination of matches.
>
> Is it possible to have the NFLOG send only one notification to the
> userspace?
Not possible, but you could easily extend NFLOG to implement this
feature if it's not possible to do what you need with the existing
matches/targets. This NOTIF infrastructure is redundant and it looks
like a subset of NFLOG.
There's a padding field in xt_NFLOG that is currently unused, it could
be used for this.
Or we could add some 'count' match to store the number of packets that
have matched a rule (although not sure if this is generic enough to be
useful for others).
> In the example above, once the quota exceeds, the userspace
> will be notified of every packet arriving, won't it? That would cause
> unnecessary processing in the userspace.
>
> The userspace could remove the rule when it gets the first notification
> and only add it again when it needs to get the information again (as a
> "toggle" functionality), but I think that would take too long and there
> would be several packets going through before the rule could be removed.
You can do that with libnetfilter_log to handle the log messages
received and the minor change for xt_NFLOG that I proposed.
next prev parent reply other threads:[~2010-07-13 16:38 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-13 0:11 [PATCH] netfilter: xtables: userspace notification target Samuel Ortiz
2010-07-13 5:56 ` Jan Engelhardt
2010-07-13 13:19 ` Samuel Ortiz
2010-07-13 6:18 ` Changli Gao
2010-07-13 8:50 ` Pablo Neira Ayuso
2010-07-13 10:23 ` Luciano Coelho
2010-07-13 11:49 ` Jan Engelhardt
2010-07-13 13:24 ` Luciano Coelho
2010-07-13 16:38 ` Pablo Neira Ayuso [this message]
2010-07-14 11:48 ` Patrick McHardy
2010-07-14 12:22 ` Luciano Coelho
2010-07-14 16:34 ` Pablo Neira Ayuso
2010-07-15 9:05 ` Patrick McHardy
2010-07-15 9:18 ` Luciano Coelho
2010-07-13 13:28 ` Samuel Ortiz
2010-07-13 14:57 ` [PATCH v2] " Samuel Ortiz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4C3C9671.5090503@netfilter.org \
--to=pablo@netfilter.org \
--cc=davem@davemloft.net \
--cc=kaber@trash.net \
--cc=luciano.coelho@nokia.com \
--cc=netdev@vger.kernel.org \
--cc=netfilter-devel@vger.kernel.org \
--cc=sameo@linux.intel.com \
--cc=xiaosuo@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.