[RFC,PATCH] sequence numbering for ctnetlink events This patch adds sequence numbering to ctnetlink event messages send to userspace. Signed-off-by: Pablo Neira Ayuso Index: net-2.6.18.git/net/ipv4/netfilter/ip_conntrack_netlink.c =================================================================== --- net-2.6.18.git.orig/net/ipv4/netfilter/ip_conntrack_netlink.c 2006-06-06 16:08:59.000000000 +0200 +++ net-2.6.18.git/net/ipv4/netfilter/ip_conntrack_netlink.c 2006-06-06 16:55:44.000000000 +0200 @@ -304,6 +304,8 @@ } #ifdef CONFIG_IP_NF_CONNTRACK_EVENTS +static atomic_t ip_conntrack_seq = ATOMIC_INIT(0); + static int ctnetlink_conntrack_event(struct notifier_block *this, unsigned long events, void *ptr) { @@ -349,7 +351,8 @@ b = skb->tail; type |= NFNL_SUBSYS_CTNETLINK << 8; - nlh = NLMSG_PUT(skb, 0, 0, type, sizeof(struct nfgenmsg)); + nlh = NLMSG_PUT(skb, 0, atomic_add_return(1, &ip_conntrack_seq), + type, sizeof(struct nfgenmsg)); nfmsg = NLMSG_DATA(nlh); nlh->nlmsg_flags = flags; @@ -1239,6 +1242,8 @@ } #ifdef CONFIG_IP_NF_CONNTRACK_EVENTS +static atomic_t ip_conntrack_exp_seq = ATOMIC_INIT(0); + static int ctnetlink_expect_event(struct notifier_block *this, unsigned long events, void *ptr) { @@ -1263,7 +1268,8 @@ b = skb->tail; type |= NFNL_SUBSYS_CTNETLINK_EXP << 8; - nlh = NLMSG_PUT(skb, 0, 0, type, sizeof(struct nfgenmsg)); + nlh = NLMSG_PUT(skb, 0, atomic_add_return(1, &ip_conntrack_exp_seq), + type, sizeof(struct nfgenmsg)); nfmsg = NLMSG_DATA(nlh); nlh->nlmsg_flags = flags;