arp bug in 2.0.31-pre2 ?

Gerd Knorr (kraxel@cs.tu-berlin.de)
Sun, 20 Jul 1997 16:46:35 +0200 (MET DST)


Hi !

While playing with the Sun SLC I got yesterday, I noticed that my
hand-created arp entries disapear. I created one entry with...

goldbach root ~# arp -s 130.149.149.163 08:00:20:00:01:02

... and the cache now looks like this:

goldbach root ~# arp -a
Address HWtype HWaddress Flags Mask Iface
eibau.isdn.cs.tu-berlin ether 08:00:20:00:01:02 CM * eth0

Now booting sparclinux on the sun (via net), and after that the arp cache
looks like this:

goldbach root ~# arp -a
Address HWtype HWaddress Flags Mask Iface
bogomips.isdn.cs.tu-ber ether 00:00:C0:DF:EC:15 C * eth0
eibau.isdn.cs.tu-berlin ether 08:00:20:00:01:02 C * eth0

The 'M'-Flag went away, and if I wait few minutes, the entry expires. Is
it supported to work that way? According to the manpage the entry
should'nt disapear...

The Sun gets boots this way: the PROM looks via rarp for the boot server
and loads the linux kernel. Linux does a bootp query to find the
(currently tiny) NFS-Root filesystem. Network traffic while
booting (without tftp/nfs) looks like this:

goldbach root ~# tcpdump -i eth0 port bootps or port bootpc or arp or rarp
tcpdump: listening on eth0
15:58:06.314257 rarp who-is 8:0:20:0:1:2 tell 8:0:20:0:1:2
15:58:06.314257 rarp reply 8:0:20:0:1:2 at eibau
15:58:14.404257 arp who-has goldbach tell bogomips
15:58:14.404257 arp reply goldbach is-at 0:0:c0:ab:e1:15
15:59:28.464257 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0x7f1cb8e4 [|bootp]
15:59:28.644257 goldbach.bootps > eibau.bootpc: xid:0x7f1cb8e4 Y:eibau S:goldbach [|bootp]
15:59:28.744257 arp who-has goldbach tell eibau
15:59:28.744257 arp reply goldbach is-at 0:0:c0:ab:e1:15

It seems the 'M'-Flag gets killed while the sparclinux kernel touches the
network for the first time, so I guess either the bootp broadcast or the
arp query has this side effect.

Gerd