> >>> Update last_ack status for all except station probing frames (i.e > >>> null data). Otherwise the station inactivity duration is cleared > >>> whenever AP is checking presence of idle stations by sending null > >>> data frame for every inactive threshold (ap_max_inactivity). > >> > >> You make it sound like this is a problem, but don't explain why it > >> would be? I don't really see it anyway. > >> > > For steering an idle station from one BSS to another, the steering > > application has to know the actual station idle period. But if the > > idle period is cleared by ap_max_inactivity, the steering application > > cannot steer the station even though the station is not sending or receiving > any data or mgmt. frame. > > > > Though keeping longer idle threshold (ap_max_inactivity) than steering > > application limit may help to identify idle station, it will differ removing the > stations that left BSS. > > > Hi Rajkumar, this will not help in all the cases as some drivers may choose to > implement "inactivity" logic in firmware and firmware will send probing frames > itself if required, resetting inactivity period. > In offload approach, no need to report tx_ack for firmware generated frames. no? > Besides, at this level we do not know who sent NULL frames and for which > purpose, it doesn't look like a good idea to just ignore it. > I had the same doubt. But AFAIK, probe_client netlink command is used by Hostapd only. That’s why I added comment section before the change. > I think that for what it was supposed to be, inactivity_ms works as expected and > it can be used to identify "dead" stations. What you probably need is something > different, called for example "rx_idle_time" > that will keep track of how long STA itself did not send any frames (ignoring > ACKs). > Hmm.. "rx_idle_time" only not enough to determine active state. Because a station can receive uni-direction data traffic. For example, If the station is connected and idle for half an hour but within BSS, then both "inactivity_ms" and "connected_time" should be 30 mins. Isn't it?. -Rajkumar