[PATCH] tests: add a test for mesh gate forwarding

Bob Copeland me at bobcopeland.com
Sat Mar 5 10:48:46 PST 2016

On Sat, Mar 05, 2016 at 07:45:54PM +0200, Jouni Malinen wrote:
> I tried with the current wireless-testing.git snapshot and with the test
> case multiple test frames:

Great, thanks for the detailed information.  I'll try to reproduce the
crash here.

The non-crashing case sounds like a case of root announcement not being
received by addr2 by the time it tries to send frames; IOW changing the
original time.sleep(1) to something bigger may work.

[I was looking for the part that scheduled the housekeeping timer or
queued root announcement after setting gate mode, and haven't found it
yet -- if it actually has to wait for the housekeeping timer then it
would be up to a minute before the root announcement happens.]

> Could you please share the wpas_mesh_gate_forwarding.hwsim0.pcapng file
> from a test case run that shows the expected behavior?

Sure, find the whole dump here:


Root announcements are at #156 and 173, the proxied frames are 230 and 232.

If it makes a difference, I was testing this one case by itself.  I'll
try a full run shortly.

> The crash case looks like this:
> [    8.770098] JKM:mesh_path_send_to_gates:tbl=ffff88001eb48e00
> [   11.916288] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
> [   11.931385] IPv6: ADDRCONF(NETDEV_UP): wlan1: link is not ready
> [   11.946013] IPv6: ADDRCONF(NETDEV_UP): wlan2: link is not ready
> [   11.970031] JKM:mesh_path_send_to_gates:tbl=          (null)
> [   11.971126] BUG: unable to handle kernel NULL pointer dereference at 0000000000000008

> I.e., the second call to mesh_path_send_to_gates() has
> sdata->u.mesh.mesh_paths NULL. Is that broken somewhere else or should
> this function check for that NULL case to avoid the crash?

So, it seems the test case found a bug at least.  This much is new code. :\

mesh_paths is supposed to be not null for the lifetime of the mesh interface.
So either there's an initialization race here, or something is clobbering
that pointer.  Or mpath->sdata is not valid.  I'll dig into this.

Thanks a lot for testing!

Bob Copeland %% http://bobcopeland.com/

More information about the Hostap mailing list