arp: allow arp processing to honor per interface arp_accept sysctl
authorNeil Horman <nhorman@tuxdriver.com>
Thu, 15 Mar 2012 05:25:58 +0000 (05:25 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 17 Mar 2012 06:00:20 +0000 (23:00 -0700)
commit124d37e9f088a8f56494b0264d63d22555f53fef
tree372cf065963b109c0df78964ec196488a570eba5
parent1aa9bc5b2f4cf8c48944fb9a607bf1dd674e2c10
arp: allow arp processing to honor per interface arp_accept sysctl

I found recently that the arp_process function which handles all of our received
arp frames, is using IPV4_DEVCONF_ALL macro to check the state of the arp_process
flag.  This seems wrong, as it implies that either none or all of the network
interfaces accept gratuitous arps.  This patch corrects that, allowing
per-interface arp_accept configuration to deviate from the all setting.  Note
this also brings us into line with the way the arp_filter setting is handled
during arp_process execution.

Tested this myself on my home network, and confirmed it works as expected.

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
CC: "David S. Miller" <davem@davemloft.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/inetdevice.h
net/ipv4/arp.c