* Re: [RFC] netfilter: WIP: Xtables idletimer target implementation
[not found] ` <alpine.LSU.2.01.1005280057190.14077@obet.zrqbmnf.qr>
@ 2010-05-28 5:25 ` Luciano Coelho
2010-05-28 8:05 ` Jan Engelhardt
0 siblings, 1 reply; 11+ messages in thread
From: Luciano Coelho @ 2010-05-28 5:25 UTC (permalink / raw)
To: ext Jan Engelhardt
Cc: netfilter-devel@vger.kernel.org, netdev@vger.kernel.org,
kaber@trash.net, Timo Teras
Hi Jan,
Thanks a lot for your comments!
On Fri, 2010-05-28 at 01:17 +0200, ext Jan Engelhardt wrote:
> On Thursday 2010-05-27 22:54, Luciano Coelho wrote:
> >There are still some issues to be resolved:
> >
> >How to treat several rules for the same interface?
> >
> >We need a key for the timer list. I'm using the targinfo pointer for that,
> >but this looks shaky, because there is no assurance that this pointer will
> >live for the entire lifetime of the rule.
>
> Well xt_quota for example has its targinfo around at all times,
> as have other modules.
Great, so this will work. I had checked the x_tables code and it seemed
that the lifetime of targinfo was sufficient, but I was not sure this
would be safe in the future. Now, if this changes in the future, my
module won't be the only one to break ;)
> >This is now an x_tables target, so other protocols need to be implemented.
>
> Huh? You're not looking at packets, so why does it need proto-specific
> stuff?
I need to associate the timers with specific interfaces, because it's
the idle time of the interfaces that the userspace in interested in. I
didn't find any other way to associate the timers with them, except by
looking at the iniface and outiface values in ipt_ip (and eventually,
with IPv6 properly implemented, in ip6t_ip6). This is what Patrick
suggested when he checked my previous patch [1] and triggered me to do a
major rework on my module ;)
Do you have any other suggestion on how I can associate the rules to
specific interfaces?
> >+static
> >+struct utimer_t *__utimer_find_by_info(const struct xt_idletimer_info *info)
> >+{
> >+ struct utimer_t *entry;
> >+
> >+ list_for_each_entry(entry, &active_utimer_head, entry) {
> >+ if (info == entry->info) {
> >+ return entry;
> >+ }
> >+ }
> >+
> >+ return NULL;
> >+}
>
> Can do with less braces.
Sure. These remained there after I removed some traces. I'll clean
this up.
> >+static void utimer_expired(unsigned long data)
> >+{
> >+ struct utimer_t *timer = (struct utimer_t *) data;
> >+
> >+ pr_debug("xt_idletimer: timer '%s' ns %p expired\n",
> >+ timer->name, timer->net);
> >+
> >+ schedule_work(&timer->work);
> >+}
>
> You don't need xt_idletimer, because pr_debug already prints
> that (with #define pr_fmt(fmt) KBUILD_MODNAME ": " as many
> other modules do)
Ok, I'll change it. Thanks for pointing out.
> >+
> >+static struct utimer_t *utimer_create(const char *name,
> >+ struct net *net,
> >+ const struct xt_idletimer_info *info)
> >+{
> >+ struct utimer_t *timer;
> >+
> >+ timer = kmalloc(sizeof(struct utimer_t), GFP_ATOMIC);
> >+ if (timer == NULL)
> >+ return NULL;
>
> This is called from user context, so GFP_KERNEL will perfectly suffice.
Yup, will change.
> >+static int xt_idletimer_checkentry(const struct xt_tgchk_param *par)
> >+{
> >+ const struct xt_idletimer_info *info = par->targinfo;
> >+ const struct ipt_entry *entryinfo = par->entryinfo;
> >+ const struct ipt_ip *ip = &entryinfo->ip;
>
> I'm not sure spying on ipt_ip is a long-term viable solution.
Do you have any other suggestions on how I could get an interface
associated with the rule? I thought about having the userspace pass the
interface as an option to the rule (like I already do for the timeout
value), but that looked ugly to me, since the interface can already be
defined as part of the ruleset.
> >+ pr_debug("xt_idletimer: checkentry targinfo %p\n", par->targinfo);
> >+
> >+ if (info->timeout == 0) {
> >+ pr_debug("xt_idletimer: timeout value is zero\n");
> >+ return -EINVAL;
> >+ }
> >+
> >+ /* FIXME: implement support for other protocol families */
> >+ switch (par->family) {
> >+ case NFPROTO_IPV4 :
> >+ pr_debug("xt_idletimer: NFPROTO_IPV4\n");
> >+ break;
> >+
> >+ default:
> >+ pr_debug("xt_idletimer: Unsupported protocol family family!\n");
> >+ return -EINVAL;
> >+ }
> >+
> >+ if (strlen(ip->iniface) == 0 && strlen(ip->outiface) == 0) {
> >+ pr_debug("xt_idletimer: in or out interface must "
> >+ "be specified\n");
> >+ return -EINVAL;
> >+ }
> >+
> >+ if (utimer_create(ip->iniface, par->net, info) == NULL) {
> >+ pr_debug("xt_idletimer: failed to create timer\n");
> >+ return -ENOMEM;
> >+ }
>
> What about outiface?
> What blows up when iniface is empty?
Ooops! I've redone this part of the code so many times and in this
version I completely forgot to include the outiface. I'll fix it.
> >+static void xt_idletimer_destroy(const struct xt_tgdtor_param *par)
> >+{
> >+ const struct xt_idletimer_info *info = par->targinfo;
> >+
> >+ pr_debug("xt_idletimer: destroy targinfo %p\n", par->targinfo);
> >+
> >+ utimer_delete(info);
> >+}
> >+
> >+static int __init init(void)
> >+{
> >+ int ret;
> >+
> >+ ret = utimer_init();
> >+ if (ret)
> >+ return ret;
> >+
> >+ ret = xt_register_target(&xt_idletimer);
> >+ if (ret < 0) {
> >+ utimer_fini();
> >+ return ret;
> >+ }
> >+
> >+ return 0;
> >+}
> >+
> >+static void __exit fini(void)
> >+{
> >+ xt_unregister_target(&xt_idletimer);
> >+ utimer_fini();
> >+}
> >+
> >+module_init(init);
> >+module_exit(fini);
>
> Call it just exit?
Yes.
> Also give the functions better names (see other modules), that is going
> to be unrecognizable in stacktraces otherwise.
I agree. These names are coming from the original code. I thought
about changing them to something clearer, but didn't bother to do it
yet, because I was focusing on the actual functionality. I'll change
the names.
Again, thanks for your comments. I'll rework and submit v2 soon.
Ah, and please excuse my lameness of mistyping the netdev email address
when I submitted the patch. I fixed it now.
[1]
http://article.gmane.org/gmane.comp.security.firewalls.netfilter.devel/33934
--
Cheers,
Luca.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFC] netfilter: WIP: Xtables idletimer target implementation
2010-05-28 5:25 ` [RFC] netfilter: WIP: Xtables idletimer target implementation Luciano Coelho
@ 2010-05-28 8:05 ` Jan Engelhardt
2010-05-28 9:58 ` Luciano Coelho
0 siblings, 1 reply; 11+ messages in thread
From: Jan Engelhardt @ 2010-05-28 8:05 UTC (permalink / raw)
To: Luciano Coelho
Cc: netfilter-devel@vger.kernel.org, netdev@vger.kernel.org,
kaber@trash.net, Timo Teras
On Friday 2010-05-28 07:25, Luciano Coelho wrote:
>
>Do you have any other suggestion on how I can associate the rules to
>specific interfaces?
-A INPUT -i foo -j do
-A do -j idletimer
A little funny, but actually this would allow me to keep a timer
for a group of interfaces rather than just per-if.
>> >+static int xt_idletimer_checkentry(const struct xt_tgchk_param *par)
>> >+{
>> >+ const struct xt_idletimer_info *info = par->targinfo;
>> >+ const struct ipt_entry *entryinfo = par->entryinfo;
>> >+ const struct ipt_ip *ip = &entryinfo->ip;
>>
>> I'm not sure spying on ipt_ip is a long-term viable solution.
>
>Do you have any other suggestions on how I could get an interface
>associated with the rule? I thought about having the userspace pass the
>interface as an option to the rule (like I already do for the timeout
>value), but that looked ugly to me, since the interface can already be
>defined as part of the ruleset.
I have patches ready since a while that decouple ipt_ip
from a rule, so there is no guarantee that such will exist.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFC] netfilter: WIP: Xtables idletimer target implementation
2010-05-28 8:05 ` Jan Engelhardt
@ 2010-05-28 9:58 ` Luciano Coelho
2010-05-31 15:59 ` Patrick McHardy
0 siblings, 1 reply; 11+ messages in thread
From: Luciano Coelho @ 2010-05-28 9:58 UTC (permalink / raw)
To: ext Jan Engelhardt
Cc: netfilter-devel@vger.kernel.org, netdev@vger.kernel.org,
kaber@trash.net, Timo Teras
On Fri, 2010-05-28 at 10:05 +0200, ext Jan Engelhardt wrote:
> On Friday 2010-05-28 07:25, Luciano Coelho wrote:
> >
> >Do you have any other suggestion on how I can associate the rules to
> >specific interfaces?
>
> -A INPUT -i foo -j do
> -A do -j idletimer
>
> A little funny, but actually this would allow me to keep a timer
> for a group of interfaces rather than just per-if.
Yes, this is what our userspace apps are doing. I've formulated my
question in an unclear way. If you check the rest of the code, I create
sysfs files under the interface's directory and use it as an attribute
to notify the userspace when the timer has expired.
In short, I need to figure out a way to associate each rule with an
interface in sysfs, so I can notify the userspace when the timer has
expired. I couldn't figure out another way to do it. Any suggestions?
> >> >+static int xt_idletimer_checkentry(const struct xt_tgchk_param *par)
> >> >+{
> >> >+ const struct xt_idletimer_info *info = par->targinfo;
> >> >+ const struct ipt_entry *entryinfo = par->entryinfo;
> >> >+ const struct ipt_ip *ip = &entryinfo->ip;
> >>
> >> I'm not sure spying on ipt_ip is a long-term viable solution.
> >
> >Do you have any other suggestions on how I could get an interface
> >associated with the rule? I thought about having the userspace pass the
> >interface as an option to the rule (like I already do for the timeout
> >value), but that looked ugly to me, since the interface can already be
> >defined as part of the ruleset.
>
> I have patches ready since a while that decouple ipt_ip
> from a rule, so there is no guarantee that such will exist.
Okay, if that's the case, then I don't know how to associate the rule
with a specific net object in the kobject tree. Maybe I have to figure
out a different way to notify the userspace, unless I add the target
option I mentioned above. :/
--
Cheers,
Luca.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFC] netfilter: WIP: Xtables idletimer target implementation
2010-05-28 9:58 ` Luciano Coelho
@ 2010-05-31 15:59 ` Patrick McHardy
2010-05-31 19:12 ` Luciano Coelho
0 siblings, 1 reply; 11+ messages in thread
From: Patrick McHardy @ 2010-05-31 15:59 UTC (permalink / raw)
To: Luciano Coelho
Cc: ext Jan Engelhardt, netfilter-devel@vger.kernel.org,
netdev@vger.kernel.org, Timo Teras
Luciano Coelho wrote:
> On Fri, 2010-05-28 at 10:05 +0200, ext Jan Engelhardt wrote:
>> On Friday 2010-05-28 07:25, Luciano Coelho wrote:
>>> Do you have any other suggestion on how I can associate the rules to
>>> specific interfaces?
>> -A INPUT -i foo -j do
>> -A do -j idletimer
>>
>> A little funny, but actually this would allow me to keep a timer
>> for a group of interfaces rather than just per-if.
>
> Yes, this is what our userspace apps are doing. I've formulated my
> question in an unclear way. If you check the rest of the code, I create
> sysfs files under the interface's directory and use it as an attribute
> to notify the userspace when the timer has expired.
>
> In short, I need to figure out a way to associate each rule with an
> interface in sysfs, so I can notify the userspace when the timer has
> expired. I couldn't figure out another way to do it. Any suggestions?
How about just using an arbitrary user-supplied name? People can
name them after interfaces, or anything else.
>>>>> +static int xt_idletimer_checkentry(const struct xt_tgchk_param *par)
>>>>> +{
>>>>> + const struct xt_idletimer_info *info = par->targinfo;
>>>>> + const struct ipt_entry *entryinfo = par->entryinfo;
>>>>> + const struct ipt_ip *ip = &entryinfo->ip;
>>>> I'm not sure spying on ipt_ip is a long-term viable solution.
>>> Do you have any other suggestions on how I could get an interface
>>> associated with the rule? I thought about having the userspace pass the
>>> interface as an option to the rule (like I already do for the timeout
>>> value), but that looked ugly to me, since the interface can already be
>>> defined as part of the ruleset.
>> I have patches ready since a while that decouple ipt_ip
>> from a rule, so there is no guarantee that such will exist.
>
> Okay, if that's the case, then I don't know how to associate the rule
> with a specific net object in the kobject tree. Maybe I have to figure
> out a different way to notify the userspace, unless I add the target
> option I mentioned above. :/
>
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFC] netfilter: WIP: Xtables idletimer target implementation
2010-05-31 15:59 ` Patrick McHardy
@ 2010-05-31 19:12 ` Luciano Coelho
2010-05-31 19:51 ` Jan Engelhardt
0 siblings, 1 reply; 11+ messages in thread
From: Luciano Coelho @ 2010-05-31 19:12 UTC (permalink / raw)
To: ext Patrick McHardy
Cc: ext Jan Engelhardt, netfilter-devel@vger.kernel.org,
netdev@vger.kernel.org, Timo Teras
On Mon, 2010-05-31 at 17:59 +0200, ext Patrick McHardy wrote:
> Luciano Coelho wrote:
> > On Fri, 2010-05-28 at 10:05 +0200, ext Jan Engelhardt wrote:
> >> On Friday 2010-05-28 07:25, Luciano Coelho wrote:
> >>> Do you have any other suggestion on how I can associate the rules to
> >>> specific interfaces?
> >> -A INPUT -i foo -j do
> >> -A do -j idletimer
> >>
> >> A little funny, but actually this would allow me to keep a timer
> >> for a group of interfaces rather than just per-if.
> >
> > Yes, this is what our userspace apps are doing. I've formulated my
> > question in an unclear way. If you check the rest of the code, I create
> > sysfs files under the interface's directory and use it as an attribute
> > to notify the userspace when the timer has expired.
> >
> > In short, I need to figure out a way to associate each rule with an
> > interface in sysfs, so I can notify the userspace when the timer has
> > expired. I couldn't figure out another way to do it. Any suggestions?
>
> How about just using an arbitrary user-supplied name? People can
> name them after interfaces, or anything else.
I considered this option, but then I didn't find a proper place where to
include the attribute in sysfs, since I cannot add it as part of the
interface (eg. /sys/class/net/wlan0/idletimer) as I was doing before.
The other option would be to make the idletimer as part of the
xt_IDLETIMER module object in sysfs
(ie. /sys/module/xt_IDLETIMER/<user_supplied_name>), but it looks out of
place. And I think adding it as /sys/class/net/idletimer is most likely
out of the question.
The latest "solution" I came up with, is to associate the idletimer with
every interface that it hits. Whenever a packet arrives, I check which
interface it came from and add the timer to it (eg.
in /sys/class/net/wlan0/idletimer if the packet came via wlan0). This
causes a bit extra processing per packet, but in most cases there
shouldn't be too many interfaces in the list, so the search should be
fairly quick. And if performance becomes a problem, it can be worked
around by adding only one interface per ruleset, so the list will never
grow bigger than one node.
I think these two solutions would work. I prefer the second one,
because we don't need to add the idletimer attribute in an artificial
place in sysfs.
The problem that remains with either solution is if the interface is
already idle when the rule created. In that case, the timer won't start
(or at least will not be associated with that interface). It will only
start when the first packet hits. The only solution I see for this is
to add the interface name as an option to the target. Maybe something
like "--autostart=wlan0"?
I'll send a new RFC patch soon with this ideas implemented, to better
express what I mean (C code can be easier to read than English :P)
--
Cheers,
Luca.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFC] netfilter: WIP: Xtables idletimer target implementation
2010-05-31 19:12 ` Luciano Coelho
@ 2010-05-31 19:51 ` Jan Engelhardt
2010-05-31 20:11 ` Luciano Coelho
2010-06-01 18:33 ` Luciano Coelho
0 siblings, 2 replies; 11+ messages in thread
From: Jan Engelhardt @ 2010-05-31 19:51 UTC (permalink / raw)
To: Luciano Coelho
Cc: ext Patrick McHardy, netfilter-devel@vger.kernel.org,
netdev@vger.kernel.org, Timo Teras
On Monday 2010-05-31 21:12, Luciano Coelho wrote:
>
>I considered this option, but then I didn't find a proper place where to
>include the attribute in sysfs, since I cannot add it as part of the
>interface (eg. /sys/class/net/wlan0/idletimer) as I was doing before.
You couldn't have done that before either, because the interface name
in ipt_ip may refer to an interface that does not exist at all times.
>The other option would be to make the idletimer as part of the
>xt_IDLETIMER module object in sysfs
>(ie. /sys/module/xt_IDLETIMER/<user_supplied_name>), but it looks out of
>place.
I like it. It follows /proc/net/xt_{hashlimit,recent}/<user_supplied_name>.
>And I think adding it as /sys/class/net/idletimer is most likely
>out of the question.
It follows /sys/class/leds/...
I'm impartial though.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFC] netfilter: WIP: Xtables idletimer target implementation
2010-05-31 19:51 ` Jan Engelhardt
@ 2010-05-31 20:11 ` Luciano Coelho
2010-05-31 20:31 ` Luciano Coelho
2010-06-01 18:33 ` Luciano Coelho
1 sibling, 1 reply; 11+ messages in thread
From: Luciano Coelho @ 2010-05-31 20:11 UTC (permalink / raw)
To: ext Jan Engelhardt
Cc: ext Patrick McHardy, netfilter-devel@vger.kernel.org,
netdev@vger.kernel.org, Timo Teras
On Mon, 2010-05-31 at 21:51 +0200, ext Jan Engelhardt wrote:
> On Monday 2010-05-31 21:12, Luciano Coelho wrote:
> >
> >I considered this option, but then I didn't find a proper place where to
> >include the attribute in sysfs, since I cannot add it as part of the
> >interface (eg. /sys/class/net/wlan0/idletimer) as I was doing before.
>
> You couldn't have done that before either, because the interface name
> in ipt_ip may refer to an interface that does not exist at all times.
True. That's why I was using netdevice_notifiers , so that I would
monitor the interface state and add the idletimer attribute when a timer
was associated with the interface that went up. But now the rules are
not interface specific, so it cannot be done like that anymore.
> >The other option would be to make the idletimer as part of the
> >xt_IDLETIMER module object in sysfs
> >(ie. /sys/module/xt_IDLETIMER/<user_supplied_name>), but it looks out of
> >place.
>
> I like it. It follows /proc/net/xt_{hashlimit,recent}/<user_supplied_name>.
>
> >And I think adding it as /sys/class/net/idletimer is most likely
> >out of the question.
>
> It follows /sys/class/leds/...
>
>
> I'm impartial though.
Okay, so this can be done in either place. I tend to
prefer /sys/class/net/idletimer.
What about my other proposal of creating generic timers and associating
them with certain interfaces whenever we get a hit? I mean, to add the
idletimer attribute to eg. /sys/class/net/wlan0/idletimer when a packet
reaches the target from wlan0?
--
Cheers,
Luca.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFC] netfilter: WIP: Xtables idletimer target implementation
2010-05-31 20:11 ` Luciano Coelho
@ 2010-05-31 20:31 ` Luciano Coelho
0 siblings, 0 replies; 11+ messages in thread
From: Luciano Coelho @ 2010-05-31 20:31 UTC (permalink / raw)
To: ext Jan Engelhardt
Cc: ext Patrick McHardy, netfilter-devel@vger.kernel.org,
netdev@vger.kernel.org, Timo Teras
On Mon, 2010-05-31 at 22:11 +0200, Luciano Coelho wrote:
> What about my other proposal of creating generic timers and associating
> them with certain interfaces whenever we get a hit? I mean, to add the
> idletimer attribute to eg. /sys/class/net/wlan0/idletimer when a packet
> reaches the target from wlan0?
Let's forget about this other proposal. It's not going to be efficient
at all. It's worse than I thought at first, because we need search all
the associated_ifs in all timers whenever a packet is received.
I'll go for the other solution, which will make things much simpler and
I'll be able to remove the dependency on netdevice_notifiers
completely. :D
--
Cheers,
Luca.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFC] netfilter: WIP: Xtables idletimer target implementation
2010-05-31 19:51 ` Jan Engelhardt
2010-05-31 20:11 ` Luciano Coelho
@ 2010-06-01 18:33 ` Luciano Coelho
2010-06-01 18:38 ` Jan Engelhardt
1 sibling, 1 reply; 11+ messages in thread
From: Luciano Coelho @ 2010-06-01 18:33 UTC (permalink / raw)
To: ext Jan Engelhardt
Cc: ext Patrick McHardy, netfilter-devel@vger.kernel.org,
netdev@vger.kernel.org, Timo Teras
On Mon, 2010-05-31 at 21:51 +0200, ext Jan Engelhardt wrote:
> On Monday 2010-05-31 21:12, Luciano Coelho wrote:
> >
> >I considered this option, but then I didn't find a proper place where to
> >include the attribute in sysfs, since I cannot add it as part of the
> >interface (eg. /sys/class/net/wlan0/idletimer) as I was doing before.
>
> You couldn't have done that before either, because the interface name
> in ipt_ip may refer to an interface that does not exist at all times.
>
> >The other option would be to make the idletimer as part of the
> >xt_IDLETIMER module object in sysfs
> >(ie. /sys/module/xt_IDLETIMER/<user_supplied_name>), but it looks out of
> >place.
>
> I like it. It follows /proc/net/xt_{hashlimit,recent}/<user_supplied_name>.
I'm starting to like this more and more too, as my code is getting much
smaller ;)
One quick question, though. Do you have any ideas on how I can make
sure that the user doesn't supply the same name twice (ie. two rules
with the same user_supplied_name)?
The problem is that the userspace always re-adds all the existing rules
before inserting a new one and only later deletes the old rules. :\
--
Cheers,
Luca.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFC] netfilter: WIP: Xtables idletimer target implementation
2010-06-01 18:33 ` Luciano Coelho
@ 2010-06-01 18:38 ` Jan Engelhardt
2010-06-01 18:41 ` Luciano Coelho
0 siblings, 1 reply; 11+ messages in thread
From: Jan Engelhardt @ 2010-06-01 18:38 UTC (permalink / raw)
To: Luciano Coelho
Cc: ext Patrick McHardy, netfilter-devel@vger.kernel.org,
netdev@vger.kernel.org, Timo Teras
On Tuesday 2010-06-01 20:33, Luciano Coelho wrote:
>On Mon, 2010-05-31 at 21:51 +0200, ext Jan Engelhardt wrote:
>> On Monday 2010-05-31 21:12, Luciano Coelho wrote:
>> >
>> >I considered this option, but then I didn't find a proper place where to
>> >include the attribute in sysfs, since I cannot add it as part of the
>> >interface (eg. /sys/class/net/wlan0/idletimer) as I was doing before.
>>
>> You couldn't have done that before either, because the interface name
>> in ipt_ip may refer to an interface that does not exist at all times.
>>
>> >The other option would be to make the idletimer as part of the
>> >xt_IDLETIMER module object in sysfs
>> >(ie. /sys/module/xt_IDLETIMER/<user_supplied_name>), but it looks out of
>> >place.
>>
>> I like it. It follows /proc/net/xt_{hashlimit,recent}/<user_supplied_name>.
>
>I'm starting to like this more and more too, as my code is getting much
>smaller ;)
>
>One quick question, though. Do you have any ideas on how I can make
>sure that the user doesn't supply the same name twice (ie. two rules
>with the same user_supplied_name)?
What's so bad about multiple rules being able to reset the timer?
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFC] netfilter: WIP: Xtables idletimer target implementation
2010-06-01 18:38 ` Jan Engelhardt
@ 2010-06-01 18:41 ` Luciano Coelho
0 siblings, 0 replies; 11+ messages in thread
From: Luciano Coelho @ 2010-06-01 18:41 UTC (permalink / raw)
To: ext Jan Engelhardt
Cc: ext Patrick McHardy, netfilter-devel@vger.kernel.org,
netdev@vger.kernel.org, Timo Teras
On Tue, 2010-06-01 at 20:38 +0200, ext Jan Engelhardt wrote:
> On Tuesday 2010-06-01 20:33, Luciano Coelho wrote:
> >On Mon, 2010-05-31 at 21:51 +0200, ext Jan Engelhardt wrote:
> >> On Monday 2010-05-31 21:12, Luciano Coelho wrote:
> >> >
> >> >I considered this option, but then I didn't find a proper place where to
> >> >include the attribute in sysfs, since I cannot add it as part of the
> >> >interface (eg. /sys/class/net/wlan0/idletimer) as I was doing before.
> >>
> >> You couldn't have done that before either, because the interface name
> >> in ipt_ip may refer to an interface that does not exist at all times.
> >>
> >> >The other option would be to make the idletimer as part of the
> >> >xt_IDLETIMER module object in sysfs
> >> >(ie. /sys/module/xt_IDLETIMER/<user_supplied_name>), but it looks out of
> >> >place.
> >>
> >> I like it. It follows /proc/net/xt_{hashlimit,recent}/<user_supplied_name>.
> >
> >I'm starting to like this more and more too, as my code is getting much
> >smaller ;)
> >
> >One quick question, though. Do you have any ideas on how I can make
> >sure that the user doesn't supply the same name twice (ie. two rules
> >with the same user_supplied_name)?
>
> What's so bad about multiple rules being able to reset the timer?
Ahhmm... Nothing! Thank you, I think I'm getting code-blind :)
--
Cheers,
Luca.
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2010-06-01 18:48 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1274993689-23928-1-git-send-email-luciano.coelho@nokia.com>
[not found] ` <alpine.LSU.2.01.1005280057190.14077@obet.zrqbmnf.qr>
2010-05-28 5:25 ` [RFC] netfilter: WIP: Xtables idletimer target implementation Luciano Coelho
2010-05-28 8:05 ` Jan Engelhardt
2010-05-28 9:58 ` Luciano Coelho
2010-05-31 15:59 ` Patrick McHardy
2010-05-31 19:12 ` Luciano Coelho
2010-05-31 19:51 ` Jan Engelhardt
2010-05-31 20:11 ` Luciano Coelho
2010-05-31 20:31 ` Luciano Coelho
2010-06-01 18:33 ` Luciano Coelho
2010-06-01 18:38 ` Jan Engelhardt
2010-06-01 18:41 ` Luciano Coelho
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).