From: Patrick McHardy <kaber@trash.net>
To: Eric Leblond <eric@inl.fr>
Cc: Netfilter Development Mailinglist
<netfilter-devel@lists.netfilter.org>,
nufw-devel@nongnu.org
Subject: Re: [PATCH 1/3] [kernel patch] fixed duration connection
Date: Sat, 08 Apr 2006 21:56:52 +0200 [thread overview]
Message-ID: <44381584.4020109@trash.net> (raw)
In-Reply-To: <4436E03E.9030402@inl.fr>
Eric Leblond wrote:
> Hi,
>
> Here's the patch against Linus git tree.
I don't have any principle objections against merging this (if
there are no objections from others), a couple of comments
on the patch though.
+#if defined(CONFIG_IP_NF_CT_FIXED_TIMEOUT) ||
defined(CONFIG_NF_CT_FIXED_TIMEOUT)
+ /* Connection has fixed timeout. */
+ IPS_FIXED_TIMEOUT_BIT = 10,
+ IPS_FIXED_TIMEOUT = (1 << IPS_FIXED_TIMEOUT_BIT),
+#endif
Probably not worth adding a config option for this.
+
};
@@ -85,6 +85,7 @@ struct ip_conntrack
/* Timer function; drops refcnt when it goes off. */
struct timer_list timeout;
+
Please remove this.
#ifdef CONFIG_IP_NF_CT_ACCT
/* Accounting Information (same cache line as other written members) */
struct ip_conntrack_counter counters[IP_CT_DIR_MAX];
@@ -292,6 +293,13 @@ static inline int is_dying(struct ip_con
return test_bit(IPS_DYING_BIT, &ct->status);
}
+#if defined(CONFIG_IP_NF_CT_FIXED_TIMEOUT) ||
defined(CONFIG_NF_CT_FIXED_TIMEOUT)
+static inline int is_fixedtimeout(struct ip_conntrack *ct)
+{
+ return test_bit(IPS_FIXED_TIMEOUT_BIT, &ct->status);
+}
+#endif
I guess without a seperate config option we don't need this function
anymore.
diff --git a/net/ipv4/netfilter/ip_conntrack_core.c
b/net/ipv4/netfilter/ip_conntrack_core.c
index ceaabc1..44fa788 100644
--- a/net/ipv4/netfilter/ip_conntrack_core.c
+++ b/net/ipv4/netfilter/ip_conntrack_core.c
@@ -1130,18 +1130,27 @@ void __ip_ct_refresh_acct(struct ip_conn
write_lock_bh(&ip_conntrack_lock);
- /* If not in hash table, timer will not be active yet */
- if (!is_confirmed(ct)) {
- ct->timeout.expires = extra_jiffies;
- event = IPCT_REFRESH;
- } else {
- /* Need del_timer for race avoidance (may already be dying). */
- if (del_timer(&ct->timeout)) {
- ct->timeout.expires = jiffies + extra_jiffies;
- add_timer(&ct->timeout);
- event = IPCT_REFRESH;
- }
- }
+#if defined(CONFIG_IP_NF_CT_FIXED_TIMEOUT) ||
defined(CONFIG_NF_CT_FIXED_TIMEOUT)
+ /* only update if this is not a fixed timeout */
+ if (! is_fixedtimeout(ct)){
+#endif
+ /* If not in hash table, timer will not be active yet */
+ if (!is_confirmed(ct)) {
+ ct->timeout.expires = extra_jiffies;
+ event = IPCT_REFRESH;
+ } else {
+ /* Need del_timer for race avoidance (may already be dying). */
+ if (del_timer(&ct->timeout)) {
+ ct->timeout.expires = jiffies + extra_jiffies;
+ add_timer(&ct->timeout);
+ event = IPCT_REFRESH;
+ }
+ }
+#if defined(CONFIG_IP_NF_CT_FIXED_TIMEOUT)
+ } else {
+ DEBUGP("FIXED TIMEOUT: Not updating\n");
+ }
+#endif
Please just do a simple
if (!test_bit(...))
return;
at the beginning.
next prev parent reply other threads:[~2006-04-08 19:56 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-04 8:33 [PATCH 0/3] [RFC] fixed duration connection Eric Leblond
2006-04-04 8:36 ` [PATCH 1/3] " Eric Leblond
2006-04-04 8:38 ` [PATCH 2/3] " Eric Leblond
2006-04-04 8:41 ` [PATCH 3/3] [RFC] " Eric Leblond
2006-04-04 8:43 ` [PATCH 2/3] " Eric Leblond
2006-04-04 8:43 ` [PATCH 3/3] [RFC] " Eric Leblond
2006-04-05 13:57 ` [PATCH 0/3] " Patrick McHardy
2006-04-05 14:41 ` Eric Leblond
2006-04-07 21:53 ` Eric Leblond
2006-04-07 21:57 ` [PATCH 1/3] [kernel patch] " Eric Leblond
2006-04-08 19:56 ` Patrick McHardy [this message]
2006-04-08 20:55 ` Eric Leblond
2006-04-11 16:22 ` Patrick McHardy
2006-04-11 20:20 ` Eric Leblond
2006-04-12 8:38 ` Harald Welte
2006-04-12 10:48 ` Harald Welte
2006-04-12 19:06 ` Patrick McHardy
2006-04-13 16:17 ` Eric Leblond
2006-04-21 2:30 ` Patrick McHardy
2006-04-21 20:53 ` Eric Leblond
2006-04-22 0:02 ` Patrick McHardy
2006-04-07 21:59 ` [PATCH 2/3] [libnetfilter_conntrack] " Eric Leblond
2006-04-08 19:58 ` Patrick McHardy
2006-04-08 20:23 ` Eric Leblond
2006-04-07 22:01 ` [PATCH 0/3] [conntrack] " Eric Leblond
2006-04-07 22:08 ` [PATCH 3/3] " Eric Leblond
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=44381584.4020109@trash.net \
--to=kaber@trash.net \
--cc=eric@inl.fr \
--cc=netfilter-devel@lists.netfilter.org \
--cc=nufw-devel@nongnu.org \
/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.