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)
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>

No differences found