netfilter: nfnetlink_queue: zero copy support
authorEric Dumazet <edumazet@google.com>
Sun, 17 Mar 2013 17:15:55 +0000 (17:15 +0000)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 19 Mar 2013 16:02:24 +0000 (17:02 +0100)
commitae08ce0021087a5d812d2714fb2a326ef9f8c450
tree800cbac2e233a3ec3936e3baa6f38e65f4b3ea1d
parente844a928431fa8f1359d1f4f2cef53d9b446bf52
netfilter: nfnetlink_queue: zero copy support

nfqnl_build_packet_message() actually copy the packet
inside the netlink message, while it can instead use
zero copy.

Make sure the skb 'copy' is the last component of the
cooked netlink message, as we cant add anything after it.

Patch cooked in Copenhagen at Netfilter Workshop ;)

Still to be addressed in separate patches :

-GRO/GSO packets are segmented in nf_queue()
and checksummed in nfqnl_build_packet_message().

Proper support for GSO/GRO packets (no segmentation,
and no checksumming) needs application cooperation, if we
want no regressions.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nfnetlink_queue_core.c