6b9c86466c
The flags that indicate that a channel is allowed for 80/160 MHz use are divided according to the position of the control channel (e.g., HOSTAPD_CHAN_VHT_10_70, HOSTAPD_CHAN_VHT_30_50, etc.). However, the position of the control channel does not add any extra regulatory information because when trying to use a 80/160 MHz channel all the desired bandwidth has to be allowed for 80/160 MHz use, regardless of the control channel position. In addition, these flags are set only if the driver reports one regulatory rule that allows the entire 80/160 MHz bandwidth. However, even when a 80/160 MHz channel is allowed, in some cases the bandwidth will be split into several regulatory rules because different segments of the bandwidth differ in other flags (that don't affect the use of the bandwidth for VHT channels). So, in such cases these flags will not be set, although VHT channels are allowed. As the result, VHT channels will not be used although they are allowed by the regulatory domain. Fix this by introducing new flags that indicate if a 2 0MHz channel is allowed to be used as a part of a wider (80/160 MHz) channel. The new flags are set for each 20 MHz channel independently and thus will be set even if the regulatory rules for the bandwidth are split. A 80/160 MHz channel is allowed if all its 20 MHz sub-channels are allowed for 80/160 MHz usage. Signed-off-by: Avraham Stern <avraham.stern@intel.com> Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com> |
||
---|---|---|
.. | ||
android_drv.h | ||
driver.h | ||
driver_atheros.c | ||
driver_bsd.c | ||
driver_common.c | ||
driver_hostap.c | ||
driver_hostap.h | ||
driver_macsec_linux.c | ||
driver_macsec_qca.c | ||
driver_ndis.c | ||
driver_ndis.h | ||
driver_ndis_.c | ||
driver_nl80211.c | ||
driver_nl80211.h | ||
driver_nl80211_android.c | ||
driver_nl80211_capa.c | ||
driver_nl80211_event.c | ||
driver_nl80211_monitor.c | ||
driver_nl80211_scan.c | ||
driver_none.c | ||
driver_openbsd.c | ||
driver_privsep.c | ||
driver_roboswitch.c | ||
driver_wext.c | ||
driver_wext.h | ||
driver_wired.c | ||
driver_wired_common.c | ||
driver_wired_common.h | ||
drivers.c | ||
drivers.mak | ||
drivers.mk | ||
linux_defines.h | ||
linux_ioctl.c | ||
linux_ioctl.h | ||
linux_wext.h | ||
Makefile | ||
ndis_events.c | ||
netlink.c | ||
netlink.h | ||
nl80211_copy.h | ||
priv_netlink.h | ||
rfkill.c | ||
rfkill.h |