Skip site navigation (1)Skip section navigation (2)
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>