Commit f8a68e75 authored by Eric W. Biederman's avatar Eric W. Biederman Committed by David S. Miller

Revert "ipv4: arp announce, arp_proxy and windows ip conflict verification"

This reverts commit 73ce7b01.

After discovering that we don't listen to gratuitious arps in 2.6.30
I tracked the failure down to this commit.

The patch makes absolutely no sense.  RFC2131 RFC3927 and RFC5227.
are all in agreement that an arp request with sip == 0 should be used
for the probe (to prevent learning) and an arp request with sip == tip
should be used for the gratitous announcement that people can learn
from.

It appears the author of the broken patch got those two cases confused
and modified the code to drop all gratuitous arp traffic.  Ouch!

Cc: stable@kernel.org
Signed-off-by: default avatarEric W. Biederman <ebiederm@aristanetworks.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 59ed6eec
...@@ -801,11 +801,8 @@ static int arp_process(struct sk_buff *skb) ...@@ -801,11 +801,8 @@ static int arp_process(struct sk_buff *skb)
* cache. * cache.
*/ */
/* /* Special case: IPv4 duplicate address detection packet (RFC2131) */
* Special case: IPv4 duplicate address detection packet (RFC2131) if (sip == 0) {
* and Gratuitous ARP/ARP Announce. (RFC3927, Section 2.4)
*/
if (sip == 0 || tip == sip) {
if (arp->ar_op == htons(ARPOP_REQUEST) && if (arp->ar_op == htons(ARPOP_REQUEST) &&
inet_addr_type(net, tip) == RTN_LOCAL && inet_addr_type(net, tip) == RTN_LOCAL &&
!arp_ignore(in_dev, sip, tip)) !arp_ignore(in_dev, sip, tip))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment