Re: [PATCH iptables] libxt_cgroup2: add support for cgroup2 path matching
Hello, On Wed, Nov 18, 2015 at 12:02:01AM +0100, Jan Engelhardt wrote: > On Tuesday 2015-11-17 20:42, Tejun Heo wrote: > >+static void cgroup2_save(const void *ip, const struct xt_entry_match *match) > >+{ > >+const struct xt_cgroup2_info *info = (void *)match->data; > >+ > >+printf("%s --path %s", info->invert ? " !" : "", info->path); > >+} > > Can cgroup path names contain anything fancy, like spaces, backslashes, etc.? > If so, xtables_save_string() will be needed here. Will update. > >+static struct xtables_match cgroup2_match = { > >+.family = NFPROTO_UNSPEC, > >+.name = "cgroup2", > >+.version= XTABLES_VERSION, > >+.size = XT_ALIGN(sizeof(struct xt_cgroup2_info)), > >+.userspacesize = XT_ALIGN(sizeof(struct xt_cgroup2_info)), > > userspacesize must not include xt_cgroup2_info.priv. > Change to offsetof(...), cf. other .c modules which do this. Ah, okay. ... > >+\fBIMPORTANT\fP: when being used in the INPUT chain, the cgroup2 > >+matcher is currently only of limited functionality, meaning it > >+will only match on packets that are processed for local sockets > >+through early socket demuxing. Therefore, general usage on the > >+INPUT chain is disadviced unless the implications are well > > is disadviced (sic) -> is not advised Will update. That's copied verbatim from xt_cgroup tho. Will create a patch to update that too. Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH iptables] libxt_cgroup2: add support for cgroup2 path matching
On Tuesday 2015-11-17 20:42, Tejun Heo wrote: >+static void cgroup2_save(const void *ip, const struct xt_entry_match *match) >+{ >+ const struct xt_cgroup2_info *info = (void *)match->data; >+ >+ printf("%s --path %s", info->invert ? " !" : "", info->path); >+} Can cgroup path names contain anything fancy, like spaces, backslashes, etc.? If so, xtables_save_string() will be needed here. >+static struct xtables_match cgroup2_match = { >+ .family = NFPROTO_UNSPEC, >+ .name = "cgroup2", >+ .version= XTABLES_VERSION, >+ .size = XT_ALIGN(sizeof(struct xt_cgroup2_info)), >+ .userspacesize = XT_ALIGN(sizeof(struct xt_cgroup2_info)), userspacesize must not include xt_cgroup2_info.priv. Change to offsetof(...), cf. other .c modules which do this. >+++ b/extensions/libxt_cgroup2.man >@@ -0,0 +1,24 @@ >+.TP >+[\fB!\fP] \fB\-\-path\fP \fIpath\fP >+Match cgroup2 membership. >+ >+Each socket is associated with the v2 cgroup of the creating process. >+This matches packets coming from or going to all sockets in the >+sub-hierarchy of the specified path. The path should be relative to >+the root of the cgroup2 hierarchy. Can be used in the OUTPUT and >+INPUT chains to assign particular firewall policies for aggregated >+processes on the system. This allows for more fine-grained firewall >+policies that only match for a subset of the system's processes. >+ >+\fBIMPORTANT\fP: when being used in the INPUT chain, the cgroup2 >+matcher is currently only of limited functionality, meaning it >+will only match on packets that are processed for local sockets >+through early socket demuxing. Therefore, general usage on the >+INPUT chain is disadviced unless the implications are well is disadviced (sic) -> is not advised -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH iptables] libxt_cgroup2: add support for cgroup2 path matching
Hello, On Wed, Nov 18, 2015 at 12:02:01AM +0100, Jan Engelhardt wrote: > On Tuesday 2015-11-17 20:42, Tejun Heo wrote: > >+static void cgroup2_save(const void *ip, const struct xt_entry_match *match) > >+{ > >+const struct xt_cgroup2_info *info = (void *)match->data; > >+ > >+printf("%s --path %s", info->invert ? " !" : "", info->path); > >+} > > Can cgroup path names contain anything fancy, like spaces, backslashes, etc.? > If so, xtables_save_string() will be needed here. Will update. > >+static struct xtables_match cgroup2_match = { > >+.family = NFPROTO_UNSPEC, > >+.name = "cgroup2", > >+.version= XTABLES_VERSION, > >+.size = XT_ALIGN(sizeof(struct xt_cgroup2_info)), > >+.userspacesize = XT_ALIGN(sizeof(struct xt_cgroup2_info)), > > userspacesize must not include xt_cgroup2_info.priv. > Change to offsetof(...), cf. other .c modules which do this. Ah, okay. ... > >+\fBIMPORTANT\fP: when being used in the INPUT chain, the cgroup2 > >+matcher is currently only of limited functionality, meaning it > >+will only match on packets that are processed for local sockets > >+through early socket demuxing. Therefore, general usage on the > >+INPUT chain is disadviced unless the implications are well > > is disadviced (sic) -> is not advised Will update. That's copied verbatim from xt_cgroup tho. Will create a patch to update that too. Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH iptables] libxt_cgroup2: add support for cgroup2 path matching
On Tuesday 2015-11-17 20:42, Tejun Heo wrote: >+static void cgroup2_save(const void *ip, const struct xt_entry_match *match) >+{ >+ const struct xt_cgroup2_info *info = (void *)match->data; >+ >+ printf("%s --path %s", info->invert ? " !" : "", info->path); >+} Can cgroup path names contain anything fancy, like spaces, backslashes, etc.? If so, xtables_save_string() will be needed here. >+static struct xtables_match cgroup2_match = { >+ .family = NFPROTO_UNSPEC, >+ .name = "cgroup2", >+ .version= XTABLES_VERSION, >+ .size = XT_ALIGN(sizeof(struct xt_cgroup2_info)), >+ .userspacesize = XT_ALIGN(sizeof(struct xt_cgroup2_info)), userspacesize must not include xt_cgroup2_info.priv. Change to offsetof(...), cf. other .c modules which do this. >+++ b/extensions/libxt_cgroup2.man >@@ -0,0 +1,24 @@ >+.TP >+[\fB!\fP] \fB\-\-path\fP \fIpath\fP >+Match cgroup2 membership. >+ >+Each socket is associated with the v2 cgroup of the creating process. >+This matches packets coming from or going to all sockets in the >+sub-hierarchy of the specified path. The path should be relative to >+the root of the cgroup2 hierarchy. Can be used in the OUTPUT and >+INPUT chains to assign particular firewall policies for aggregated >+processes on the system. This allows for more fine-grained firewall >+policies that only match for a subset of the system's processes. >+ >+\fBIMPORTANT\fP: when being used in the INPUT chain, the cgroup2 >+matcher is currently only of limited functionality, meaning it >+will only match on packets that are processed for local sockets >+through early socket demuxing. Therefore, general usage on the >+INPUT chain is disadviced unless the implications are well is disadviced (sic) -> is not advised -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/