Re: new networking code, ipv4/arp.c and net/core/neighbour.c

Andi Kleen (ak@muc.de)
24 Jul 1998 20:01:59 +0200


Fredrik Sjoholm <fsjoholm@netspeak.com> writes:

> as several people have noted, proxy arp does not work in 2.1.x.
> unfortunently i need both the traffic shaper and proxy arp. (i assumed the
> responsibility for a project that requires this, not knowing the state of
> the networking code.
>
> proxy arping is completely broken.
> arp -s host xx:xx:xx:xx:xx:xx pub generates an error. i wrote a custom arp
> utility to works with the new ioctl's in the kernel.

This is fixed in newer nettools since months.

> in arp_rcv() when a network arp request is made, the kernel doesn't want
> to reply to it. it will get to an if statement:
>
> if ( (rt->rt_flags & RTCF_DNAT) ||
> (addr_type == RTN_UNICAST && rt->u.dst.dev != dev &&
> (IN_DEV_PROXY_ARP(in_dev) || pneigh_lookup (&arp_tbl,
> &tip, dev, 0))))
>
> this condition will fail. because:
>
> rt->rt_flags == 0 (should be 0x08000000)
Shouldn't because it is not a NAT packet.

> addr_type == 7 (should be 1, 7 means RTN_UNREACHABLE)
This means that you don't add a route for the ARP entry. Entirely correct.

> rt->u.dst.dev != dev (ok)
> IN_DEV_PROXY_ARP(in_dev) == 0

You did not enable proxy arp for this device.
Try echo 1 > /proc/sys/net/ipv4/conf/<device>/proxy_arp

The sysctls are documented in Documentation/networking/ip-sysctl.txt

> who knows about this (completely undocumented code), (the code in
> neighbour.c and the modifications to arp.c). i *need* to get this to work.
> is it possible to replace the code with the old arp code, and still use
> the traffic shaper ?. this is all kernel 2.1.110 (and several previous
> versions, no changes have been made)

The traffic shaper is obsolete and replaced by CBQ or TBF.

-Andi

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html