On Mon, Jan 28, 2019 at 10:02:01AM +0100, Stanislaw Gruszka wrote: > On Mon, Jan 28, 2019 at 09:41:45AM +0100, Felix Fietkau wrote: > > >> Moreover I am a little worried about tpt regressions with this patch. > > >> Are you sure that if you use complete different mac addresses on a multivif scenario > > >> you can get the same tpt on all the interfaces? Could you please provide some > > >> tpt results? > > > > > > How exactly posted patch can cause tpt regression ? > > > > > > Posted patch just add possibility to configure HW MAC address > > > by this: > > > > > > iw dev wlan0 del > > > iw phy phy0 interface add wlan0 type managed addr 00:11:22:33:44:55 > > > > > > what is feature of mt76x2u. Patch just extend that possibly to other > > > mt76x02 devices and allow to remove custom mt76x2u add_interfacea > > > callback. > > The main part that could cause issues is that you're changing the way > > that the vif index is calculated. Without the patch, it's calculated > > from the MAC address in a way consistent with what the hardware expects. > > With the patch, it's just allocated from a mask. > > The vif index ends up being passed down to the hardware as a BSS index > > WCID attribute in mt76x02_mac_wcid_setup. > > We would have to run some tests with multiple AP interfaces, bringing up > > secondary interfaces in a different order to see if there are any > > regressions there if the BSS index no longer matches the MAC address > > based index. > > Ok, that objection make sense. I'll check that. I'm not sure if I'm doing something wrong or current code is wrong. But when I configure multi bssid's is hostapd.conf like this: 02:aa:bb:cc:dd:e0 06:aa:bb:cc:dd:e0 0a:aa:bb:cc:dd:e0 hostapd fail with "Too many bits in the BSSID mask" error . To make hostapd work, I have configure bssid's like this: 02:aa:bb:cc:dd:e0 02:aa:bb:cc:dd:e4 02:aa:bb:cc:dd:e8 But this ends up with the same index in mt76 for diffrent vif's. Seems like calculating of the index should be fixed by: if (vif->addr[0] & BIT(1)) idx = 1 + (((dev->mt76.macaddr[5] ^ vif->addr[5]) >> 2) & 7); Regards Stanislaw