]> git.ipfire.org Git - thirdparty/nftables.git/commit
mnl: estimate receiver buffer size
authorPablo Neira Ayuso <pablo@netfilter.org>
Wed, 29 May 2019 18:23:23 +0000 (20:23 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 31 May 2019 15:57:35 +0000 (17:57 +0200)
commit89c82c261bb53bfb0b671437a1323830dd7e4019
treea9a1cd8f03fbdf8e4ad735c1e91990887bb6c27d
parentf718751f306d0de7ae2976f0003f6c1892fd0094
mnl: estimate receiver buffer size

Set a receiver buffer size based on the number of commands and the
average message size, this is useful for the --echo option in order to
avoid ENOBUFS errors.

On the kernel side, each skbuff consumes truesize from the socket queue
(although it uses NLMSG_GOODSIZE to allocate it), which is approximately
four times the estimated size per message that we get in turn for each
echo message to ensure enough receiver buffer space.

We could also explore increasing the buffer and retry if
mnl_nft_socket_sendmsg() hits ENOBUFS if we ever hit this problem again.

Reported-by: Phil Sutter <phil@nwl.cc>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
include/mnl.h
src/libnftables.c
src/mnl.c