On Mon, 2020-03-02 at 17:44 +0000, Cedric VONCKEN wrote: > I continue my investigation, and I think I found an interesting point. > > My AP have 3 bssid, the wlan0 is set in WPA-EAP, the wlan0_1 is > set in WPA-PSK and the latest wlan0_2 is without security. It is > useful for my test, I only need to change the sta configuration. > > I added some debug in net/mac80211/tx.c > > When I use the BSSID set in WPA-PSK (this case works), the > broadcast frames are sent through the netdev wlan0_1.sta1. > When I use the BSSID set in WPA-EAP (this case doesn't work) the > broadcast frames are sent through the netdev wlan0 (use fast_xmit > path). But the wlan0.sta1 netdev is created in the system, added to > the bridge, and received the frame from the bridge. But in this case > the function ieee80211_lookup_ra_sta return ENOLINK for wlan0.sta1 > and the frame is dropped. > > So I think the issue is in transmit side, I don't why, but with > WPA-EAP the mac80211 state seem different and the WDS doesn't work. > > Do you have any explanation or idea to locate the origin ? Not really. The code there is just switch (sdata->vif.type) { case NL80211_IFTYPE_AP_VLAN: sta = rcu_dereference(sdata->u.vlan.sta); if (sta) { *sta_out = sta; return 0; } else if (sdata->wdev.use_4addr) { return -ENOLINK; } as far as I can tell, right? So if you got into the -ENOLINK case, then it means that userspace didn't add the right station to the 4-addr VLAN interface, which I guess was "wlan0.sta1"? Not sure how that'd happen. johannes