All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Borkmann <daniel-FeC+5ew28dpmcu3hnIyYJQ@public.gmane.org>
To: Florian Westphal <fw-HFFVJYpyMKqzQB+pC5nmwQ@public.gmane.org>,
	Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org,
	pablo-Cap9r6Oaw4JrovVCs/uTlw@public.gmane.org,
	kaber-dcUjhNyLwpNeoWH0uzbU5w@public.gmane.org,
	kadlec-K40Dz/62t/MgiyqX0sVFJYdd74u8MsAO@public.gmane.org,
	daniel.wagner-98C5kh4wR6ohFhg+JK9F0w@public.gmane.org,
	nhorman-2XuSBdqkA4SvXiR4WA35Jg@public.gmane.org,
	lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org,
	hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org,
	netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	netfilter-devel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	kernel-team-b10kYP2dOMg@public.gmane.org,
	ninasc-b10kYP2dOMg@public.gmane.org,
	Neil Horman <nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>,
	Jan Engelhardt <jengelh-9+2X+4sQBs8@public.gmane.org>
Subject: Re: [PATCH 9/9] netfilter: implement xt_cgroup cgroup2 path match
Date: Mon, 23 Nov 2015 14:51:39 +0100	[thread overview]
Message-ID: <565319EB.2090909@iogearbox.net> (raw)
In-Reply-To: <565317F0.2030502-FeC+5ew28dpmcu3hnIyYJQ@public.gmane.org>

On 11/23/2015 02:43 PM, Daniel Borkmann wrote:
> On 11/21/2015 07:54 PM, Florian Westphal wrote:
>> Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> wrote:
>>> On Sat, Nov 21, 2015 at 05:56:06PM +0100, Florian Westphal wrote:
>>>>> +struct xt_cgroup_info_v1 {
>>>>> +    __u8        has_path;
>>>>> +    __u8        has_classid;
>>>>> +    __u8        invert_path;
>>>>> +    __u8        invert_classid;
>>>>> +    char        path[PATH_MAX];
>>>>> +    __u32        classid;
>>>>> +
>>>>> +    /* kernel internal data */
>>>>> +    void        *priv __attribute__((aligned(8)));
>>>>> +};
>>>>
>>>> Ahem.  Am I reading this right? This struct is > 4k in size?
>>>> If so -- Ugh.  Does sizeof(path) really have to be PATH_MAX?
>>>
>>> Hmmm... yeap but would this be an acutual problem?
>>
>> Since rule blob can be allocated via vmalloc i guess "no", its not
>> really a problem unless someone needs realy insane amount of such rules.
>>
>> I don't have any better suggestion, so I guess its necessary evil.
>>
>> The only other question I have is wheter PATH_MAX might be a possible
>> ABI breaker in future.  It would have to be guaranteed that this is the
>> same size forever, else you'd get strange errors on rule insertion if
>> the sizes of the kernel and userspace version differs.
>
> Haven't looked deeply into kernfs, but if it's possible to get the object
> from the struct file eventually, you could let iptables frontend open that
> path and just pass the fd down. Would be sizeof(int) vs PATH_MAX then, i.e.
> when you have a large number of rules to load.

