ipv4: Fix ARP behavior with many mac-vlans
authorBen Greear <greearb@candelatech.com>
Mon, 17 Nov 2008 03:19:38 +0000 (19:19 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 17 Nov 2008 03:19:38 +0000 (19:19 -0800)
commit8164f1b79731ad8ad9c713dc53d587a3b746f82f
treed9e9cf462fccbfbc217b064dcf41789033faf7e9
parent6ea7ae1d0fc02a6c4ccd27e43346f67c44226e7a
ipv4: Fix ARP behavior with many mac-vlans

Ben Greear wrote:
> I have 500 mac-vlans on a system talking to 500 other
> mac-vlans.  My problem is that the arp-table gets extremely
> huge because every time an arp-request comes in on all mac-vlans,
> a stale arp entry is added for each mac-vlan.  I have filtering
> turned on, but that doesn't help because the neigh_event_ns call
> below will cause a stale neighbor entry to be created regardless
> of whether a replay will be sent or not.
> Maybe the neigh_event code should be below the checks for dont_send,
> and only create check neigh_event_ns if we are !dont_send?

The attached patch makes it work much better for me.  The patch
will cause the code to NOT create a stale neighbor entry if we
are not going to respond to the ARP request.  The old code
*would* create a stale entry even if we are not going to respond.

Signed-off-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/arp.c