From: Florian Westphal <fw@strlen.de>
To: lvxiafei <xiafei_xupt@163.com>
Cc: coreteam@netfilter.org, davem@davemloft.net, edumazet@google.com,
horms@kernel.org, kadlec@netfilter.org, kuba@kernel.org,
linux-kernel@vger.kernel.org, lvxiafei@sensetime.com,
netdev@vger.kernel.org, netfilter-devel@vger.kernel.org,
pabeni@redhat.com, pablo@netfilter.org
Subject: Re: [PATCH V5] netfilter: netns nf_conntrack: per-netns net.netfilter.nf_conntrack_max sysctl
Date: Sun, 13 Apr 2025 11:07:55 +0200 [thread overview]
Message-ID: <20250413090755.GA5987@breakpoint.cc> (raw)
In-Reply-To: <20250412172610.37844-1-xiafei_xupt@163.com>
lvxiafei <xiafei_xupt@163.com> wrote:
> + Maximum number of allowed connection tracking entries per netns. This value
> + is set to nf_conntrack_buckets by default.
> +
> + Note that connection tracking entries are added to the table twice -- once
> + for the original direction and once for the reply direction (i.e., with
> + the reversed address). This means that with default settings a maxed-out
> + table will have a average hash chain length of 2, not 1.
> +
> + The limit of other netns cannot be greater than init_net netns.
> + +----------------+-------------+----------------+
> + | init_net netns | other netns | limit behavior |
> + +----------------+-------------+----------------+
> + | 0 | 0 | unlimited |
> + +----------------+-------------+----------------+
> + | 0 | not 0 | other |
> + +----------------+-------------+----------------+
> + | not 0 | 0 | init_net |
> + +----------------+-------------+----------------+
> + | not 0 | not 0 | min |
> + +----------------+-------------+----------------+
>
> nf_conntrack_tcp_be_liberal - BOOLEAN
> - 0 - disabled (default)
> diff --git a/include/net/netfilter/nf_conntrack.h b/include/net/netfilter/nf_conntrack.h
> index 3f02a45773e8..062e67b9a5d7 100644
> --- a/include/net/netfilter/nf_conntrack.h
> +++ b/include/net/netfilter/nf_conntrack.h
> @@ -320,7 +320,6 @@ int nf_conntrack_hash_resize(unsigned int hashsize);
> extern struct hlist_nulls_head *nf_conntrack_hash;
> extern unsigned int nf_conntrack_htable_size;
> extern seqcount_spinlock_t nf_conntrack_generation;
> -extern unsigned int nf_conntrack_max;
>
> /* must be called with rcu read lock held */
> static inline void
> @@ -360,6 +359,13 @@ static inline struct nf_conntrack_net *nf_ct_pernet(const struct net *net)
> return net_generic(net, nf_conntrack_net_id);
> }
>
> +static inline unsigned int nf_conntrack_max(const struct net *net)
> +{
> + return likely(init_net.ct.sysctl_max && net->ct.sysctl_max) ?
> + min(init_net.ct.sysctl_max, net->ct.sysctl_max) :
> + max(init_net.ct.sysctl_max, net->ct.sysctl_max);
> +}
Is there a reason you did not follow my suggstion in
https://lore.kernel.org/netdev/20250410105352.GB6272@breakpoint.cc/
to disable net->ct.sysctl_max == 0 for non init netns?
You could then make this
if (likely(init_net.ct.sysctl_max))
return min(init_net.ct.sysctl_max, net->ct.sysctl_max);
return net->ct.sysctl_max;
... or am i missing something?
Aside from that (and the needed #IS_ENABLED() guard) this change looks
good to me.
next prev parent reply other threads:[~2025-04-13 9:08 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-07 9:50 [PATCH] netfilter: netns nf_conntrack: per-netns net.netfilter.nf_conntrack_max sysctl lvxiafei
2025-04-07 10:13 ` Florian Westphal
2025-04-07 10:56 ` Jan Engelhardt
2025-04-08 8:27 ` lvxiafei
2025-04-08 8:38 ` lvxiafei
2025-04-08 8:17 ` lvxiafei
2025-04-08 9:03 ` [PATCH V2] " lvxiafei
2025-04-08 9:58 ` Florian Westphal
2025-04-08 12:39 ` lvxiafei
2025-04-08 13:28 ` Florian Westphal
2025-04-09 4:14 ` lvxiafei
2025-04-09 4:25 ` [PATCH V3] " lvxiafei
2025-04-09 7:20 ` Florian Westphal
2025-04-09 9:13 ` lvxiafei
2025-04-09 9:42 ` Florian Westphal
2025-04-10 10:02 ` lvxiafei
2025-04-10 10:53 ` Florian Westphal
2025-04-10 13:05 ` lvxiafei
2025-04-10 13:17 ` Florian Westphal
2025-04-10 14:16 ` Florian Westphal
2025-04-11 4:09 ` lvxiafei
2025-04-12 14:37 ` [PATCH V4] " lvxiafei
2025-04-12 17:26 ` [PATCH V5] " lvxiafei
2025-04-12 17:30 ` lvxiafei
2025-04-12 21:16 ` Jakub Kicinski
2025-04-13 1:14 ` lvxiafei
2025-04-13 9:07 ` Florian Westphal [this message]
2025-04-14 3:04 ` lvxiafei
2025-04-15 9:08 ` [PATCH V6] " lvxiafei
2025-04-27 8:14 ` lvxiafei
2025-04-28 9:40 ` Pablo Neira Ayuso
2025-05-22 19:24 ` Pablo Neira Ayuso
2025-05-22 19:32 ` Florian Westphal
2025-05-22 19:58 ` Pablo Neira Ayuso
2025-05-23 9:21 ` lvxiafei
2025-10-14 13:54 ` Florian Westphal
2025-12-01 11:08 ` lvxiafei
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=20250413090755.GA5987@breakpoint.cc \
--to=fw@strlen.de \
--cc=coreteam@netfilter.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=kadlec@netfilter.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lvxiafei@sensetime.com \
--cc=netdev@vger.kernel.org \
--cc=netfilter-devel@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=pablo@netfilter.org \
--cc=xiafei_xupt@163.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.