On 08/29/2017 08:44 AM, Sergey Matyukevich wrote:
I am ok with removal of CSA chandef info. It was kept mainly to warn
about channel switch to the frequency that differs from original
CSA request.
- if (vif->vifid != 0) {
- if (!(mac->status & QTNF_MAC_CSA_ACTIVE))
- return -EOPNOTSUPP;
-
- if (!cfg80211_chandef_identical(¶ms->chandef,
- &mac->csa_chandef))
- return -EINVAL;
-
- return 0;
- }
This particular CSA_ACTIVE status check was introduced for compatibility with
hostapd behaviour. Currently hostapd goes through all the virtual interfaces
and sends CSA for each of them. So the idea was to send CSA for primary
interface and confirm success for the others. If this snipped is dropped
then we end up in multiple identical CSA requests queued in firmware.
I suggest to remove chandef_identical check, but to keep the logic for
secondary virtual interface handling.
Regards,
Sergey
The idea was that driver doesn't have to keep track of this, but instead
it will just forward directly to card, and card will return success for
CSA request to the same channel, because card knows that already.
As a bonus, in case it will ever support virtual concurrent (virtual
interfaces on different physical channels), no changes to driver will be
required.