#define WPA_DRIVER_FLAGS_EAPOL_TX_STATUS 0x00010000
/* Driver indicates TX status events for Deauth/Disassoc frames */
#define WPA_DRIVER_FLAGS_DEAUTH_TX_STATUS 0x00020000
+/* Driver supports roaming (BSS selection) in firmware */
+#define WPA_DRIVER_FLAGS_BSS_SELECTION 0x00040000
unsigned int flags;
int max_scan_ssids;
int connect_supported;
int offchan_tx_supported;
int max_remain_on_chan;
+ int firmware_roam;
};
if (tb[NL80211_ATTR_OFFCHANNEL_TX_OK])
info->offchan_tx_supported = 1;
+ if (tb[NL80211_ATTR_ROAM_SUPPORT])
+ info->firmware_roam = 1;
+
if (tb[NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION])
info->max_remain_on_chan =
nla_get_u32(tb[NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION]);
drv->capa.flags |= WPA_DRIVER_FLAGS_OFFCHANNEL_TX;
}
+ if (info.firmware_roam) {
+ wpa_printf(MSG_DEBUG, "nl80211: Using driver-based roaming");
+ drv->capa.flags |= WPA_DRIVER_FLAGS_BSS_SELECTION;
+ }
+
drv->capa.flags |= WPA_DRIVER_FLAGS_SANE_ERROR_CODES;
drv->capa.flags |= WPA_DRIVER_FLAGS_SET_KEYS_AFTER_ASSOC_DONE;
if (info.p2p_supported)