netfilter: reduce NF_VERDICT_MASK to 0xff
authorFlorian Westphal <fw@strlen.de>
Tue, 18 Jan 2011 14:52:14 +0000 (15:52 +0100)
committerPatrick McHardy <kaber@trash.net>
Tue, 18 Jan 2011 14:52:14 +0000 (15:52 +0100)
commitf615df76ed862b7d3927ec5f55b805ca19be29d9
tree11d8dca165f2b44cfe31e39eacf52d2d899ffbcf
parent06cdb6349c1f3fd439398dbc04ce4c696f0a41ab
netfilter: reduce NF_VERDICT_MASK to 0xff

NF_VERDICT_MASK is currently 0xffff. This is because the upper
16 bits are used to store errno (for NF_DROP) or the queue number
(NF_QUEUE verdict).

As there are up to 0xffff different queues available, there is no more
room to store additional flags.

At the moment there are only 6 different verdicts, i.e. we can reduce
NF_VERDICT_MASK to 0xff to allow storing additional flags in the 0xff00 space.

NF_VERDICT_BITS would then be reduced to 8, but because the value is
exported to userspace, this might cause breakage; e.g.:

e.g. 'queuenr = (1 << NF_VERDICT_BITS) | NF_QUEUE'  would now break.

Thus, remove NF_VERDICT_BITS usage in the kernel and move the old value
to the 'userspace compat' section.

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
include/linux/netfilter.h
net/netfilter/core.c
net/netfilter/nf_queue.c