android_kernel_xiaomi_sm8350/net
Eric Dumazet 6ce9e7b5fe ip: Report qdisc packet drops
Christoph Lameter pointed out that packet drops at qdisc level where not
accounted in SNMP counters. Only if application sets IP_RECVERR, drops
are reported to user (-ENOBUFS errors) and SNMP counters updated.

IP_RECVERR is used to enable extended reliable error message passing,
but these are not needed to update system wide SNMP stats.

This patch changes things a bit to allow SNMP counters to be updated,
regardless of IP_RECVERR being set or not on the socket.

Example after an UDP tx flood
# netstat -s 
...
IP:
    1487048 outgoing packets dropped
...
Udp:
...
    SndbufErrors: 1487048


send() syscalls, do however still return an OK status, to not
break applications.

Note : send() manual page explicitly says for -ENOBUFS error :

 "The output queue for a network interface was full.
  This generally indicates that the interface has stopped sending,
  but may be caused by transient congestion.
  (Normally, this does not occur in Linux. Packets are just silently
  dropped when a device queue overflows.) "

This is not true for IP_RECVERR enabled sockets : a send() syscall
that hit a qdisc drop returns an ENOBUFS error.

Many thanks to Christoph, David, and last but not least, Alexey !

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2009-09-02 18:05:33 -07:00
..
9p
802
8021q vlan: multiqueue vlan device 2009-09-02 18:03:00 -07:00
appletalk Use correct NET_RX_* returns for atalk_rcv() 2009-08-12 20:44:50 -07:00
atm net: make neigh_ops constant 2009-09-01 17:40:57 -07:00
ax25
bluetooth netdev: convert pseudo-devices to netdev_tx_t 2009-09-01 01:13:07 -07:00
bridge netdev: convert pseudo-devices to netdev_tx_t 2009-09-01 01:13:07 -07:00
can can: use correct NET_RX_ return values 2009-08-30 22:13:18 -07:00
core vlan: multiqueue vlan device 2009-09-02 18:03:00 -07:00
dcb dcbnl: Add implementations of dcbnl setapp/getapp commands 2009-09-01 01:24:36 -07:00
dccp inet: inet_connection_sock_af_ops const 2009-09-02 01:03:49 -07:00
decnet net: make neigh_ops constant 2009-09-01 17:40:57 -07:00
dsa netdev: convert pseudo-devices to netdev_tx_t 2009-09-01 01:13:07 -07:00
econet Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
ethernet
ieee802154 Drop ARPHRD_IEEE802154_PHY 2009-08-19 23:08:24 +04:00
ipv4 ip: Report qdisc packet drops 2009-09-02 18:05:33 -07:00
ipv6 ip: Report qdisc packet drops 2009-09-02 18:05:33 -07:00
ipx
irda net: file_operations should be const 2009-09-02 01:03:53 -07:00
iucv
key net: file_operations should be const 2009-09-02 01:03:53 -07:00
lapb
llc Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-09-02 00:32:56 -07:00
mac80211 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2009-09-02 14:18:09 -07:00
netfilter Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-09-02 00:32:56 -07:00
netlabel Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-30 19:22:43 -07:00
netlink
netrom Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-09-02 00:32:56 -07:00
packet af_packet: style cleanups 2009-07-23 18:01:10 -07:00
phonet netdev: convert pseudo drivers to netdev_tx_t 2009-09-01 01:13:40 -07:00
rds RDS: Add a debug message suggesting to load transport modules 2009-08-23 19:13:14 -07:00
rfkill rfkill: add the GPS radio type 2009-08-04 16:44:23 -04:00
rose convert hamradio drivers to netdev_txreturnt_t 2009-09-01 01:13:12 -07:00
rxrpc net: mark read-only arrays as const 2009-08-05 10:42:58 -07:00
sched Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-09-02 00:32:56 -07:00
sctp Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-08-12 17:44:53 -07:00
sunrpc
tipc tipc: fix test of bearer_priority range in tipc_register_media() 2009-08-29 00:19:42 -07:00
unix
wanrouter
wimax
wireless cfg80211: fix looping soft lockup in find_ie() 2009-09-02 15:29:04 -04:00
x25
xfrm net: file_operations should be const 2009-09-02 01:03:53 -07:00
compat.c
Kconfig
Makefile
nonet.c
socket.c
sysctl_net.c
TUNABLE