From: Luciano Coelho <luciano.coelho@nokia.com>
To: netfilter-devel@vger.kernel.org
Cc: Patrick McHardy <kaber@trash.net>,
Pablo Neira Ayuso <pablo@netfilter.org>,
Samuel Ortiz <sameo@linux.intel.com>,
Changli Gao <xiaosuo@gmail.com>
Subject: [RFC] setting up throughput threshold indications to userspace
Date: Fri, 16 Jul 2010 11:20:31 +0300 [thread overview]
Message-ID: <1279268431.1603.44.camel@powerslave> (raw)
Hi all,
I've been trying to set up some rules that will send indications to the
userspace about the current throughput of a certain interface. The idea
is to let the userspace enable or disable WLAN PS mode accordingly (the
validity of this idea is another subject ;).
This is related to the discussion we had in the thread about the NFNOTIF
thread.
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?
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?
--
Cheers,
Luca.
next reply other threads:[~2010-07-16 8:20 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-16 8:20 Luciano Coelho [this message]
2010-07-16 13:01 ` [RFC] setting up throughput threshold indications to userspace Patrick McHardy
2010-07-16 13:10 ` Luciano Coelho
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=1279268431.1603.44.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).