ipv4: arp announce, arp_proxy and windows ip conflict verification
authorDenys Fedoryshchenko <denys@visp.net.lb>
Fri, 13 Mar 2009 23:02:07 +0000 (16:02 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 13 Mar 2009 23:02:07 +0000 (16:02 -0700)
commit73ce7b01b4496a5fbf9caf63033c874be692333f
tree0443c33aa40c45f6f1867dba2440369c225f5667
parent1f8ae0a21d83f43006d7f6d2862e921dbf2eeddd
ipv4: arp announce, arp_proxy and windows ip conflict verification

Windows (XP at least) hosts on boot, with configured static ip, performing
address conflict detection, which is defined in RFC3927.
Here is quote of important information:

"
An ARP announcement is identical to the ARP Probe described above,
except    that now the sender and target IP addresses are both set
to the host's newly selected IPv4 address.
"

But it same time this goes wrong with RFC5227.
"
The 'sender IP address' field MUST be set to all zeroes; this is to avoid
polluting ARP caches in other hosts on the same link in the case
where the address turns out to be already in use by another host.
"

When ARP proxy configured, it must not answer to both cases, because
it is address conflict verification in any case. For Windows it is just
causing to detect false "ip conflict". Already there is code for RFC5227, so
just trivially we just check also if source ip == target ip.

Signed-off-by: Denys Fedoryshchenko <denys@visp.net.lb>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/arp.c