Hi everyone, I think I finally located the problem!

There is a race condition between hostapd and netifd.

In hostapd, src/drivers/driver_nl80211.c, look at the function i802_set_wds_sta. There are calls to

1) nl80211_create_iface and
2) linux_br_add_if.

Now call 1) seems to trigger netifd into calling

3) bridge_hotplug_add from bridge.c in netifd.

Now the problem is whether 2) or 3) is called first.

If 2) is called first, it succeeds, and hostapd continues with WDS mode as required -> GOOD CASE, connection works.

If 3) is called first, then 2) fails which leads i802_set_wds_sta to return immediately without doing what it should do -> BAD CASE, connection does not work.

-----
D.H.

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to