msh0 and haldaemon.

Javier Cardona javier at cozybit.com
Wed Aug 27 01:11:36 EDT 2008


Dan,

On Tue, Aug 26, 2008 at 8:41 PM, Dan Williams <dcbw at redhat.com> wrote:
> On Tue, 2008-08-26 at 19:45 -0700, Javier Cardona wrote:
>> On Thu, Aug 21, 2008 at 6:39 PM, Dan Williams <dcbw at redhat.com> wrote:
>> > On Thu, 2008-08-21 at 19:22 -0400, Chris Ball wrote:
>> >> Dear libertas-dev people,
>> >>
>> >> We're seeing an OLPC bug with the following characteristics:
>> >>
>> >> When haldaemon and NM start up, they notice and manage eth0 and msh0.
>> >> When the 8388 device goes away (due to purposefully powering it down
>> >> and then up again) haldaemon only notices eth0 returning, and so NM
>> >> claims msh0 doesn't exist at that point and won't manage it.
>>
>> In case anyone from libertas-dev started looking into this, this seems
>> to be related to improper udev configuration and not the driver.  For
>> details, see http://dev.laptop.org/ticket/7690#comment:19 .
>
> I noticed this too on current kernels, sometimes you'd get msh0_rename,
> and sometimes ethX and mshX would get mixed up.  This is precisely
> because both the mesh and eth interfaces use the same MAC address and
> the same capabilities, and thus udev doesn't really have any way of
> doing persistent device names correctly here because there's no good way
> to teach it that ethX and mshX aren't the same network interface.

I believe that this is only an issue with mac80211 drivers, where
interfaces can be given any name, but not with libertas.
In libertas it is the driver that creates the interface and the mesh
device is always called msh%.  The kernel will notify udev of the
creation of either a msh% or an eth% interface, and that name can be
used to unambiguously identify each device.
In fact, when I removed the 10-olpc-netif rule,
75-persistent-net-generator.rules generated two different, valid rules
based on the interface name given by the kernel:

# USB device 0x1286:0x2001 (usb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",
ATTR{address}=="00:17:c4:14:68:7a", ATTR{type}=="1", KERNEL=="eth*",
NAME="eth0"

# USB device 0x1286:0x2001 (usb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",
ATTR{address}=="00:17:c4:14:68:7a", ATTR{type}=="1", KERNEL=="msh*",
NAME="msh0"

Are you suggesting that the 10-olpc-netif rule was introduced to deal
with the mac80211 ambiguity for virtual devices with the same MAC?

Thanks!

Javier

-- 
Javier Cardona
cozybit Inc.



More information about the libertas-dev mailing list