Messages in this thread | | | Date | Fri, 24 Jul 1998 14:22:05 -0400 (EDT) | From | Fredrik Sjoholm <> | Subject | new networking code, ipv4/arp.c and net/core/neighbour.c |
| |
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.
cat /proc/net/arp >> IP addr HW typ Flags HW addr Mask Dev 192.168.3.223 0x1 0xc 00:00:00:00:00:00 * eth0 <<
the next problem was in ipv4/arp.c:
in arp_req_set () things look very weird. pneigh_lookup() will be called, and then arp_req_set will return 0;. this does not seem to do the trick. the kernel arp table will get a new entry (in /proc/net/arp) but the HW address is reported as 00:00:00:00:00:00. (perhaps this is ok, since it says that the device is eth0, and the kernel will understand that it should use eth0's MAC address. (i did submit the HWaddr in my ioctl struct), as well as the ATF_PUBL | ATF_PERL | ATF_COM flags.
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) addr_type == 7 (should be 1, 7 means RTN_UNREACHABLE) rt->u.dst.dev != dev (ok) IN_DEV_PROXY_ARP(in_dev) == 0 pneigh_lookup == 0
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)
/fredrik
- 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
| |