All of lore.kernel.org
 help / color / mirror / Atom feed
From: Samuel Ortiz <sameo@linux.intel.com>
To: Changli Gao <xiaosuo@gmail.com>
Cc: Patrick McHardy <kaber@trash.net>,
	"David S. Miller" <davem@davemloft.net>,
	netdev@vger.kernel.org, netfilter-devel@vger.kernel.org,
	Luciano Coelho <luciano.coelho@nokia.com>
Subject: Re: [PATCH] netfilter: xtables: userspace notification target
Date: Tue, 13 Jul 2010 15:28:50 +0200	[thread overview]
Message-ID: <20100713132849.GB2641@sortiz-mobl> (raw)
In-Reply-To: <AANLkTil2EgQbzUqYNHAYpIWJvyyE6AWq1TpvxrqVsD7k@mail.gmail.com>

On Tue, Jul 13, 2010 at 02:18:26PM +0800, 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
> ...
We'd still be missing the possibility of having only the first packet logged,
and we'd have to also send an initial netlink message to switch the copy_mode
to COPY_NONE. We're not interested in the actual packet, but just by the match
hit.
I know it's not big deal after all, I'm just trying to have one simple target
for that simple task of notifying userspace of a match hit.

> > +static unsigned int nfnotif_tg_target(struct sk_buff *skb,
> > +                                     const struct xt_action_param *par)
> > +{
> > +       const struct nfnotif_tg_info *info = par->targinfo;
> > +
> > +       BUG_ON(!info->notif);
> > +
> > +       if (!info->notif->send_notif)
> > +               return XT_CONTINUE;
> > +
> > +       pr_debug("Sending notification for %s\n", info->label);
> > +
> > +       schedule_work(&info->notif->work);
> > +
> 
> Why do you use another kernel activity: kernel thread? netlink
> messages can be sent in atomic context.
That's right, I should have used the ATOMIC gfp flags from my sending routine.
I'll fix that with my next revision of the patch.

Thanks for the review.

Cheers,
Samuel.

-- 
Intel Open Source Technology Centre
http://oss.intel.com/
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2010-07-13 13:28 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
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 [this message]
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=20100713132849.GB2641@sortiz-mobl \
    --to=sameo@linux.intel.com \
    --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=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.