[lkml]   [2000]   [Sep]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Linux 2.2 - BSD/OS 4.1 ARP incompatibility

On Sat, Sep 02, 2000 at 01:05:02PM +0200, Andi Kleen wrote:
> On Sat, Sep 02, 2000 at 12:28:00PM +1100, David Luyer wrote:
> > Now when the Linux box a.b.c.1 (with secondary address d.e.f.1) wants to
> > talk to the BSD/OS system d.e.f.2 it does
> >
> > a.b.c.1 arp who-has d.e.f.2
> Strictly it is your routing which is wrong, because you're giving different
> routing information to BSDI and Linux.
> To work around it you can set an explicit source address on the outgoing
> routes using ip route replace d.e.f/24 src a.b.c.NUM dev DEV

Andi, there may be two reasons of this behavior:
1. skb that triggered ARP request had a.b.c.1 source, either because
a) the socket had been bound to that address, or
b) preferred source in the routing table is wrong;
2. the request source address was selected basing on interface address list,
and produced a wrong result.
I would say that 1b case is the least likely for me.
If the reason of this behavior is 1a or 2, it's a kernel bug in my opinion.

David, could you try to replace the first `if' statement in arp_solicit() by
saddr = inet_select_addr(dev, target, RT_SCOPE_LINK);

It doesn't harm in any case, and will allow to distinguish cases #1 and #2.

Best regards
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 12:38    [W:0.050 / U:4.564 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site