linux/drivers/net
Michael S. Tsirkin 5d09710925 tun: only queue packets on device
Historically tun supported two modes of operation:
- in default mode, a small number of packets would get queued
  at the device, the rest would be queued in qdisc
- in one queue mode, all packets would get queued at the device

This might have made sense up to a point where we made the
queue depth for both modes the same and set it to
a huge value (500) so unless the consumer
is stuck the chance of losing packets is small.

Thus in practice both modes behave the same, but the
default mode has some problems:
- if packets are never consumed, fragments are never orphaned
  which cases a DOS for sender using zero copy transmit
- overrun errors are hard to diagnose: fifo error is incremented
  only once so you can not distinguish between
  userspace that is stuck and a transient failure,
  tcpdump on the device does not show any traffic

Userspace solves this simply by enabling IFF_ONE_QUEUE
but there seems to be little point in not doing the
right thing for everyone, by default.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-12-03 15:07:36 -05:00
..
appletalk
arcnet
bonding bonding: delete migrated IP addresses from the rlb hash table 2012-11-30 12:07:27 -05:00
caif
can Merge branch 'for-davem' of git://gitorious.org/linux-can/linux-can-next 2012-11-30 12:12:05 -05:00
cris
dsa dsa: Hide core config options; make drivers select what they need 2012-11-26 17:10:44 -05:00
ethernet sky2: fix cleanup sequence in probe() function 2012-12-03 13:52:31 -05:00
fddi
hamradio
hippi
hyperv hyperv: Add an error message to rndis_filter_set_device_mac() 2012-11-30 15:02:56 -05:00
ieee802154
irda irda: ep7211-sir: Convert to platform_diver 2012-12-03 13:32:15 -05:00
phy Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-11-25 12:49:17 -05:00
plip
ppp ppp: make ppp_get_stats64 static 2012-11-01 12:38:31 -04:00
slip
team team: fix hw_features setup 2012-11-28 11:39:22 -05:00
usb smsc95xx: expand check_ macros 2012-11-30 12:27:21 -05:00
vmxnet3 vmxnet3: fix indentation 2012-11-14 21:48:16 -05:00
wan Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-11-25 12:49:17 -05:00
wimax
wireless Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2012-11-28 10:56:03 -05:00
xen-netback
dummy.c
eql.c
ifb.c
Kconfig
LICENSE.SRC
loopback.c
macvlan.c
macvtap.c
Makefile
mdio.c
mii.c
netconsole.c netconsole: add oops_only module option 2012-11-08 22:06:36 -05:00
rionet.c
sb1000.c
Space.c
sungem_phy.c
tun.c tun: only queue packets on device 2012-12-03 15:07:36 -05:00
veth.c rtnelink: remove unused parameter from rtnl_create_link(). 2012-11-30 12:24:40 -05:00
virtio_net.c virtio_net: use net_*_ratelimited() helpers 2012-11-09 17:05:28 -05:00
vxlan.c add DOVE extensions for VXLAN 2012-11-20 13:41:28 -05:00
xen-netfront.c xen/netfront: handle compound page fragments on transmit 2012-11-21 11:50:31 -05:00