netfilter: nfnetlink: allow to check for generation ID
authorPablo Neira Ayuso <pablo@netfilter.org>
Fri, 10 Feb 2017 11:08:17 +0000 (12:08 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Sun, 12 Feb 2017 13:45:11 +0000 (14:45 +0100)
commit8c4d4e8b5626fec965fd5034e5bd5e57790f243f
treee8ce0acf10108f74d0ce8cd150f061baff0686bf
parent48656835c0405aa2e6c0d6a4305c77b70758d168
netfilter: nfnetlink: allow to check for generation ID

This patch allows userspace to specify the generation ID that has been
used to build an incremental batch update.

If userspace specifies the generation ID in the batch message as
attribute, then nfnetlink compares it to the current generation ID so
you make sure that you work against the right baseline. Otherwise, bail
out with ERESTART so userspace knows that its changeset is stale and
needs to respin. Userspace can do this transparently at the cost of
taking slightly more time to refresh caches and rework the changeset.

This check is optional, if there is no NFNL_BATCH_GENID attribute in the
batch begin message, then no check is performed.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
include/linux/netfilter/nfnetlink.h
include/uapi/linux/netfilter/nfnetlink.h
net/netfilter/nfnetlink.c