Date: Fri, 8 Jul 2011 13:38:52 +0200 From: Marko Zec <zec@freebsd.org> To: Andre Oppermann <andre@freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r223862 - in head/sys: net netinet netinet6 Message-ID: <201107081338.52323.zec@freebsd.org> In-Reply-To: <4E16D731.9060008@freebsd.org> References: <201107080938.p689cXTe002136@svn.freebsd.org> <4E16D731.9060008@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Friday 08 July 2011 12:08:49 Andre Oppermann wrote: > On 08.07.2011 11:38, Marko Zec wrote: > > Author: zec > > Date: Fri Jul 8 09:38:33 2011 > > New Revision: 223862 > > URL: http://svn.freebsd.org/changeset/base/223862 > > > > Log: > > Permit ARP to proceed for IPv4 host routes for which the gateway is > > the same as the host address. This already works fine for INET6 and ND6. > > Can you give an example what this does? Is it some sort of proxy ARP? It is a bugfix. Consider this example on a pre-223862 kernel: cp12# ifconfig re0 10.0.0.2/24 cp12# ping -c 1 10.0.0.1 PING 10.0.0.1 (10.0.0.1): 56 data bytes 64 bytes from 10.0.0.1: icmp_seq=0 ttl=64 time=0.335 ms --- 10.0.0.1 ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 0.285/0.285/0.285/0.000 ms So far, so good, but: cp12# arp -da 10.0.0.2 (10.0.0.2) deleted 10.0.0.1 (10.0.0.1) deleted cp12# route add 10.0.0.1 10.0.0.1 add host 10.0.0.1: gateway 10.0.0.1 cp12# netstat -rnf inet Destination Gateway Flags Refs Use Netif Expire 10.0.0.0/24 link#1 U 0 1 re0 10.0.0.1 10.0.0.1 UGHS 0 0 re0 10.0.0.2 link#1 UHS 0 0 lo0 127.0.0.1 link#11 UH 0 5 lo0 cp12# ping 10.0.0.1 PING 10.0.0.1 (10.0.0.1): 56 data bytes ping: sendto: Invalid argument ping: sendto: Invalid argument ^C --- 10.0.0.1 ping statistics --- 2 packets transmitted, 0 packets received, 100.0% packet loss cp12# dmesg | tail -2 arpresolve: can't allocate llinfo for 10.0.0.1 arpresolve: can't allocate llinfo for 10.0.0.1 With 223862 this scenario is no longer a problem: cp12# ifconfig re0 10.0.0.2/24 cp12# route add 10.0.0.1 10.0.0.1 add host 10.0.0.1: gateway 10.0.0.1 cp12# netstat -rnf inet Destination Gateway Flags Refs Use Netif Expire 10.0.0.0/24 link#1 U 0 0 re0 10.0.0.1 10.0.0.1 UGHS 0 0 re0 10.0.0.2 link#1 UHS 0 0 lo0 127.0.0.1 link#11 UH 0 4 lo0 cp12# ping 10.0.0.1 PING 10.0.0.1 (10.0.0.1): 56 data bytes 64 bytes from 10.0.0.1: icmp_seq=0 ttl=64 time=0.578 ms <-- ARP pingpong here 64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.134 ms ^C --- 10.0.0.1 ping statistics --- 2 packets transmitted, 2 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 0.134/0.356/0.578/0.222 ms > > While here, remove two function pointers from struct lltable which are > > only initialized but never used. > > Ideally this would have been a separate commit because it has nothing to > do with primary functional change. You're right, sorry for the noise... Marko
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201107081338.52323.zec>