cfg80211: implement multi-interface CSA
This extends NL80211_CMD_CHANNEL_SWITCH by adding a new attribute NL80211_ATTR_CH_SWITCH_IFACES. The attribute holds an array of CSA attributes. Each entry holds attributes that were used until now: ifindex, chandef, blocktx, beacon/proberesp. The new attribute is used as a flag in send_wiphy() and a driver may advertise the capability with WIPHY_FLAG_HAS_MULTI_IF_CHSWITCH. Userspace may now submit CSA in the old way or with the new attribute set. If the new attribute is set attributes outside the nested attribute are ignored. This makes it possible for userspace to request a multi-interface channel switch while allowing sanity checks wrt target interface/channel combination. This changes channel_switch() cfg80211 op to pass different set of parameters. The only driver that is affected by this is mac80211. This change should not affect any prior CSA behaviour. Signed-off-by:Michal Kazior <michal.kazior@tieto.com> (cherry picked from commit http://mid.gmane.org/1390226968-18928-4-git-send-email-michal.kazior@tieto.com) Conflicts: include/net/cfg80211.h include/uapi/linux/nl80211.h net/wireless/nl80211.c
Loading
Please sign in to comment