Hi, This patch introduces the following changes to nfnetlink: a) nfnetlink groups: Up to 32 maximum. +#define NF_NETLINK_CONNTRACK_NEW 0x1 +#define NF_NETLINK_CONNTRACK_UPDATE 0x2 +#define NF_NETLINK_CONNTRACK_DESTROY 0x4 +#define NF_NETLINK_CONNTRACK_EXPECT 0x8 I think that those four groups are enough to group events. b) NFA_NEST and NFA_NEST_END. As it was discussed, it's time to move this netlink stuff to a generic file, otherwise we could use RTA_* instead since all this NFA_* stuff is a copy and paste from the original RTA_*. Anyway c) We don't need this, that is defined in netlink.h. -#ifndef NETLINK_NETFILTER -#define NETLINK_NETFILTER 10 -#endif d) NFNL_SUBSYS_CTNETLINK_EXP has been killed. This is superseded by the group NF_NETLINK_CONNTRACK_EXPECT. e) nfnetlink_subsystem internal list isn't used, the array is enough. f) Fixed nfnl_shunlock. g) nfnetlink_subsys_alloc isn't useful anymore. Now we store the nfnetlink_subsystem in the BSS section. Please see ip_conntrack_netlink.c for an example. h) nfnetlink_check_attributes is called from nfnetlink, so we pass the attributes parsed to as parameter to the callback. See for more info: http://patchwork.netfilter.org/netfilter-devel/patch.pl?id=2671 i) Killed redundant check for unknown message.