Commit Graph

75 Commits

Author SHA1 Message Date
Jouni Malinen
6d550fbeea nl80211: Fix secondary BSS ifindex
This was broken by a cleanup patch that moved from ifname to ifindex.
2009-04-17 13:33:30 +03:00
Jouni Malinen
4b9841d34c Move more multi-BSSID processing into drv_callbacks.c
This simplifies driver wrapper operations and removes last direct
struct hostapd_data dereferences from driver_nl80211.c. In addition,
some of the TX callbacks are now fixed for secondary BSSes.
2009-04-17 13:29:29 +03:00
Jouni Malinen
412036f5f0 Provide own_addr buffer in hapd_init() parameters
This reduces number of places in driver wrapper that would need to
dereference struct hostapd_data pointer directly.
2009-04-17 11:55:51 +03:00
Jouni Malinen
731723a5bd Add own_addr as a parameter to sta_deauth() and sta_disassoc()
This fixes deauth/disassoc frames in secondary BSSes when using
multi-BSSID. In addition, it reduces need to dereference
struct hostapd_data inside driver wrappers.
2009-04-17 11:37:22 +03:00
Jouni Malinen
7af376e456 nl80211: Fix wpa_supplicant build 2009-04-17 11:23:24 +03:00
Jouni Malinen
41d931ee37 nl80211: Add helper functions for SIOC{G,S}IFHWADDR 2009-04-17 11:22:16 +03:00
Jouni Malinen
b8c4d6df5f Remove dead code related to WDS setup
hostapd does not have any code that would actually call this, so there
is no current need to try to figure out how to set up WDS links with
nl80211.
2009-04-16 19:08:58 +03:00
Jouni Malinen
bbaf083777 nl80211: Share more of init/deinit code 2009-04-16 17:16:41 +03:00
Jouni Malinen
37b7d08204 nl80211: Make it possible to build without WEXT support
NO_WEXT can be defined to disable all remaining WEXT uses from
driver_nl80211.c. This breaks some functionality, so the code is still
in use by default. Anyway, the new #ifdef blocks make it easy to search
for areas that need to be converted to nl80211.
2009-04-16 16:36:03 +03:00
Jouni Malinen
ad1e68e6b5 Clean up HT40 scan and share nl80211 scanning code
Instead of adding a new driver_ops for fetching neighbor BSS data (that
nl80211 driver interface had to scan during initialization), share the
same scan operations that wpa_supplicant is using. This gets rid of
duplicated scan code in driver_nl80211.c (and better yet, removes large
part of old WEXT code).

