arp called for own IP address and 2.0.30

Philip Gladstone (philip@raptor.com)
Wed, 18 Jun 1997 14:30:35 -0400


If you have multiple interfaces on a system (say two ethernets)
and you ifconfig one up with an address, and just ifconfig the
other one as up (with no address), then arp stops working
with the message "arp called for own IP address". Further any
packets sent to destinations not in the arp cache have the
source and destination ethernet addresses the same in the
packet on the wire.

This turns out to be due to a test in ip_chk_addr where
the presence of any device which is up with a zero address
will cause all addresses to be recognized as local.

> /*
> * If the protocol address of the device is 0 this is special
> * and means we are address hunting (eg bootp).
> */
>
> if (dev->pa_addr == 0)
> return IS_MYADDR;

The overall effect seems wrong, but I am not sure how to
fix it. Can the author of the comment above explain how it
is supposed to work?

Philip

-- 
Philip Gladstone                           +1 617 487 7700
Raptor Systems, Waltham, MA         http://www.raptor.com/