tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Is 00:00:00:00:00:00 special?



>> Is the all-zero MAC address special?  [...]

[Lloyd Parkes]

> I can't see why an all 0 MAC would be invalid.  The OUI 00-00-00 is
> valid and owned by Xerox.

> Maybe something in the EUI64 generation code looks at the all zero
> MAC and takes that as an in in-band error value?

That was my first guess, but I think not in this case.

> I think maybe this line 
> https://nxr.netbsd.org/xref/src/sys/netinet6/in6_ifattach.c#228

Good catch, but nothing like that code is present in the kernel I
booted when I saw this.

I've since looked at the code and it looks inconsistent: it looks as
though the interface doesn't have any link-layer addresses, which
strikes me as impossible, especially in view of it working for v4.  I
really should dig into it a bit more to figure out what's going on; I
keep tripping over little-used code paths due to hardware oddities.
(The previous one was a disk that reported itself as having a sector
size of zero, which provoked a panic in one of my test boots.  Not
exactly a code path that gets heavy use.)

[Greg Troxel]

> While I think you are reasonably likely technically correct, it also
> seems obvious that when encountering an all-0 mac, the odds that the
> encounter is due to an error are much higher than it being correct.

Agreed.  Once I got a work machine to show that URL me, I see a comment
above it which seems to be saying, more or less, that that's why that
test is there.

[Michael Richardson, quoting Lloyd Parkes]

>> I think maybe this line
>> https://nxr.netbsd.org/xref/src/sys/netinet6/in6_ifattach.c#228
> That seems like the culprit.

Yes, except (as I remarked above) it's not actually present in the
kernel in question.

> I was thinking that when generating some v6-LL that it wound up
> creating something that was multicast, and thus it wound up hearing
> [its] own DAD.

Maybe, except it's actually EUI64 generation that's failing, not
setting addresses (whether based on the EUI64 or not).

I don't expect people to remember details of old code; that's why I
tried to keep my initial report generic and asking only whether the
all-0 MAC were special, to which the answer seems to be "no, de jure,
but yes, pragmatically".

I should experiment more.  The condition seems to be fairly easily
reproducible, which should make experiments easy.

/~\ The ASCII				  Mouse
\ / Ribbon Campaign
 X  Against HTML		mouse%rodents-montreal.org@localhost
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B


Home | Main Index | Thread Index | Old Index