Subject: Re: [PATCH] mt76: Enable NL80211_EXT_FEATURE_CQM_RSSI_LIST

From: Arend van Spriel <arend.vanspriel-dY08KVG/lbpWk0Htik3J/[email-masked]>
Date: Mon, 13 Aug 2018 14:39:43 +0200

On 8/13/2018 12:55 PM, Lorenzo Bianconi wrote:
>> On 8/12/2018 8:14 PM, Kalle Valo wrote:
>>> Kristian Evensen <[email-masked]> writes:
>>>
>>>> Enable the use of CQM with mt76-devices.
>>>>
>>>> Signed-off-by: Kristian Evensen <[email-masked]>
>>>> ---
>>>>    drivers/net/wireless/mediatek/mt76/mac80211.c | 2 ++
>>>>    1 file changed, 2 insertions(+)
>>>>
>>>> diff --git a/drivers/net/wireless/mediatek/mt76/mac80211.c b/drivers/net/wireless/mediatek/mt76/mac80211.c
>>>> index 029d54bc..3eb328ff 100644
>>>> --- a/drivers/net/wireless/mediatek/mt76/mac80211.c
>>>> +++ b/drivers/net/wireless/mediatek/mt76/mac80211.c
>>>> @@ -305,6 +305,8 @@ int mt76_register_device(struct mt76_dev *dev, bool vht,
>>>>
>>>>       wiphy->features |= NL80211_FEATURE_ACTIVE_MONITOR;
>>>>
>>>> +    wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);
>>>
>>> So have you tested this and with what devices? For example, does it work
>>> with recently added USB devices?
>>
>> I was looking into this as it looks suspicious to me. From reading the
>> description of this ext_feature flag it seems this is an extention of CQM:
>>
>> """
>>    * @NL80211_EXT_FEATURE_CQM_RSSI_LIST: With this driver the
>>    *     %NL80211_ATTR_CQM_RSSI_THOLD attribute accepts a list of zero or more
>>    *     RSSI threshold values to monitor rather than exactly one threshold.
>> """
>>
>> Also looking at mt76x2_bss_info_changed() it does not handle
>> BSS_CHANGED_CQM so I doubt it has support for it (yet). The driver does
>> not use IEEE80211_VIF_SUPPORTS_CQM_RSSI which is a requirement for it.
>>
>> Regards,
>> Arend
>>
>
> According to my understanding (please correct me if I am wrong)
> BSS_CHANGED_CQM is only needed if CQM_RSSI is handled
> by the driver/fw, while if it is not set mac80211 will take care of that
> in ieee80211_handle_beacon_sig routine.

Yeah. That explains it. Seems like mac80211 could actually set the 
NL80211_EXT_FEATURE_CQM_RSSI_LIST flag is the driver does not set 
IEEE80211_VIF_SUPPORTS_CQM_RSSI. That way all mac80211 drivers support 
the list. Just a problem as the ext_feature is not a per-vif flag.

Regards,
Arend