hostapd interface initialization is now completed in a callback, if
needed, i.e., he_features channel/hw_mode selection can use as much time
as needed. This can also help with radar detection in the future.
2009-04-16 16:22:40 +03:00
Jouni Malinen
9fff9fdcf9 nl80211: Use shared code for netlink initialization 2009-04-14 15:52:05 +03:00
Jouni Malinen
7da3abe711 nl80211: Merge handle_frame() implementations 2009-04-14 15:35:03 +03:00
Jouni Malinen
f019981aee nl82011: Use common code for setting channel 2009-04-14 15:15:33 +03:00
Jouni Malinen
c720f2cd56 nl80211: Remove inclusion of unneeded header files 2009-04-14 15:03:07 +03:00
Jouni Malinen
071f8ac4df nl80211: Fix management frame sending after driver_ops cleanup
hostapd ended up with unregistered send_mlme() in commit
9f324b61ba. Fix this by registering the
handler both for wpa_supplicant-AP and hostapd use. [Bug 310]
2009-04-14 13:12:58 +03:00
Jouni Malinen
b4fd6fab5b Share driver beacon configuration handlers 2009-04-09 23:44:39 +03:00
Jouni Malinen
92f475b4d8 Merge hostapd driver init functions into one
Use a parameter structure to pass in information that can be more easily
extended in the future. Include some of the parameters that were
previously read directly from hapd->conf in order to reduce need for
including hostapd/config.h into driver wrappers.
2009-04-09 23:28:21 +03:00
Jouni Malinen
989f52c639 Remove unneeded inclusion of hostapd header files 2009-04-09 20:53:29 +03:00
Jouni Malinen
2135f224db nl80211: Share common interface processing code 2009-04-09 20:41:21 +03:00
Jouni Malinen
072ad14cc4 nl80211: Share monitor mode filtering and reading functions 2009-04-09 20:20:21 +03:00
Jouni Malinen
e785c2ba3b Share same set_country driver op for hostapd and wpa_supplicant 2009-04-09 20:01:25 +03:00
Jouni Malinen
9f324b61ba Share management frame send driver op for hostapd and wpa_supplicant
The same implementation can be shared in most cases, so better share the
same driver_ops handler function.
2009-04-09 19:57:20 +03:00
Jouni Malinen
8342130269 Remove flags parameter from send_mgmt_frame() driver op
This was not documented properly and was not really used nor would it be
suitable to be used in generic way as it was implemented. It is better
to just remove the parameter since there does not seem to be any
reasonable use for it.
2009-04-09 19:42:19 +03:00
Jouni Malinen
5b7b85f669 nl80211: Replace hostapd WEXT events with nl80211 events
This shares the nl80211 event processing with wpa_supplicant and removes
the old WEXT code from driver_nl80211.c.
2009-04-09 17:10:22 +03:00
Jouni Malinen
35583f3fa6 nl80211: Add Michael MIC failure event processing for wpa_supplicant 2009-04-09 16:50:48 +03:00
Jouni Malinen
1ad1cdc241 nl80211: Merge hostapd and wpa_supplicant key configuration
No need to duplicate more or less identical code.
2009-04-09 16:31:11 +03:00
Francesco Gringoli
5a0ffb5f1f nl80211: Fix channel 14 use
nl80211 interface has a trivial bug that prevents it to work correctly
with channel 14. Channel frequency is erroneously 2848 instead of 2484.
To correct it just apply this patch. [Bug 308]
2009-04-09 14:51:31 +03:00
Jouni Malinen
c3965310e6 Use common get_hw_feature_data for hostapd and wpa_supplicant
This merges the driver wrapper implementations to use the same
implementation both for hostapd and wpa_supplicant operations to avoid
code duplication.
2009-04-09 14:11:39 +03:00
Jouni Malinen
c51218372f Merge wpa_supplicant and hostapd driver wrapper implementations
This commit merges the driver_ops structures and implementations from
hostapd/driver*.[ch] into src/drivers. This is only an initial step and
there is room for number of cleanups to share code between the hostapd
and wpa_supplicant parts of the wrappers to avoid unnecessary source
code duplication.
2009-04-09 13:40:12 +03:00
Jouni Malinen
a0b2f99bd7 nl80211: Fix static WEP key configuration when using SME
Need to set WEP keys before requesting authentication in order to get
Shared Key authentication working. Previously, the WEP keys were not set
at all when using SME in wpa_supplicant.
2009-04-04 16:58:16 +03:00
Jouni Malinen
282d55908b wpa_supplicant AP: Add get_hw_feature_data
This is enough to allow open mode association to be completed with
driver_nl80211.c.
2009-04-03 19:11:22 +03:00
Jouni Malinen
2c2010acda Implement management frame TX for wpa_supplicant AP mode 2009-04-03 16:45:09 +03:00
Jouni Malinen
0915d02c3c wpa_supplicant AP: Add management frame RX for nl80211 2009-04-02 21:59:14 +03:00
Jouni Malinen
d2440ba01b Add Beacon configuration for wpa_supplicant AP mode 2009-04-02 16:09:48 +03:00
Jouni Malinen
2e24a366ea nl80211: Add IGTK (AES-128-CMAC) configuration
This was somehow forgotten from IEEE 802.11w/MFP patches from
wpa_supplicant -Dnl80211.
2009-04-01 17:14:07 +03:00
Jouni Malinen
efa4607800 SME: Add processing for rejected associations 2009-04-01 17:10:36 +03:00
Jouni Malinen
d61f48ba1d nl80211: Remove forgotten comment about SIOCSIWMODE 2009-03-31 15:25:10 +03:00
Jouni Malinen
1b2a72e884 nl80211: Remove SIOCGIWRANGE and assume TKIP+CCMP+WPA+WPA2
All currently known drivers that use nl80211/cfg80211 support these, so
no need to use old WEXT ioctl for figuring out capabilities.
2009-03-31 14:25:15 +03:00
Jouni Malinen
d8816397c3 nl80211: Remove WEXT Michael MIC event processing
mac80211 does not use this type of Michael MIC event, so this is not
really used and proper Michael MIC failure processing will be added
using an nl80211 event once that gets added into wireless-testing.git.
2009-03-31 14:14:16 +03:00
Jouni Malinen
e8a029fb6d nl80211: Remove WEXT_COMPAT
It looks like both new nl80211 operations (scan and auth/assoc) end up
being added in Linux 2.6.30, so we do not need to maintain the backwards
compatibility code in wpa_supplicant.
2009-03-31 14:09:30 +03:00
Jouni Malinen
d3a9822542 Add support for specifying subset of enabled frequencies to scan
A new network block parameter, scan_freq, can be used to specify subset
of frequencies to scan. This can speed up scanning process considerably
if it is known that only a small subset of channels is actually used in
the network. A union of configured frequencies for all enabled network
blocks is used in scan requests.

