neigh: increase queue_len_bytes to match wmem_default
Florian reported UDP xmit drops that could be root caused to the too small neigh limit. Current limit is 64 KB, meaning that even a single UDP socket would hit it, since its default sk_sndbuf comes from net.core.wmem_default (~212992 bytes on 64bit arches). Once ARP/ND resolution is in progress, we should allow a little more packets to be queued, at least for one producer. Once neigh arp_queue is filled, a rogue socket should hit its sk_sndbuf limit and either block in sendmsg() or return -EAGAIN. Signed-off-by: Eric Dumazet <edumazet@google.com> Reported-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
0dd5759dbb
commit
eaa72dc474
@@ -109,7 +109,10 @@ neigh/default/unres_qlen_bytes - INTEGER
|
||||
queued for each unresolved address by other network layers.
|
||||
(added in linux 3.3)
|
||||
Setting negative value is meaningless and will return error.
|
||||
Default: 65536 Bytes(64KB)
|
||||
Default: SK_WMEM_MAX, (same as net.core.wmem_default).
|
||||
Exact value depends on architecture and kernel options,
|
||||
but should be enough to allow queuing 256 packets
|
||||
of medium size.
|
||||
|
||||
neigh/default/unres_qlen - INTEGER
|
||||
The maximum number of packets which may be queued for each
|
||||
@@ -119,7 +122,7 @@ neigh/default/unres_qlen - INTEGER
|
||||
unexpected packet loss. The current default value is calculated
|
||||
according to default value of unres_qlen_bytes and true size of
|
||||
packet.
|
||||
Default: 31
|
||||
Default: 101
|
||||
|
||||
mtu_expires - INTEGER
|
||||
Time, in seconds, that cached PMTU information is kept.
|
||||
|
Reference in New Issue
Block a user