Date: Mon, 9 Apr 2012 10:50:48 +0400 From: Gleb Smirnoff <glebius@FreeBSD.org> To: Qing Li <qingli@FreeBSD.org> Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r233773 - head/usr.sbin/arp Message-ID: <20120409065048.GA9391@FreeBSD.org> In-Reply-To: <CAGnGRdJkbvQw2KpcWQxBrgS%2B21ZgWweOp79xFz_30iSXCXY6WQ@mail.gmail.com> References: <201204021044.q32AiPng094511@svn.freebsd.org> <CAGnGRdJkbvQw2KpcWQxBrgS%2B21ZgWweOp79xFz_30iSXCXY6WQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Qing, On Sun, Apr 08, 2012 at 10:41:11AM -0700, Qing Li wrote: Q> This is not the right way to support RFC3021. Q> Q> The code you removed is used for checking against attempt at adding Q> duplicate entry. Q> Both the message and the code apply in that context. I tried to state Q> clearly and concisely Q> what r201282 was intended in solving and was verified by actual users Q> who ran into the Q> described problems. How does the message apply? On a 10.0/9.0 prior to my commit: #ifconfig em0 em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=4219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC,VLAN_HWTSO> ether f0:de:f1:6c:5b:fa inet x.x.x.111 netmask 0xffffffe0 broadcast x.x.x.127 nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> media: Ethernet autoselect (100baseTX <full-duplex>) status: active # arp -an ? (x.x.x.97) at 00:00:5e:00:01:61 on em0 expires in 1198 seconds [ethernet] ? (x.x.x.101) at 00:e0:81:5a:22:49 on em0 expires in 618 seconds [ethernet] ? (x.x.x.111) at f0:de:f1:6c:5b:fa on em0 permanent [ethernet] ? (x.x.x.116) at 00:26:18:6a:ea:02 on em0 expires in 1128 seconds [ethernet] # # arp -s 81.19.64.96 0:0:0:0:0:0 set: proxy entry exists for non 802 device And how does this apply? Where is the proxy entry mentioned? Where is the non 802 device? Look at the code before r201282 and see that the message was for absolutely unrelated case. And here is behavior of 6.1-RELEASE, that is prior to your new ARP work: # ifconfig fxp0 fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=8<VLAN_MTU> inet x.x.x.134 netmask 0xfffffffc broadcast x.x.x.135 ether 00:20:ed:6e:9c:f9 media: Ethernet autoselect (10baseT/UTP) status: active # arp -s x.x.x.132 0:0:0:0:0:0 set: can only proxy for x.x.x.132 As you see, the error message was an other one. Q> If we actually need to support RFC 3021, then better do it properly. What do you mean here under "properly"? RFC3021 says that network address in a /31 network is a common address. Thus it should be possible to have an ARP entry for it. Anyway this change isn't about RFC3021. A /31 network is just a case when we need to set ARP entry for network address. -- Totus tuus, Glebius.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120409065048.GA9391>