From b57b560034f1bb1ad3a3892228940dde97323c0e Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Mon, 29 Apr 2013 16:55:44 +0300 Subject: [PATCH] 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 --- src/drivers/drivers.c | 6 +++--- wpa_supplicant/README | 23 +++++++++++++---------- wpa_supplicant/main.c | 2 +- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/drivers/drivers.c b/src/drivers/drivers.c index 1d0ff6e15..04eb4fd1c 100644 --- a/src/drivers/drivers.c +++ b/src/drivers/drivers.c @@ -50,12 +50,12 @@ extern struct wpa_driver_ops wpa_driver_none_ops; /* driver_none.c */ struct wpa_driver_ops *wpa_drivers[] = { -#ifdef CONFIG_DRIVER_WEXT - &wpa_driver_wext_ops, -#endif /* CONFIG_DRIVER_WEXT */ #ifdef CONFIG_DRIVER_NL80211 &wpa_driver_nl80211_ops, #endif /* CONFIG_DRIVER_NL80211 */ +#ifdef CONFIG_DRIVER_WEXT + &wpa_driver_wext_ops, +#endif /* CONFIG_DRIVER_WEXT */ #ifdef CONFIG_DRIVER_HOSTAP &wpa_driver_hostap_ops, #endif /* CONFIG_DRIVER_HOSTAP */ diff --git a/wpa_supplicant/README b/wpa_supplicant/README index d84e61e4b..f43963253 100644 --- a/wpa_supplicant/README +++ b/wpa_supplicant/README @@ -115,13 +115,15 @@ Current hardware/software requirements: - NetBSD-current - Microsoft Windows with WinPcap (at least WinXP, may work with other versions) - drivers: - Linux drivers that support WPA/WPA2 configuration with the generic - Linux wireless extensions (WE-18 or newer). Even though there are + Linux drivers that support cfg80211/nl80211. Even though there are number of driver specific interface included in wpa_supplicant, please - note that Linux drivers are moving to use generic wireless extensions - and driver_wext (-Dwext on wpa_supplicant command line) should be the - default option to start with before falling back to driver specific - interface. + note that Linux drivers are moving to use generic wireless configuration + interface driver_nl80211 (-Dnl80211 on wpa_supplicant command line) + should be the default option to start with before falling back to driver + 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 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 drivers: + nl80211 = Linux nl80211/cfg80211 wext = Linux wireless extensions (generic) wired = wpa_supplicant wired Ethernet 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 main interface: -wpa_supplicant -cw.conf -Dwext -iwlan0 -bbr0 +wpa_supplicant -cw.conf -Dnl80211 -iwlan0 -bbr0 Configuration file @@ -869,10 +872,10 @@ network (SSID): # Start wpa_supplicant in the background 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) 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: wpa_cli -iwlan0 add_network @@ -933,7 +936,7 @@ Example configuration: chmod 0750 /var/run/wpa_priv - start wpa_priv as root (e.g., from system startup scripts) with the 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: wpa_supplicant -i ath0 -c wpa_supplicant.conf diff --git a/wpa_supplicant/main.c b/wpa_supplicant/main.c index 174462045..f45c1b7d1 100644 --- a/wpa_supplicant/main.c +++ b/wpa_supplicant/main.c @@ -84,7 +84,7 @@ static void usage(void) printf("example:\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 */ }