aboutsummaryrefslogtreecommitdiffstats
path: root/wpa_supplicant
diff options
context:
space:
mode:
authorJouke Witteveen <j.witteveen@gmail.com>2008-11-18 14:30:32 (GMT)
committerJouni Malinen <j@w1.fi>2008-11-18 14:30:32 (GMT)
commite519314ee9c8ebde22fe5ece830f20f690766c57 (patch)
tree7cf92911fd76440e627f001ae9cd18fcce575643 /wpa_supplicant
parentcd35db9fefa8278d780a019742b233efe8a7f0fd (diff)
downloadhostap-e519314ee9c8ebde22fe5ece830f20f690766c57.zip
hostap-e519314ee9c8ebde22fe5ece830f20f690766c57.tar.gz
hostap-e519314ee9c8ebde22fe5ece830f20f690766c57.tar.bz2
Add RoboSwitch driver interface for wpa_supplicant
Find attached the patch that creates a new driver: roboswitch. This driver adds support for wired authentication with a Broadcom RoboSwitch chipset. For example it is now possible to do wired authentication with a Linksys WRT54G router running OpenWRT. LIMITATIONS - At the moment the driver does not support the BCM5365 series (though adding it requires just some register tweaks). - The driver is also limited to Linux (this is a far more technical restriction). - In order to compile against a 2.4 series you need to edit include/linux/mii.h and change all references to "u16" in "__u16". I have submitted a patch upstream that will fix this in a future version of the 2.4 kernel. [These modifications (and more) are now included in the kernel source and can be found in versions 2.4.37-rc2 and up.] USAGE - Usage is similar to the wired driver. Choose the interfacename of the vlan that contains your desired authentication port on the router. This name must be formatted as <interface>.<vlan>, which is the default on all systems I know.
Diffstat (limited to 'wpa_supplicant')
-rw-r--r--wpa_supplicant/ChangeLog2
-rw-r--r--wpa_supplicant/Makefile5
-rw-r--r--wpa_supplicant/README5
-rw-r--r--wpa_supplicant/defconfig3
-rw-r--r--wpa_supplicant/doc/docbook/wpa_supplicant.conf.sgml3
-rw-r--r--wpa_supplicant/doc/docbook/wpa_supplicant.sgml7
-rw-r--r--wpa_supplicant/scan.c6
-rw-r--r--wpa_supplicant/wpa_supplicant.c7
8 files changed, 28 insertions, 10 deletions
diff --git a/wpa_supplicant/ChangeLog b/wpa_supplicant/ChangeLog
index fa53d47..263291e 100644
--- a/wpa_supplicant/ChangeLog
+++ b/wpa_supplicant/ChangeLog
@@ -21,6 +21,8 @@ ChangeLog for wpa_supplicant
* updated userspace MLME instructions to match with the current Linux
mac80211 implementation; please also note that this can only be used
with driver_nl80211.c (the old code from driver_wext.c was removed)
+ * added support (Linux only) for RoboSwitch chipsets (often found in
+ consumer grade routers); driver interface 'roboswitch'
2008-11-01 - v0.6.5
* added support for SHA-256 as X.509 certificate digest when using the
diff --git a/wpa_supplicant/Makefile b/wpa_supplicant/Makefile
index 277894c..a835008 100644
--- a/wpa_supplicant/Makefile
+++ b/wpa_supplicant/Makefile
@@ -235,6 +235,11 @@ OBJS_d += ../src/drivers/MobileApple80211.o
LIBS += -framework CoreFoundation
endif
+ifdef CONFIG_DRIVER_ROBOSWITCH
+CFLAGS += -DCONFIG_DRIVER_ROBOSWITCH
+OBJS_d += ../src/drivers/driver_roboswitch.o
+endif
+
ifndef CONFIG_L2_PACKET
CONFIG_L2_PACKET=linux
endif
diff --git a/wpa_supplicant/README b/wpa_supplicant/README
index fb66366..643a727 100644
--- a/wpa_supplicant/README
+++ b/wpa_supplicant/README
@@ -525,6 +525,7 @@ drivers:
broadcom = Broadcom wl.o driver
ipw = Intel ipw2100/2200 driver (old; use wext with Linux 2.6.13 or newer)
wired = wpa_supplicant wired Ethernet driver
+ roboswitch = wpa_supplicant Broadcom switch driver
bsd = BSD 802.11 support (Atheros, etc.)
ndis = Windows NDIS driver
@@ -694,8 +695,8 @@ network={
}
-6) Authentication for wired Ethernet. This can be used with 'wired' interface
- (-Dwired on command line).
+6) Authentication for wired Ethernet. This can be used with 'wired' or
+ 'roboswitch' interface (-Dwired or -Droboswitch on command line).
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
diff --git a/wpa_supplicant/defconfig b/wpa_supplicant/defconfig
index 1de7678..abf2408 100644
--- a/wpa_supplicant/defconfig
+++ b/wpa_supplicant/defconfig
@@ -106,6 +106,9 @@ CONFIG_DRIVER_WEXT=y
# Driver interface for wired Ethernet drivers
CONFIG_DRIVER_WIRED=y
+# Driver interface for the Broadcom RoboSwitch family
+#CONFIG_DRIVER_ROBOSWITCH=y
+
# Enable IEEE 802.1X Supplicant (automatically included if any EAP method is
# included)
CONFIG_IEEE8021X_EAPOL=y
diff --git a/wpa_supplicant/doc/docbook/wpa_supplicant.conf.sgml b/wpa_supplicant/doc/docbook/wpa_supplicant.conf.sgml
index ebefe11..462039d 100644
--- a/wpa_supplicant/doc/docbook/wpa_supplicant.conf.sgml
+++ b/wpa_supplicant/doc/docbook/wpa_supplicant.conf.sgml
@@ -174,7 +174,8 @@ network={
<listitem>
<para>Authentication for wired Ethernet. This can be used with
- <emphasis>wired</emphasis> interface (-Dwired on command line).</para>
+ <emphasis>wired</emphasis> or <emphasis>roboswitch</emphasis> interface
+ (-Dwired or -Droboswitch on command line).</para>
<blockquote><programlisting>
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
diff --git a/wpa_supplicant/doc/docbook/wpa_supplicant.sgml b/wpa_supplicant/doc/docbook/wpa_supplicant.sgml
index 84f5990..d4a7706 100644
--- a/wpa_supplicant/doc/docbook/wpa_supplicant.sgml
+++ b/wpa_supplicant/doc/docbook/wpa_supplicant.sgml
@@ -310,6 +310,13 @@
</varlistentry>
<varlistentry>
+ <term>roboswitch</term>
+ <listitem>
+ <para>wpa_supplicant Broadcom switch driver</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term>bsd</term>
<listitem>
<para>BSD 802.11 support (Atheros, etc.).</para>
diff --git a/wpa_supplicant/scan.c b/wpa_supplicant/scan.c
index 8767109..3c5bad9 100644
--- a/wpa_supplicant/scan.c
+++ b/wpa_supplicant/scan.c
@@ -70,9 +70,9 @@ static void wpa_supplicant_scan(void *eloop_ctx, void *timeout_ctx)
wpa_s->scan_req = 0;
if (wpa_s->conf->ap_scan != 0 &&
- wpa_s->driver && os_strcmp(wpa_s->driver->name, "wired") == 0) {
- wpa_printf(MSG_DEBUG, "Using wired driver - overriding "
- "ap_scan configuration");
+ wpa_s->driver && IS_WIRED(wpa_s->driver)) {
+ wpa_printf(MSG_DEBUG, "Using wired authentication - "
+ "overriding ap_scan configuration");
wpa_s->conf->ap_scan = 0;
}
diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
index 59024d8..dba3f13 100644
--- a/wpa_supplicant/wpa_supplicant.c
+++ b/wpa_supplicant/wpa_supplicant.c
@@ -212,7 +212,7 @@ void wpa_supplicant_req_auth_timeout(struct wpa_supplicant *wpa_s,
int sec, int usec)
{
if (wpa_s->conf && wpa_s->conf->ap_scan == 0 &&
- wpa_s->driver && os_strcmp(wpa_s->driver->name, "wired") == 0)
+ wpa_s->driver && IS_WIRED(wpa_s->driver))
return;
wpa_msg(wpa_s, MSG_DEBUG, "Setting authentication timeout: %d sec "
@@ -273,8 +273,7 @@ void wpa_supplicant_initiate_eapol(struct wpa_supplicant *wpa_s)
EAPOL_REQUIRE_KEY_BROADCAST;
}
- if (wpa_s->conf && wpa_s->driver &&
- os_strcmp(wpa_s->driver->name, "wired") == 0) {
+ if (wpa_s->conf && wpa_s->driver && IS_WIRED(wpa_s->driver)) {
eapol_conf.required_keys = 0;
}
}
@@ -1388,7 +1387,7 @@ struct wpa_ssid * wpa_supplicant_get_ssid(struct wpa_supplicant *wpa_s)
}
wired = wpa_s->conf->ap_scan == 0 && wpa_s->driver &&
- os_strcmp(wpa_s->driver->name, "wired") == 0;
+ IS_WIRED(wpa_s->driver);
entry = wpa_s->conf->ssid;
while (entry) {