From: Luciano Coelho <luciano.coelho@nokia.com>
To: ext Patrick McHardy <kaber@trash.net>
Cc: "netfilter-devel@vger.kernel.org"
<netfilter-devel@vger.kernel.org>,
Pablo Neira Ayuso <pablo@netfilter.org>,
Samuel Ortiz <sameo@linux.intel.com>,
Changli Gao <xiaosuo@gmail.com>
Subject: Re: [RFC] setting up throughput threshold indications to userspace
Date: Fri, 16 Jul 2010 16:10:29 +0300 [thread overview]
Message-ID: <1279285829.1603.77.camel@powerslave> (raw)
In-Reply-To: <4C40583F.40200@trash.net>
On Fri, 2010-07-16 at 15:01 +0200, ext Patrick McHardy wrote:
> Am 16.07.2010 10:20, schrieb Luciano Coelho:
> > I'm thinking about having this kind of ruleset:
> >
> > -A INPUT -j throughput
> > -A above -m connmark --mark 0x1 -j RETURN
> > -A above -m rateest --rateest throughput --rateest-bps1 0bit --rateest-bps2 1000bit --rateest-gt -j LOG --log-prefix "ABOVE"
> > -A above -m rateest --rateest throughput --rateest-bps1 0bit --rateest-bps2 1000bit --rateest-gt -j CONNMARK --set-xmark 0x1/0xffffffff
> > -A below -m connmark --mark 0x2 -j RETURN
> > -A below -m rateest --rateest throughput --rateest-bps1 0bit --rateest-bps2 1000bit --rateest-lt -j LOG --log-prefix "BELOW"
> > -A below -m rateest --rateest throughput --rateest-bps1 0bit --rateest-bps2 1000bit --rateest-lt -j CONNMARK --set-xmark 0x2/0xffffffff
> > -A throughput -j RATEEST --rateest-name throughput --rateest-interval 250.0ms --rateest-ewmalog 500.0ms
> > -A throughput -j above
> > -A throughput -j below
> >
> > I'm using a normal LOG just for simplicity reasons, in real life I'd use
> > NFLOG instead.
> >
> > The idea here is that all packets would be collected by RATEEST for rate
> > estimation and then I'd check whether the throughput is above the
> > threshold. If it is, I mark it as such and print the log. Same thing
> > for below the threshold. The RETURN rules are there to prevent more LOG
> > messages from being printed (what I need is to know only when the
> > throughput "crosses" the threshold).
> >
> > Do you think this works?
>
> Looks reasonable, but you could probably simplify it a bit by adding
> RETURN rules to the above/below chains when the threshold is below/
> above the specified value. That way you only need a single rateest
> match.
Right, that would certainly make it simpler.
> > There is one problem with this solution, which is that it works in a
> > per-connection basis (due to CONNMARK). This is not exactly what I
> > want. I need to have this on a per-ruleset basis. For that, I need to
> > have a MARK (variable?) which can be set independently of connections or
> > packets. This is similar to the proposed condition match, but what is
> > missing there is a way to set the condition with iptables itself,
> > without requiring the userspace to change the procfs file. This could
> > probably be achieved with a "CONDITION" target or something similar.
> > Any ideas?
>
> Sounds useful.
Okay, this was the kind of confirmation I wanted before jumping into the
implementation. ;) I'll implement this target soon.
Thanks for your comments!
--
Cheers,
Luca.
next prev parent reply other threads:[~2010-07-16 13:10 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-16 8:20 [RFC] setting up throughput threshold indications to userspace Luciano Coelho
2010-07-16 13:01 ` Patrick McHardy
2010-07-16 13:10 ` Luciano Coelho [this message]
2010-07-16 19:27 ` Jan Engelhardt
2010-07-19 5:30 ` Luciano Coelho
2010-08-16 13:40 ` Luciano Coelho
2010-08-16 13:51 ` Changli Gao
2010-08-16 14:01 ` Luciano Coelho
2010-08-16 14:13 ` Changli Gao
2010-08-16 14:26 ` Luciano Coelho
2010-08-16 15:19 ` Jan Engelhardt
2010-08-17 5:27 ` Luciano Coelho
2010-08-16 14:26 ` Changli Gao
2010-08-16 14:32 ` Luciano Coelho
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=1279285829.1603.77.camel@powerslave \
--to=luciano.coelho@nokia.com \
--cc=kaber@trash.net \
--cc=netfilter-devel@vger.kernel.org \
--cc=pablo@netfilter.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).