aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2011-02-01 15:38:36 +0100
committerPatrick McHardy <kaber@trash.net>2011-02-01 15:38:36 +0100
commit6c027889696a7a694b0e2f6e3cabadefec7553b6 (patch)
treebfdb7bbdb8153ac15c45fe86928d4b02ce3fe766 /drivers
parentnetfilter: ipset; bitmap:port set type support (diff)
downloadlinux-dev-6c027889696a7a694b0e2f6e3cabadefec7553b6.tar.xz
linux-dev-6c027889696a7a694b0e2f6e3cabadefec7553b6.zip
netfilter: ipset: hash:ip set type support
The module implements the hash:ip type support in four flavours: for IPv4 or IPv6, both without and with timeout support. All the hash types are based on the "array hash" or ahash structure and functions as a good compromise between minimal memory footprint and speed. The hashing uses arrays to resolve clashes. The hash table is resized (doubled) when searching becomes too long. Resizing can be triggered by userspace add commands only and those are serialized by the nfnl mutex. During resizing the set is read-locked, so the only possible concurrent operations are the kernel side readers. Those are protected by RCU locking. Because of the four flavours and the other hash types, the functions are implemented in general forms in the ip_set_ahash.h header file and the real functions are generated before compiling by macro expansion. Thus the dereferencing of low-level functions and void pointer arguments could be avoided: the low-level functions are inlined, the function arguments are pointers of type-specific structures. Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'drivers')
0 files changed, 0 insertions, 0 deletions