wpa_supplicant: Default to nl80211 instead of wext

nl80211 has obsoleted WEXT as the preferred kernel interface for
controlling wireless drivers. Update wpa_supplicant driver interface
list order so that nl80211 gets used first if both nl80211 and wext
interfaces are included in the build. In addition, update README to
reflect the fact that WEXT is obsolete.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
Jouni Malinen 2013-04-29 16:55:44 +03:00 committed by Jouni Malinen
parent ee28f088a5
commit b57b560034
3 changed files with 17 additions and 14 deletions

View file

@ -50,12 +50,12 @@ extern struct wpa_driver_ops wpa_driver_none_ops; /* driver_none.c */
struct wpa_driver_ops *wpa_drivers[] = struct wpa_driver_ops *wpa_drivers[] =
{ {
#ifdef CONFIG_DRIVER_WEXT
&wpa_driver_wext_ops,
#endif /* CONFIG_DRIVER_WEXT */
#ifdef CONFIG_DRIVER_NL80211 #ifdef CONFIG_DRIVER_NL80211
&wpa_driver_nl80211_ops, &wpa_driver_nl80211_ops,
#endif /* CONFIG_DRIVER_NL80211 */ #endif /* CONFIG_DRIVER_NL80211 */
#ifdef CONFIG_DRIVER_WEXT
&wpa_driver_wext_ops,
#endif /* CONFIG_DRIVER_WEXT */
#ifdef CONFIG_DRIVER_HOSTAP #ifdef CONFIG_DRIVER_HOSTAP
&wpa_driver_hostap_ops, &wpa_driver_hostap_ops,
#endif /* CONFIG_DRIVER_HOSTAP */ #endif /* CONFIG_DRIVER_HOSTAP */

View file

@ -115,13 +115,15 @@ Current hardware/software requirements:
- NetBSD-current - NetBSD-current
- Microsoft Windows with WinPcap (at least WinXP, may work with other versions) - Microsoft Windows with WinPcap (at least WinXP, may work with other versions)
- drivers: - drivers:
Linux drivers that support WPA/WPA2 configuration with the generic Linux drivers that support cfg80211/nl80211. Even though there are
Linux wireless extensions (WE-18 or newer). Even though there are
number of driver specific interface included in wpa_supplicant, please number of driver specific interface included in wpa_supplicant, please
note that Linux drivers are moving to use generic wireless extensions note that Linux drivers are moving to use generic wireless configuration
and driver_wext (-Dwext on wpa_supplicant command line) should be the interface driver_nl80211 (-Dnl80211 on wpa_supplicant command line)
default option to start with before falling back to driver specific should be the default option to start with before falling back to driver
interface. specific interface.
Linux drivers that support WPA/WPA2 configuration with the generic
Linux wireless extensions (WE-18 or newer). Obsoleted by nl80211.
In theory, any driver that supports Linux wireless extensions can be In theory, any driver that supports Linux wireless extensions can be
used with IEEE 802.1X (i.e., not WPA) when using ap_scan=0 option in used with IEEE 802.1X (i.e., not WPA) when using ap_scan=0 option in
@ -436,6 +438,7 @@ options:
-N = start describing new interface -N = start describing new interface
drivers: drivers:
nl80211 = Linux nl80211/cfg80211
wext = Linux wireless extensions (generic) wext = Linux wireless extensions (generic)
wired = wpa_supplicant wired Ethernet driver wired = wpa_supplicant wired Ethernet driver
roboswitch = wpa_supplicant Broadcom switch driver roboswitch = wpa_supplicant Broadcom switch driver
@ -477,7 +480,7 @@ If the interface is added in a Linux bridge (e.g., br0), the bridge
interface needs to be configured to wpa_supplicant in addition to the interface needs to be configured to wpa_supplicant in addition to the
main interface: main interface:
wpa_supplicant -cw.conf -Dwext -iwlan0 -bbr0 wpa_supplicant -cw.conf -Dnl80211 -iwlan0 -bbr0
Configuration file Configuration file
@ -869,10 +872,10 @@ network (SSID):
# Start wpa_supplicant in the background # Start wpa_supplicant in the background
wpa_supplicant -g/var/run/wpa_supplicant-global -B wpa_supplicant -g/var/run/wpa_supplicant-global -B
# Add a new interface (wlan0, no configuration file, driver=wext, and # Add a new interface (wlan0, no configuration file, driver=nl80211, and
# enable control interface) # enable control interface)
wpa_cli -g/var/run/wpa_supplicant-global interface_add wlan0 \ wpa_cli -g/var/run/wpa_supplicant-global interface_add wlan0 \
"" wext /var/run/wpa_supplicant "" nl80211 /var/run/wpa_supplicant
# Configure a network using the newly added network interface: # Configure a network using the newly added network interface:
wpa_cli -iwlan0 add_network wpa_cli -iwlan0 add_network
@ -933,7 +936,7 @@ Example configuration:
chmod 0750 /var/run/wpa_priv chmod 0750 /var/run/wpa_priv
- start wpa_priv as root (e.g., from system startup scripts) with the - start wpa_priv as root (e.g., from system startup scripts) with the
enabled interfaces configured on the command line: enabled interfaces configured on the command line:
wpa_priv -B -P /var/run/wpa_priv.pid wext:ath0 wpa_priv -B -P /var/run/wpa_priv.pid nl80211:wlan0
- run wpa_supplicant as non-root with a user that is in wpapriv group: - run wpa_supplicant as non-root with a user that is in wpapriv group:
wpa_supplicant -i ath0 -c wpa_supplicant.conf wpa_supplicant -i ath0 -c wpa_supplicant.conf

View file

@ -84,7 +84,7 @@ static void usage(void)
printf("example:\n" printf("example:\n"
" wpa_supplicant -D%s -iwlan0 -c/etc/wpa_supplicant.conf\n", " wpa_supplicant -D%s -iwlan0 -c/etc/wpa_supplicant.conf\n",
wpa_drivers[i] ? wpa_drivers[i]->name : "wext"); wpa_drivers[0] ? wpa_drivers[0]->name : "nl80211");
#endif /* CONFIG_NO_STDOUT_DEBUG */ #endif /* CONFIG_NO_STDOUT_DEBUG */
} }