Currently, only driver_nl80211.c has support for this functionality.

For example, following parameter marks 2.4 GHz channels 1, 6, 11 to be
scanned: scan_freq=2412 2437 2462
2009-03-26 21:55:01 +02:00
Jouni Malinen
1581b38b67 Initial step in adding simple AP mode support into wpa_supplicant
This version is adding the configuration option (mode=2) for this and
driver capability reporting to figure out whether AP mode can be used.
However, this does not actually implement any real functionality yet.
2009-03-25 11:38:47 +02:00
Jouni Malinen
a87c9d9609 driver_nl80211: Fix initial iftype change
Need to set drv->ifindex before calling set_mode(). In addition, set the
mode before setting the interface up to avoid having to set it down
again.

Add more useful error message on mode changes.
2009-03-24 20:50:40 +02:00
Jouni Malinen
36b15723ca Deprecate set_drop_unencrypted(), set_auth_alg(), and set_mode()
All these driver handlers can be implemented in associate() handler
which gets all the needed information in the parameters structure. The
old functions that provided only a single parameter will be removed
eventually to clean up the driver_ops structure, so driver wrappers
should start using the newer mechanism.
2009-03-24 20:06:02 +02:00
Jouni Malinen
fd05d64ecf nl80211: Make get_ssid behave like get_bssid with SME
Use a local copy of SSID instead of WEXT when using wpa_supplicant-based
SME.
2009-03-20 23:03:18 +02:00
Jouni Malinen
ed384c2c67 nl80211: Make set_bssid() WEXT_COMPAT 2009-03-20 22:59:17 +02:00
Jouni Malinen
95f02a5ddd nl80211: Make PMKSA caching candidate event WEXT_COMPAT 2009-03-20 22:57:46 +02:00
Jouni Malinen
f555b6dec1 nl80211: Mark PMKSA cache operations with WEXT_COMPAT
These are not needed with wpa_supplicant SME.
2009-03-20 22:55:24 +02:00
Jouni Malinen
af723760ba nl80211: Fix no-WEXT_COMPAT build
wpa_driver_nl80211_set_ssid() and wpa_driver_nl80211_set_freq() are only
for WEXT_COMPAT now that the user space MLME code is removed.
2009-03-20 22:44:53 +02:00
Jouni Malinen
625f587b03 nl80211: Remove user space MLME code
This design did not make it into the kernel and the new user space SME
design has removed the need for keeping the experimental code.
2009-03-20 22:31:24 +02:00