Bill, On Tue, Jun 10, 2008 at 2:25 PM, Bill Mccormick <[EMAIL PROTECTED]> wrote: > Hey guys, > > I've tracked down some of the code that's causing this problem. (the > syslog file is invaluable for debugging nm problems in case you have to > do this again). NM is waiting for a netlink callback, specifically in > nm-device-802-11-mesh-olpc.c on lines 291-307. when NM doesn't get the > expected callback a timer (called the association timer) expires and NM > stops trying to setup the P2P mesh. > > <snip> > if (iwe->cmd == SIOCGIWAP) { > addr = iwe->u.ap_addr.sa_data; > if ( !memcmp (addr, badaddr1, ETH_ALEN) > || !memcmp (addr, badaddr2, ETH_ALEN) > || !memcmp (addr, badaddr3, ETH_ALEN)) { > /* disassociated */ > } else { > /* associated */ > GSource * source = g_idle_source_new (); > if (source) { > nm_info ("%s: Got association; scheduling association handler", > nm_device_get_iface (NM_DEVICE (self))); > g_object_ref (self); > g_source_set_priority (source, > G_PRIORITY_HIGH_IDLE); > g_source_set_callback (source, > handle_association_event, self, NULL); > g_source_attach (source, > nm_device_get_main_context (NM_DEVICE (self))); > g_source_unref (source); > } > } > </snip> > > handle_association_event() cancels the association timer, so if this > SIOCGIWAP message isn't received, or is received with an 'invalid' MAC, > then the timer never gets cancelled and NM gives up on the mesh setup. > > Looking at the wireless.h header file, it looks like SIOCGIWAP is > normally used to get access point MAC addresses. In this guess, I > think the NM is expecting to get the MAC address of msh0. > > Now it gets kinda confusing here. The SIOCGIWAP isn't actually used in > an ioctl() function, rather this is a message delivered via netlink and > SIOCGIWAP is the value of the iw_event.cmd field (see wireless.h again). > > Javier, could you advise what this message is used for on the mesh > interface?
This is the first time I look into this, but inspecting the driver I see that this event is sent: 1. [cmdrsp.c:44] when association is lost (MAC set to all zeros) 2. [join.c:232] when successfully joined an ad-hoc network (MAC set to BSSID) 3. [join.c:789] when successfully associated (MAC set to BSSID) 4. [join.c:874] when starting and ad-hoc netwrok (MAC set to BSSID) 5. [main.c:1202] when removing the interface (MAC set to all 0xaa's) As far as I can tell, there is no SIOCGIWAP event generated by the mesh interface, as the mesh interface is always on. Javier -- Javier Cardona cozybit Inc. _______________________________________________ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel