On 2019-01-30 09:29, Stanislaw Gruszka wrote: > On Tue, Jan 29, 2019 at 01:10:08PM +0100, Felix Fietkau wrote: >> On 2019-01-29 13:07, Kalle Valo wrote: >> > Felix Fietkau <nbd@xxxxxxxx> writes: >> > >> >> On 2019-01-29 12:47, Kalle Valo wrote: >> >>> Stanislaw Gruszka <sgruszka@xxxxxxxxxx> writes: >> >>> >> >>>> We can configure beaconing, but without TBTT interrupt we >> >>>> can not support PS buffering. This can be added later using >> >>>> kernel hrtimer, if we can keep it in sycn with device timer. >> >>>> >> >>>> I tested AP and IBSS modes. >> >>> >> >>> So how does this work reliably so that there's no packet loss with >> >>> clients using power save? >> >> >> >> There will be multicast packet loss for clients using power save. >> > >> > Isn't that a problem? At least as a normal user I would very frustrated >> > if sometimes my connection work and sometimes not, for example if I'm >> > trying discover devices from my network. Hopefully nobody won't use USB >> > devices for any real AP stuff, but still enabling something which we >> > know doesn't work realiably is concerning. >> I agree. Maybe we should leave out the flag for AP mode in this patch >> until we have PS buffering and leave the rest of the code intact. > > But how serious problem of dropping multicast frames for PS stations is? > I don't think from user perspective this is "sometimes my connection > work and sometimes not", but something much less annoying. Actually, if you're considering two stations on an AP trying to connect to each other, it is exactly "sometimes my connection work and sometimes not", because of ARP. Clients won't see the ARP requests sent to each other, if the client being asked is in powersave mode. > Another thing is that this (D)TIM PS is not reliable by design, > that why UAPSD was introduced. UAPSD doesn't replace TIM based powersave indication, and I'm pretty sure it doesn't handle multicast either. > Moreover in the tree we have already bunch of drivers that do > advertise AP mode support without HOST_BROADCAST_PS_BUFFERING > like iwlwifi or brcm80211 . I haven't looked at the code, but they may be handling buffered multicast in a different way, possibly with firmware involvement. - Felix