Re: [RFC] generic CONNTRACK target

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Jan 15 2008 07:40, Patrick McHardy wrote:
>
> This doesn't seem to actually consolidate any code, just put
> it all in one file and dispatch based on the desired operation.
> Whats the advantage over the existing modules?

I could imagine it is the "less .ko overhead" thing as I tried with 
xt_REJECT (12 kb, replacing a 24kb ipt_+ip6t_REJECT solution) and xt_ah.

Also, as noticed in http://lkml.org/lkml/2007/12/31/59, modules are 
aligned at page boundaries, which means

ipt_REJECT.ko 11121 bytes uses up 12288 bytes of RAM.
ip6t_REJECT.ko 12107 bytes also uses up 12288 bytes of RAM.
(All values on x86_32).
xt_REJECT.ko 14665 bytes would use just 16384 bytes of RAM,
though of course, as correctly noticed, it has the ugly runtime 
dependency on IPv6. While xt_CONNTRACK would not have this IPv6 
dependency, if people do not use IPv6 at all, they _save_ 4096 bytes.
It's really a tradeoff.

(Yes it shows that the ELF .ko header bloat should probably be reduced.)


> Another issue is that it merges all conntrack-related targets
> existing today, but as soon as we're going to add something
> new we're going to run into compatibility issues again and it
> will be easier to add a new module. I don't think the trouble
> is worth it as long as we have to suffer our crappy userspace
> interface.

I would have a third suggestion you can tinker with. It involves using 
separate struct xt_targetNameHere_tginfo for all submodules, so that all 
xt_CONNTRACK would do is code agglomeration rather than target 
combination. In other words:

struct xt_target xt_conntrack_tg_reg[] __read_mostly = {
	{
		.name = "NOTRACK",
		.targetsize = sizeof(struct xt_notrack_tginfo),
		...
	},
	{
		.name = "CONNMARK",
		.targetsize = sizeof(struct xt_connmark_tginfo),
		...
	},
};

This would at least leave the compatibility forest as-is, but be a 
benefit (either + or -) on RAM space (see above).
-
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netfitler Users]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux