From: Pablo Neira Ayuso <pablo@netfilter.org>
To: "Michal Koutný" <mkoutny@suse.com>
Cc: netfilter-devel@vger.kernel.org, coreteam@netfilter.org,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
Jozsef Kadlecsik <kadlec@netfilter.org>,
"David S . Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Simon Horman <horms@kernel.org>,
cgroups@vger.kernel.org, Jan Engelhardt <ej@inai.de>,
Florian Westphal <fw@strlen.de>
Subject: Re: [PATCH v2] netfilter: Make xt_cgroup independent from net_cls
Date: Sun, 23 Mar 2025 10:20:10 +0100 [thread overview]
Message-ID: <Z9_SSuPu2TXeN2TD@calendula> (raw)
In-Reply-To: <20250305170935.80558-1-mkoutny@suse.com>
Hi Michal,
I have one question.
On Wed, Mar 05, 2025 at 06:09:35PM +0100, Michal Koutný wrote:
> diff --git a/net/netfilter/xt_cgroup.c b/net/netfilter/xt_cgroup.c
> index c0f5e9a4f3c65..c3055e74aa0ea 100644
> --- a/net/netfilter/xt_cgroup.c
> +++ b/net/netfilter/xt_cgroup.c
> @@ -23,6 +23,13 @@ MODULE_DESCRIPTION("Xtables: process control group matching");
> MODULE_ALIAS("ipt_cgroup");
> MODULE_ALIAS("ip6t_cgroup");
>
> +#define NET_CLS_CLASSID_INVALID_MSG "xt_cgroup: classid invalid without net_cls cgroups\n"
> +
> +static bool possible_classid(u32 classid)
> +{
> + return IS_ENABLED(CONFIG_CGROUP_NET_CLASSID) || classid == 0;
> +}
> +
> static int cgroup_mt_check_v0(const struct xt_mtchk_param *par)
> {
> struct xt_cgroup_info_v0 *info = par->matchinfo;
> @@ -30,6 +37,11 @@ static int cgroup_mt_check_v0(const struct xt_mtchk_param *par)
> if (info->invert & ~1)
> return -EINVAL;
>
> + if (!possible_classid(info->id)) {
why classid != 0 is accepted for cgroup_mt_check_v0()?
cgroup_mt_check_v0 represents revision 0 of this match, and this match
only supports for clsid (groupsv1).
History of revisions of cgroupsv2:
- cgroup_mt_check_v0 added to match on clsid (initial version of this match)
- cgroup_mt_check_v1 is added to support cgroupsv2 matching
- cgroup_mt_check_v2 is added to make cgroupsv2 matching more flexible
I mean, if !IS_ENABLED(CONFIG_CGROUP_NET_CLASSID) then xt_cgroup
should fail for cgroup_mt_check_v0.
But a more general question: why this check for classid == 0 in
cgroup_mt_check_v1 and cgroup_mt_check_v2?
> + pr_info(NET_CLS_CLASSID_INVALID_MSG);
> + return -EINVAL;
> + }
> +
> return 0;
> }
>
> @@ -51,6 +63,11 @@ static int cgroup_mt_check_v1(const struct xt_mtchk_param *par)
> return -EINVAL;
> }
>
> + if (!possible_classid(info->classid)) {
> + pr_info(NET_CLS_CLASSID_INVALID_MSG);
> + return -EINVAL;
> + }
> +
> info->priv = NULL;
> if (info->has_path) {
> cgrp = cgroup_get_from_path(info->path);
> @@ -83,6 +100,11 @@ static int cgroup_mt_check_v2(const struct xt_mtchk_param *par)
> return -EINVAL;
> }
>
> + if (info->has_classid && !possible_classid(info->classid)) {
> + pr_info(NET_CLS_CLASSID_INVALID_MSG);
> + return -EINVAL;
> + }
> +
> info->priv = NULL;
> if (info->has_path) {
> cgrp = cgroup_get_from_path(info->path);
>
> base-commit: dd83757f6e686a2188997cb58b5975f744bb7786
> --
> 2.48.1
>
next prev parent reply other threads:[~2025-03-23 9:20 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-05 17:09 [PATCH v2] netfilter: Make xt_cgroup independent from net_cls Michal Koutný
2025-03-19 17:35 ` Michal Koutný
2025-03-19 23:44 ` Pablo Neira Ayuso
2025-03-23 9:20 ` Pablo Neira Ayuso [this message]
2025-03-24 12:56 ` Michal Koutný
2025-03-24 16:49 ` Pablo Neira Ayuso
2025-03-24 18:01 ` Michal Koutný
2025-03-25 15:31 ` Pablo Neira Ayuso
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=Z9_SSuPu2TXeN2TD@calendula \
--to=pablo@netfilter.org \
--cc=cgroups@vger.kernel.org \
--cc=coreteam@netfilter.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=ej@inai.de \
--cc=fw@strlen.de \
--cc=horms@kernel.org \
--cc=kadlec@netfilter.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mkoutny@suse.com \
--cc=netdev@vger.kernel.org \
--cc=netfilter-devel@vger.kernel.org \
--cc=pabeni@redhat.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.