( ... but with the downside that things like save/restore wouldn't work. )

WARNING: multiple messages have this Message-ID (diff)
From: Daniel Borkmann <daniel@iogearbox.net>
To: Florian Westphal <fw@strlen.de>, Tejun Heo <tj@kernel.org>
Cc: davem@davemloft.net, pablo@netfilter.org, kaber@trash.net,
	kadlec@blackhole.kfki.hu, daniel.wagner@bmw-carit.de,
	nhorman@tuxdriver.co, lizefan@huawei.com, hannes@cmpxchg.org,
	netdev@vger.kernel.org, netfilter-devel@vger.kernel.org,
	cgroups@vger.kernel.org, linux-kernel@vger.kernel.org,
	kernel-team@fb.com, ninasc@fb.com,
	Neil Horman <nhorman@tuxdriver.com>,
	Jan Engelhardt <jengelh@inai.de>
Subject: Re: [PATCH 9/9] netfilter: implement xt_cgroup cgroup2 path match
Date: Mon, 23 Nov 2015 14:51:39 +0100	[thread overview]
Message-ID: <565319EB.2090909@iogearbox.net> (raw)
In-Reply-To: <565317F0.2030502@iogearbox.net>

On 11/23/2015 02:43 PM, Daniel Borkmann wrote:
> On 11/21/2015 07:54 PM, Florian Westphal wrote:
>> Tejun Heo <tj@kernel.org> wrote:
>>> On Sat, Nov 21, 2015 at 05:56:06PM +0100, Florian Westphal wrote:
>>>>> +struct xt_cgroup_info_v1 {
>>>>> +    __u8        has_path;
>>>>> +    __u8        has_classid;
>>>>> +    __u8        invert_path;
>>>>> +    __u8        invert_classid;
>>>>> +    char        path[PATH_MAX];
>>>>> +    __u32        classid;
>>>>> +
>>>>> +    /* kernel internal data */
>>>>> +    void        *priv __attribute__((aligned(8)));
>>>>> +};
>>>>
>>>> Ahem.  Am I reading this right? This struct is > 4k in size?
>>>> If so -- Ugh.  Does sizeof(path) really have to be PATH_MAX?
>>>
>>> Hmmm... yeap but would this be an acutual problem?
>>
>> Since rule blob can be allocated via vmalloc i guess "no", its not
>> really a problem unless someone needs realy insane amount of such rules.
>>
>> I don't have any better suggestion, so I guess its necessary evil.
>>
>> The only other question I have is wheter PATH_MAX might be a possible
>> ABI breaker in future.  It would have to be guaranteed that this is the
>> same size forever, else you'd get strange errors on rule insertion if
>> the sizes of the kernel and userspace version differs.
>
> Haven't looked deeply into kernfs, but if it's possible to get the object
> from the struct file eventually, you could let iptables frontend open that
> path and just pass the fd down. Would be sizeof(int) vs PATH_MAX then, i.e.
> when you have a large number of rules to load.

( ... but with the downside that things like save/restore wouldn't work. )

  parent reply	other threads:[~2015-11-23 13:51 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-21 16:13 [PATCHSET v3] netfilter, cgroup: implement cgroup2 path match in xt_cgroup Tejun Heo
2015-11-21 16:13 ` Tejun Heo
2015-11-21 16:13 ` [PATCH 1/9] cgroup: record ancestor IDs and reimplement cgroup_is_descendant() using it Tejun Heo
2015-11-21 16:13 ` [PATCH 2/9] kernfs: implement kernfs_walk_and_get() Tejun Heo
2015-11-21 16:13 ` [PATCH 4/9] cgroups: Allow dynamically changing net_classid Tejun Heo
2015-11-21 16:13 ` [PATCH 5/9] netprio_cgroup: limit the maximum css->id to USHRT_MAX Tejun Heo
2015-11-21 16:13 ` [PATCH 6/9] net: wrap sock->sk_cgrp_prioidx and ->sk_classid inside a struct Tejun Heo
2015-11-21 16:13 ` [PATCH 7/9] sock, cgroup: add sock->sk_cgroup Tejun Heo
2015-11-23 13:02   ` Daniel Wagner
2015-11-23 13:02     ` Daniel Wagner
     [not found]     ` <56530E4B.4090209-98C5kh4wR6ohFhg+JK9F0w@public.gmane.org>
2015-11-23 15:48       ` Tejun Heo
2015-11-23 15:48         ` Tejun Heo
2015-11-23 15:53         ` Daniel Wagner
2015-11-23 15:53           ` Daniel Wagner
2015-11-21 16:14 ` [PATCH 8/9] netfilter: prepare xt_cgroup for multi revisions Tejun Heo
2015-11-23 12:44   ` Daniel Wagner
2015-11-23 12:44     ` Daniel Wagner
2015-11-21 16:14 ` [PATCH 9/9] netfilter: implement xt_cgroup cgroup2 path match Tejun Heo
     [not found]   ` <1448122441-9335-10-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2015-11-21 16:56     ` Florian Westphal
2015-11-21 16:56       ` Florian Westphal
     [not found]       ` <20151121165605.GC25336-E0PNVn5OA6ohrxcnuTQ+TQ@public.gmane.org>
2015-11-21 17:04         ` Tejun Heo
2015-11-21 17:04           ` Tejun Heo
2015-11-21 18:54           ` Florian Westphal
2015-11-21 20:26             ` Jan Engelhardt
2015-11-23 13:43             ` Daniel Borkmann
     [not found]               ` <565317F0.2030502-FeC+5ew28dpmcu3hnIyYJQ@public.gmane.org>
2015-11-23 13:51                 ` Daniel Borkmann [this message]
2015-11-23 13:51                   ` Daniel Borkmann
2015-11-23 15:40                 ` Tejun Heo
2015-11-23 15:40                   ` Tejun Heo
2015-11-23 17:35       ` David Laight
     [not found]         ` <063D6719AE5E284EB5DD2968C1650D6D1CBDA8E2-VkEWCZq2GCInGFn1LkZF6NBPR1lH4CV8@public.gmane.org>
2015-11-23 17:55           ` Jan Engelhardt
2015-11-23 17:55             ` Jan Engelhardt
2015-11-23 17:55             ` Jan Engelhardt
2015-11-23 12:43     ` Daniel Wagner
2015-11-23 12:43       ` Daniel Wagner
2015-11-23 12:43       ` Daniel Wagner
     [not found]       ` <565309D5.80707-98C5kh4wR6ohFhg+JK9F0w@public.gmane.org>
2015-11-23 15:41         ` Tejun Heo
2015-11-23 15:41           ` Tejun Heo
2015-11-21 16:17 ` [PATCHSET v3] netfilter, cgroup: implement cgroup2 path match in xt_cgroup Tejun Heo
2015-11-21 16:18 ` [PATCH 1/2 iptables] libxt_cgroup: prepare for multi revisions Tejun Heo
     [not found]   ` <20151121161846.GB3428-piEFEHQLUPpN0TnZuCh8vA@public.gmane.org>
2015-11-21 16:19     ` [PATCH 2/2 iptables] libxt_cgroup: add support for cgroup2 path matching Tejun Heo
2015-11-21 16:19       ` Tejun Heo
2015-11-22 20:31   ` [PATCH 1/2 iptables] libxt_cgroup: prepare for multi revisions Pablo Neira Ayuso
2015-11-22 20:34     ` Pablo Neira Ayuso
2015-11-22 20:34       ` Pablo Neira Ayuso
     [not found] ` <1448122441-9335-1-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2015-11-21 16:13   ` [PATCH 3/9] cgroup: implement cgroup_get_from_path() and expose cgroup_put() Tejun Heo
2015-11-21 16:13     ` Tejun Heo
2015-11-23  7:11   ` [PATCHSET v3] netfilter, cgroup: implement cgroup2 path match in xt_cgroup Daniel Wagner
2015-11-23  7:11     ` Daniel Wagner
2015-11-23  7:11     ` Daniel Wagner
     [not found]     ` <5652BC3A.1010701-98C5kh4wR6ohFhg+JK9F0w@public.gmane.org>
2015-11-23  8:54       ` Daniel Wagner
2015-11-23  8:54         ` Daniel Wagner
2015-11-23  8:54         ` Daniel Wagner
     [not found]         ` <5652D448.3080002-98C5kh4wR6ohFhg+JK9F0w@public.gmane.org>
2015-11-23 15:53           ` Tejun Heo
2015-11-23 15:53             ` Tejun Heo
     [not found]             ` <20151123155346.GE3049-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2015-11-23 15:57               ` Daniel Wagner
2015-11-23 15:57                 ` Daniel Wagner
2015-11-23 15:57                 ` Daniel Wagner
2015-11-23 19:58             ` Tejun Heo
2015-11-23 20:45 ` David Miller
     [not found]   ` <20151123.154523.125969708507852672.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2015-11-23 20:54     ` Tejun Heo
2015-11-23 20:54       ` Tejun Heo

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=565319EB.2090909@iogearbox.net \
    --to=daniel-fec+5ew28dpmcu3hniyyjq@public.gmane.org \
    --cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=daniel.wagner-98C5kh4wR6ohFhg+JK9F0w@public.gmane.org \
    --cc=davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org \
    --cc=fw-HFFVJYpyMKqzQB+pC5nmwQ@public.gmane.org \
    --cc=hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org \
    --cc=jengelh-9+2X+4sQBs8@public.gmane.org \
    --cc=kaber-dcUjhNyLwpNeoWH0uzbU5w@public.gmane.org \
    --cc=kadlec-K40Dz/62t/MgiyqX0sVFJYdd74u8MsAO@public.gmane.org \
    --cc=kernel-team-b10kYP2dOMg@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
    --cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=netfilter-devel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org \
    --cc=nhorman-2XuSBdqkA4SvXiR4WA35Jg@public.gmane.org \
    --cc=ninasc-b10kYP2dOMg@public.gmane.org \
    --cc=pablo-Cap9r6Oaw4JrovVCs/uTlw@public.gmane.org \
    --cc=tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.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.