net: set a default value for sndbuf=
commitfc5b81d1f6df7342f0963120b2cf3e919d6fc08a
authorMark McLoughlin <markmc@redhat.com>
Tue, 30 Jun 2009 09:02:57 +0000 (30 10:02 +0100)
committerAnthony Liguori <aliguori@us.ibm.com>
Thu, 9 Jul 2009 21:06:37 +0000 (9 16:06 -0500)
tree039af2c51677ee408f18873f697b7f9b80c64715
parentdf7a607b6b1cf3966ba30e7c7bae7c1ae348d679
net: set a default value for sndbuf=

On reflection, perhaps it does make sense to set a default value for
the sndbuf= tap parameter.

For best effect, sndbuf= should be set to just below the capacity of
the physical NIC.

Setting it higher will cause packets to be dropped before the limit
is hit. Setting it much lower will not cause any problems unless
you set it low enough such that the guest cannot queue up new packets
before the NIC has emptied its queue.

In Linux, txqueuelen=1000 by default for ethernet NICs. Given a 1500
byte MTU, 1Mb is a good choice for sndbuf.

If it turns out that txqueuelen is actually much lower than this, then
sndbuf is essentially disabled. In the event that txqueuelen is much
higher, it's unlikely that the NIC will be able to empty a 1Mb queue.

Thanks to Herbert Xu for this logic.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Cc: Herbert Xu <herbert.xu@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
net.c
qemu-options.hx