On 2018-06-29 15:06, Johannes Berg wrote:
On Wed, 2018-06-13 at 16:15 +0530, Tamizh chelvam wrote:+ if (sta->rssi_thold && bss_conf->enable_beacon) { + int last_event = sta->last_sta_mon_event_signal; + int thold = sta->rssi_thold; + int hyst = sta->rssi_hyst; + int sig = -ewma_signal_read(&sta->rx_stats_avg.signal); + + if (sig < thold && + (last_event == 0 || sig < last_event - hyst)) { + sta->last_sta_mon_event_signal = sig; + cfg80211_sta_mon_rssi_notify( + rx->sdata->dev, sta->addr, + NL80211_STA_MON_RSSI_THRESHOLD_EVENT_LOW, + sig, GFP_ATOMIC); + } else if (sig > thold && + (last_event == 0 || sig > last_event + hyst)) { + sta->last_sta_mon_event_signal = sig; + cfg80211_sta_mon_rssi_notify( + rx->sdata->dev, sta->addr, + NL80211_STA_MON_RSSI_THRESHOLD_EVENT_HIGH, + sig, GFP_ATOMIC); + } + }This seems really familiar - perhaps if you unify the cfg80211 API for sta_mon and "normal" CQM (distinguish based on the peer address?) you can unify this block of code too?
Sure I'll check and update it in the next version of the patch.
