]> git.baikalelectronics.ru Git - kernel.git/commit
ipv6: Fix sporadic sendmsg -EINVAL when sending to multicast groups.
authorDavid S. Miller <davem@davemloft.net>
Mon, 5 Jan 2009 00:04:39 +0000 (16:04 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 5 Jan 2009 00:04:39 +0000 (16:04 -0800)
commit1d310b0f593fca0cb607118442033200fe9e459a
treed15c3dfabdc3ccf10997487c29df35fa58387e55
parentdc33e21d0e364b4d88a3536fb0340467c3692d49
ipv6: Fix sporadic sendmsg -EINVAL when sending to multicast groups.

Thanks to excellent diagnosis by Eduard Guzovsky.

The core problem is that on a network with lots of active
multicast traffic, the neighbour cache can fill up.  If
we try to allocate a new route and thus neighbour cache
entry, the bog-standard GC attempt the neighbour layer does
in ineffective because route entries hold a reference
to the existing neighbour entries and GC can only liberate
entries with no references.

IPV4 already has a way to handle this, by doing a route cache
GC in such situations (when neigh attach returns -ENOBUFS).

So simply mimick this on the ipv6 side.

Tested-by: Eduard Guzovsky <eguzovsky@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/ndisc.h
net/ipv6/route.c