mech_eap.git
11 years agoWPS: Skip rescanning after provisioning if AP was configured
Masashi Honma [Sun, 31 Mar 2013 17:06:42 +0000 (20:06 +0300)]
WPS: Skip rescanning after provisioning if AP was configured

If WPS provisioning step is completed with an AP that is in WPS
configured state, we can skip a second scan after the provisioning step
since the AP is unlikely to change its configuration in such a case.
This can speed up WPS connection a bit by removing an unneeded scan.

Signed-hostap: Masashi Honma <masashi.honma@gmail.com>

11 years agotests: Ignore old scan results in couple more WPS test cases
Jouni Malinen [Sun, 31 Mar 2013 17:01:57 +0000 (20:01 +0300)]
tests: Ignore old scan results in couple more WPS test cases

These have shown failures due to obsolete scan results from previous
test cases being present.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Use a more compact summary of test results
Jouni Malinen [Sun, 31 Mar 2013 15:10:17 +0000 (18:10 +0300)]
tests: Use a more compact summary of test results

Do not print the potentially long list of passed test cases. In case of
failure(s), make sure the failed test list is the last item in the
report.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Fix BSS table flushing and old result ignoring for WPS tests
Jouni Malinen [Sun, 31 Mar 2013 14:55:16 +0000 (17:55 +0300)]
tests: Fix BSS table flushing and old result ignoring for WPS tests

The WPS tests are more prone to fail if scan results from the previous
test cases are allowed to remain in the wpa_supplicant BSS table during
the consecutive test since the test setup uses the same BSSID for the
test APs that change their configuration. Avoid these mostly bogus
issues by enforcing wpa_supplicant to drop and ignore old scan results
during the WPS test cases.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoAdd ignore_old_scan_res configuration parameter
Jouni Malinen [Sun, 31 Mar 2013 14:52:23 +0000 (17:52 +0300)]
Add ignore_old_scan_res configuration parameter

This can be used to configure wpa_supplicant to ignore old scan results
from the driver cache in cases where such results were not updated after
the scan trigger from wpa_supplicant. This can be useful in some cases
where the driver may cache information for a significant time and the AP
configuration is changing. Many such cases are for testing scripts, but
this could potentially be useful for some WPS use cases, too.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoWPS: Clear after_wps on new WPS connection
Jouni Malinen [Sun, 31 Mar 2013 14:17:08 +0000 (17:17 +0300)]
WPS: Clear after_wps on new WPS connection

The after_wps counter could have potentially be left in its old non-zero
value in some WPS sequences which could result in a single-channel scan
being used based on obsolete information. Clear after_wps in
wpas_wps_reassoc() to make sure this does not happen.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoWPS: Use latest updated BSS entry if multiple BSSID matches found
Jouni Malinen [Sun, 31 Mar 2013 14:15:39 +0000 (17:15 +0300)]
WPS: Use latest updated BSS entry if multiple BSSID matches found

If the AP (P2P GO) has changes its channel of SSID recently, the BSS
table may have multiple entries for a BSSID. Select the one which was
most recently updated for WPS/P2P operations in such case to increase
the likelihood of using current information.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Remove obsolete test script
Jouni Malinen [Sun, 31 Mar 2013 13:30:51 +0000 (16:30 +0300)]
tests: Remove obsolete test script

The generic test cases and run-tests.py have removed need of this
separate test script.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Add command line argument -f for specifying a test file
Jouni Malinen [Sun, 31 Mar 2013 13:29:16 +0000 (16:29 +0300)]
tests: Add command line argument -f for specifying a test file

This can be used to run all test cases from a single test file.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Use a single set of scripts for running both P2P and AP tests
Jouni Malinen [Sun, 31 Mar 2013 13:22:28 +0000 (16:22 +0300)]
tests: Use a single set of scripts for running both P2P and AP tests

This removes the unnecessary separation of P2P (no hostapd) and AP
tests. The same scripts can be used to prepare for these tests and to
execute the tests.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Make hostapd test setup more similar to the P2P tests
Jouni Malinen [Sun, 31 Mar 2013 13:19:12 +0000 (16:19 +0300)]
tests: Make hostapd test setup more similar to the P2P tests

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Pass AP devices to test cases
Jouni Malinen [Sun, 31 Mar 2013 13:16:37 +0000 (16:16 +0300)]
tests: Pass AP devices to test cases

This removes hardcoded assumptions about AP interfaces from test_*.py.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Add test cases for WPS operations
Jouni Malinen [Sun, 31 Mar 2013 09:33:49 +0000 (12:33 +0300)]
tests: Add test cases for WPS operations

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoWPS: Add more helpful debug for invalid WPS_REG command parsing
Jouni Malinen [Sun, 31 Mar 2013 09:20:35 +0000 (12:20 +0300)]
WPS: Add more helpful debug for invalid WPS_REG command parsing

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoWPS: Allow hostapd process to control independent WPS interfaces
Jouni Malinen [Sun, 31 Mar 2013 08:48:52 +0000 (11:48 +0300)]
WPS: Allow hostapd process to control independent WPS interfaces

The new wps_independent=1 configuration parameter can be used to remove
interfaces from the shared hostapd process WPS control (i.e., to apply
WPS operations only to a subset of interfaces instead of all).

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoWPS AP: Add support for reconfiguration with in-memory config
Jouni Malinen [Sun, 31 Mar 2013 08:26:29 +0000 (11:26 +0300)]
WPS AP: Add support for reconfiguration with in-memory config

This allows WPS to update AP configuration in the case no hostapd
configuration file is used (i.e., dynamic configuration through the
control interface).

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agonl80211: Use nla_nest_start/end instead of nla_put_nested
Johannes Berg [Sat, 30 Mar 2013 18:37:44 +0000 (20:37 +0200)]
nl80211: Use nla_nest_start/end instead of nla_put_nested

Instead of allocating a new message and then moving that into
the message being built, use nla_nest_start() and put the data
into the message directly.

Signed-hostap: Johannes Berg <johannes.berg@intel.com>

11 years agotests: Fix test_discovery to force full device discovery
Jouni Malinen [Sat, 30 Mar 2013 18:31:22 +0000 (20:31 +0200)]
tests: Fix test_discovery to force full device discovery

P2P_PROV_DISC fails if the peer is not fully discovered and the previous
version of the test cases did not force this (i.e., it could have
started PD just based on having seen a Probe Request frame from the
peer).

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoP2P: Add a test case for discovering a P2P client in a group
Jouni Malinen [Sat, 30 Mar 2013 18:16:30 +0000 (20:16 +0200)]
P2P: Add a test case for discovering a P2P client in a group

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoP2P: Omit P2P Group Info in case of no connected peers
Chaitanya TK [Sat, 30 Mar 2013 18:08:42 +0000 (20:08 +0200)]
P2P: Omit P2P Group Info in case of no connected peers

As per P2P specification v1.2: "The P2P Group Info attribute shall be
omitted if there are zero connected P2P Clients."

Do not add the attribute if there are not connected peers.

Signed-hostap: Chaitanya T K <chaitanya.mgit@gmail.com>

11 years agoAP: Fix infinite loop in WPA state machine when out of random bytes
Michael Braun [Sat, 30 Mar 2013 17:53:22 +0000 (19:53 +0200)]
AP: Fix infinite loop in WPA state machine when out of random bytes

When the OS is out of random bytes in SM_STATE(WPA_PTK, AUTHENTICATION2)
in ap/wpa_auth.c, hostapd sends the sm to state DISCONNECT without
clearing ReAuthenticationRequest, resulting in an infinite loop.
Clearing sm->ReAuthenticationRequest using gdb fixes the running hostapd
instance for me. Also sm->Disconnect = TRUE should be used instead of
wpa_sta_disconnect() to make sure that the incomplete ANonce does not
get used.

Fix this issue by resetting sm->ReAuthenticationRequest even if the STA
gets disconnected and use sm->Disconnect instead of
wpa_sta_disconnect().

Signed-hostap: Michael Braun <michael-dev@fami-braun.de>

11 years agoFix OLBC non-HT AP detection to check channel
Jouni Malinen [Sat, 30 Mar 2013 16:05:18 +0000 (18:05 +0200)]
Fix OLBC non-HT AP detection to check channel

A non-HT capable AP on any channel could have triggered us to enable
protection regardless of own operating channel if the driver delivered
Beacon frames from other channels. The channel detection in ap_list is
not exactly ideal, but most cases can be handled by checking ap->channel
against the currently configured channel (or secondary channel in case
of HT40).

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoap_list: Remove unused functions
Jouni Malinen [Sat, 30 Mar 2013 15:06:50 +0000 (17:06 +0200)]
ap_list: Remove unused functions

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoap_list: Remove unused iteration list pointers
Jouni Malinen [Sat, 30 Mar 2013 15:02:06 +0000 (17:02 +0200)]
ap_list: Remove unused iteration list pointers

This iter_next/iter_prev pointers were not really used for anything, so
get rid of the unnecessary complexity in the AP list maintenance.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoap_list: Remove unused fields
Jouni Malinen [Sat, 30 Mar 2013 14:58:58 +0000 (16:58 +0200)]
ap_list: Remove unused fields

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoP2P: Fix provision discovery response handling in some cases
Jouni Malinen [Sat, 30 Mar 2013 14:10:43 +0000 (16:10 +0200)]
P2P: Fix provision discovery response handling in some cases

Commit 6b56cc2d97fe9efd1feea8d418714b4658b056f1 added a possible call to
p2p_reset_pending_pd() prior to checking config_methods match between
our request and peer response. That reset call could clear
dev->req_config_methods and as such, result in unexpected
P2P-PROV-DISC-FAILURE report here even in cases where the peer accepts
the provision discovery. Fix this by using a local copy of the
req_config_methods variable.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Make test_discovery report PD failures with more detail
Jouni Malinen [Sat, 30 Mar 2013 14:10:04 +0000 (16:10 +0200)]
tests: Make test_discovery report PD failures with more detail

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Add SA Query test with PMF
Jouni Malinen [Sat, 30 Mar 2013 13:31:50 +0000 (15:31 +0200)]
tests: Add SA Query test with PMF

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Add test cases for PMF
Jouni Malinen [Sat, 30 Mar 2013 11:47:22 +0000 (13:47 +0200)]
tests: Add test cases for PMF

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoExtend ROAM command to handle multiple SSIDs per BSS
Jouni Malinen [Sat, 30 Mar 2013 09:49:05 +0000 (11:49 +0200)]
Extend ROAM command to handle multiple SSIDs per BSS

Select the BSS entry based on BSSID,SSID pairs instead of just BSSID to
avoid selecting an unexpected SSID for the ROAM command.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Add roaming test cases
Jouni Malinen [Sat, 30 Mar 2013 09:28:39 +0000 (11:28 +0200)]
tests: Add roaming test cases

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Set umask to avoid unexpected issues with hostapd sockets
Jouni Malinen [Sat, 30 Mar 2013 09:11:55 +0000 (11:11 +0200)]
tests: Set umask to avoid unexpected issues with hostapd sockets

buildbot seems to be running with more limited umask by default and that
prevented the hostapd per-interface socket from being accessed.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Use the ap_ifname variable instead of hardcoding ifname
Jouni Malinen [Sat, 30 Mar 2013 08:31:18 +0000 (10:31 +0200)]
tests: Use the ap_ifname variable instead of hardcoding ifname

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agowlantest: Get rid of compiler warning
Jouni Malinen [Fri, 29 Mar 2013 19:24:10 +0000 (21:24 +0200)]
wlantest: Get rid of compiler warning

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Get rid of the unnecessary add_tests() functions
Jouni Malinen [Fri, 29 Mar 2013 19:03:55 +0000 (21:03 +0200)]
tests: Get rid of the unnecessary add_tests() functions

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Add helper functions for connection to an AP
Jouni Malinen [Fri, 29 Mar 2013 18:41:33 +0000 (20:41 +0200)]
tests: Add helper functions for connection to an AP

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Add helper functions for starting hostapd AP
Jouni Malinen [Fri, 29 Mar 2013 18:33:25 +0000 (20:33 +0200)]
tests: Add helper functions for starting hostapd AP

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Add TDLS test cases for WEP and open network
Jouni Malinen [Fri, 29 Mar 2013 17:15:43 +0000 (19:15 +0200)]
tests: Add TDLS test cases for WEP and open network

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agowlantest: Add wlantest_cli command add_wep
Jouni Malinen [Fri, 29 Mar 2013 17:12:35 +0000 (19:12 +0200)]
wlantest: Add wlantest_cli command add_wep

This can be used to configure a known WEP key for decrypting WEP frames.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Add TDLS test cases with WPA-PSK and WPA+WPA2-PSK
Jouni Malinen [Fri, 29 Mar 2013 16:51:48 +0000 (18:51 +0200)]
tests: Add TDLS test cases with WPA-PSK and WPA+WPA2-PSK

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Configure hostapd dynamically during the tests
Jouni Malinen [Fri, 29 Mar 2013 16:37:03 +0000 (18:37 +0200)]
tests: Configure hostapd dynamically during the tests

This makes it more convenient to change hostapd parameters between the
test cases.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Rename AP testing scripts to be more generic
Jouni Malinen [Fri, 29 Mar 2013 15:19:47 +0000 (17:19 +0200)]
tests: Rename AP testing scripts to be more generic

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agohostapd: Allow ctrl_iface group to be specified on command line
Jouni Malinen [Fri, 29 Mar 2013 15:09:31 +0000 (17:09 +0200)]
hostapd: Allow ctrl_iface group to be specified on command line

The new -G<group> command line argument can now be used to set the group
for the control interfaces to enable cases where hostapd is used without
a configuration file and the controlling program is not running with
root user privileges.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agogitignore additional build files
Jouni Malinen [Fri, 29 Mar 2013 11:15:27 +0000 (13:15 +0200)]
gitignore additional build files

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoTDLS: Support both external and internal setup in disabling link
Sunil Dutt [Thu, 28 Mar 2013 13:05:10 +0000 (15:05 +0200)]
TDLS: Support both external and internal setup in disabling link

Enhance TDLS Setup Request processing to support both external and
internal TDLS setup for the case where concurrent TDLS initialization
results in the TDLS Setup Request from the peer getting accepted.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agoTDLS: Fix TDLS Setup Request processing in existing-peer cases
Jouni Malinen [Thu, 28 Mar 2013 10:38:24 +0000 (12:38 +0200)]
TDLS: Fix TDLS Setup Request processing in existing-peer cases

wpa_tdls_peer_free() ended up getting called after some of the
parameters from the TDLS Setup Request frame were copied into the struct
wpa_tdls_peer information. This could result in continuing with cleared
information in case the new exchange was the one that is used in
concurrent initialization case or if this is to re-negotiated an
existing TDLS link. The driver would not be provided with all the peer
capabilities correctly in such case.

Fix this by moving the existing_peer check to happen before the
information from the TDLS Setup Request frame is copied.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agotests: Add more test cases for TDLS functionality
Jouni Malinen [Wed, 27 Mar 2013 14:40:49 +0000 (16:40 +0200)]
tests: Add more test cases for TDLS functionality

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Use more thorough validation of TDLS frame paths
Jouni Malinen [Wed, 27 Mar 2013 14:05:52 +0000 (16:05 +0200)]
tests: Use more thorough validation of TDLS frame paths

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Add forgotten new files to the repository
Jouni Malinen [Wed, 27 Mar 2013 12:40:10 +0000 (14:40 +0200)]
tests: Add forgotten new files to the repository

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoTDLS: Fix TPK M2 processing in concurrent initiation case
Jouni Malinen [Wed, 27 Mar 2013 12:17:23 +0000 (14:17 +0200)]
TDLS: Fix TPK M2 processing in concurrent initiation case

If we accept the peer TPK M1 after having sent our TPK M1, we need to
reject TPK M2 from the peer to avoid going through two TDLS setup
exchanges.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agotests: Add initial AP tests with hostapd
Jouni Malinen [Wed, 27 Mar 2013 11:57:48 +0000 (13:57 +0200)]
tests: Add initial AP tests with hostapd

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Fix TDLS counter validation
Jouni Malinen [Wed, 27 Mar 2013 11:32:36 +0000 (13:32 +0200)]
tests: Fix TDLS counter validation

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoP2P: Write p2p_ignore_shared_freq to configuration file on updates
Jouni Malinen [Tue, 26 Mar 2013 20:24:41 +0000 (22:24 +0200)]
P2P: Write p2p_ignore_shared_freq to configuration file on updates

Commit b277a2bebc9365ec7db444d51e34aab6d1b48e63 added a new global
configuration parameter, but forgot to update configuration file saving
to store this.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agoP2P: Ignore Tx acknowledgment status for Invitation Response
Vivek Natarajan [Mon, 25 Mar 2013 22:28:56 +0000 (00:28 +0200)]
P2P: Ignore Tx acknowledgment status for Invitation Response

In some cases where the ack for Invitation response is lost,
the device is stuck in invited state but the peer device starts
GO. In line with the implementation of Negotiation Confirm,
assume invitation response was actually received by the peer
even though ack was not reported.

Signed-hostap: Vivek Natarajan <nataraja@qca.qualcomm.com>

11 years agoAdd ap_vendor_elements for wpa_supplicant AP/P2P GO mode
Jouni Malinen [Thu, 21 Mar 2013 13:52:41 +0000 (15:52 +0200)]
Add ap_vendor_elements for wpa_supplicant AP/P2P GO mode

This new parameter allows wpa_supplicant AP mode operations to use
similar design to the vendor_elements parameter in hostapd to add
vendor_elements into Beacon/Probe Response IE parameters.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agoAdd vendor_elements into Beacon/Probe Response IE parameters
Jouni Malinen [Thu, 21 Mar 2013 13:41:27 +0000 (15:41 +0200)]
Add vendor_elements into Beacon/Probe Response IE parameters

Commit b52f084cfaae5a10bf5886cfa159d2df0dfc350a introduced a mechanism
for adding arbitrary vendor-specific elements into the Beacon and Probe
Response frames. However, this information was not added to the separate
buffers used for specifying Beacon and Probe Response IEs for drivers
that build the frames internally. Add vendor_elements to these values,
too, to support such drivers in addition to drivers that use the full
Beacon tail/head buffers.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agonl80211: Add debug prints for set_ap parameters
Jouni Malinen [Thu, 21 Mar 2013 13:40:25 +0000 (15:40 +0200)]
nl80211: Add debug prints for set_ap parameters

This makes it easier to see how exactly the driver is configured for AP
mode operations.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agotests: Add concurrent version of P2P test setup
Jouni Malinen [Tue, 19 Mar 2013 08:58:28 +0000 (10:58 +0200)]
tests: Add concurrent version of P2P test setup

A virtual station interface in scanning state can change the P2P
operations quite a bit, so running all the P2P tests also in such
setup can increase testing coverage quite a bit.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agonl80211: Fix mode settings with split wiphy dump
Johannes Berg [Tue, 19 Mar 2013 00:01:46 +0000 (02:01 +0200)]
nl80211: Fix mode settings with split wiphy dump

When the wiphy information is split, there's no guarantee that the
channels are processed before the bitrates; in fact, with the current
kernel it happens the other way around. Therefore, the mode information
isn't set up correctly and there's no 11g mode.

Fix this by doing the 11b/11g determination as part of the
postprocessing.

Signed-hostap: Johannes Berg <johannes.berg@intel.com>

11 years agowpaspy: Add native Python implementation of ctrl_iface access
Jouni Malinen [Mon, 18 Mar 2013 23:53:09 +0000 (01:53 +0200)]
wpaspy: Add native Python implementation of ctrl_iface access

This can be used as a replacement for the wpaspy.c module that uses
wpa_ctrl.c to access wpa_supplicant/hostapd control interface. Only
the UNIX domain socket version of the control interface is currently
supported.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoP2P: Stop P2P_PD_DURING_FIND wait on PD Response RX
Jouni Malinen [Mon, 18 Mar 2013 18:31:47 +0000 (20:31 +0200)]
P2P: Stop P2P_PD_DURING_FIND wait on PD Response RX

Previously, P2P_PD_DURING_FIND state was scheduled for 200 ms and the
P2P state was not change until that timeout regardless of whether the PD
Response for recieved or not. There is no need to wait for that timeout
if the response is received, so allow the next operation to be performed
immediately after the response has been processed.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agotests: Use social channel scan to speed up tests
Jouni Malinen [Mon, 18 Mar 2013 15:36:12 +0000 (17:36 +0200)]
tests: Use social channel scan to speed up tests

The discovery and group formation test cases do not need to run the full
scan as the first step, so get rid of it to make the tests complete more
quickly.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agoP2P: Postpone P2P scan only if station mode scan is pending
Jouni Malinen [Mon, 18 Mar 2013 15:11:15 +0000 (17:11 +0200)]
P2P: Postpone P2P scan only if station mode scan is pending

sta_scan_pending was supposed to be accurate enough for determining
whether a P2P scan needs to be postponed. However, it has turned out
that there were cases where sta_scan_pending was not cleared properly.
While the known cases have now been addressed, it is possible that some
other cases may still exist. To avoid issues with P2P operationg getting
stuck, verify more carefully that there is a real pending station mode
scan (either in progress or scheduled to be requested).

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agoUse special scan result processing steps only on requesting interface
Jouni Malinen [Mon, 18 Mar 2013 15:07:09 +0000 (17:07 +0200)]
Use special scan result processing steps only on requesting interface

Scan result events are shared between all virtual interfaces sharing the
same radio. However, some of the steps are not really appropriate on
virtual interfaces that did not issue the scan request. Fix this by
making these steps conditional on the scan results being processed on
the interface that requested them.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agoP2P: Re-start P2P operation if station mode scanning is stopped
Jouni Malinen [Mon, 18 Mar 2013 15:04:23 +0000 (17:04 +0200)]
P2P: Re-start P2P operation if station mode scanning is stopped

There were couple of code paths that could end up stopping station mode
scanning without clearing sta_scan_pending. This could result in P2P
search getting stuck waiting for completion of station mode scan which
would never show up. Fix this by calling wpas_p2p_continue_after_scan()
in cases where station mode scans are stopped. This allows
sta_scan_pending to be cleared and P2P search operation continued.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agoP2P: Use common function for re-starting P2P scan after station scan
Jouni Malinen [Mon, 18 Mar 2013 14:31:09 +0000 (16:31 +0200)]
P2P: Use common function for re-starting P2P scan after station scan

Make the implementation more consistent and cleaner by using a single
function for addressing all the cases where completion of a station mode
scan operation allows a P2P operation (search) to be re-started.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agonl80211: Include interface name in more debug prints
Jouni Malinen [Mon, 18 Mar 2013 14:05:24 +0000 (16:05 +0200)]
nl80211: Include interface name in more debug prints

This makes it easier to understand how scan operations and events occur
when multiple interfaces is being controlled by a single wpa_supplicant
process.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agoAndroid: Enable WNM in the build
Jouni Malinen [Sun, 17 Mar 2013 18:19:44 +0000 (20:19 +0200)]
Android: Enable WNM in the build

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoAndroid: Use CONFIG_WNM mode consistently
Jouni Malinen [Sun, 17 Mar 2013 18:13:46 +0000 (20:13 +0200)]
Android: Use CONFIG_WNM mode consistently

Replace CONFIG_IEEE80211V with CONFIG_WNM to get more consistent build
options for WNM-Sleep Mode operations. This is similar to the Makefile
change in commit ad3872a3720df13d8fc1a4345a5f0a8c3a204b4e.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoAndroid: Fix CONFIG_WNM use in Android.mk
Jouni Malinen [Sun, 17 Mar 2013 18:10:44 +0000 (20:10 +0200)]
Android: Fix CONFIG_WNM use in Android.mk

This code was within ifdef CONFIG_AP and did not get included unless
AP mode support was also enabled. This is similar to the Makefile
change in commit 2dfb9a447c7b71e03d4f4a318b4f8d67244d57d1.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoAndroid: Update Android.mk based on Makefile changes
Jouni Malinen [Sun, 17 Mar 2013 18:08:23 +0000 (20:08 +0200)]
Android: Update Android.mk based on Makefile changes

This brings the Android makefiles a bit closer to the Makefile changes
that had been missed in the past.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Give document string for each test case as a description
Jouni Malinen [Sun, 17 Mar 2013 09:19:24 +0000 (11:19 +0200)]
tests: Give document string for each test case as a description

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Group formation with PBC
Jouni Malinen [Sun, 17 Mar 2013 09:10:59 +0000 (11:10 +0200)]
tests: Group formation with PBC

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Add P2P device discovery and provision discovery test case
Jouni Malinen [Sun, 17 Mar 2013 08:58:48 +0000 (10:58 +0200)]
tests: Add P2P device discovery and provision discovery test case

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoConvert WPS NFC python scripts from using wpactrl to wpaspy
Jouni Malinen [Sat, 16 Mar 2013 19:47:10 +0000 (21:47 +0200)]
Convert WPS NFC python scripts from using wpactrl to wpaspy

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agowpaspy: Fix exception handling in the test script
Jouni Malinen [Sat, 16 Mar 2013 19:46:51 +0000 (21:46 +0200)]
wpaspy: Fix exception handling in the test script

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agowpa_supplicant: Fix lookup of cached PMKSA
Partha Narasimhan [Sat, 16 Mar 2013 10:45:31 +0000 (12:45 +0200)]
wpa_supplicant: Fix lookup of cached PMKSA

This fixes the lookup of a usable PMKSA entry in the cache. Using
wpa_s->current_ssid often returns nothing when a usable PMKSA exists in
the cache since wpa_s->current_ssid does not necessarily point to the
correct network entry at this point in time (prior to association).

Signed-hostap: Partha Narasimhan <parthan@gmail.com>

11 years agoAdd capability flag for IBSS and add get_capability modes
Bruno Randolf [Sat, 16 Mar 2013 10:42:15 +0000 (12:42 +0200)]
Add capability flag for IBSS and add get_capability modes

Add a driver capability flag for drivers which support IBSS mode and set
it for nl80211 drivers which have set the NL80211_IFTYPE_ADHOC.

Add a new option "modes" to "get_capability" which will return "AP" and
"IBSS" if the corresponding capability flags are set.

The idea is that this can be used for UIs to find out if the driver
supports IBSS mode.

Signed-hostap: Bruno Randolf <br1@einfach.org>

11 years agohostapd: Fix client reassociation after disconnect due to ACK failure
Felix Fietkau [Sat, 16 Mar 2013 10:35:49 +0000 (12:35 +0200)]
hostapd: Fix client reassociation after disconnect due to ACK failure

Clear WLAN_STA_ASSOC_REQ_OK, otherwise no Class 3 frame will be sent to
the disconnected STA in response to data frames.

Signed-hostap: Felix Fietkau <nbd@openwrt.org>

11 years agoFix build with CONFIG_NO_CONFIG_BLOBS
Jouni Malinen [Sat, 16 Mar 2013 10:20:21 +0000 (12:20 +0200)]
Fix build with CONFIG_NO_CONFIG_BLOBS

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoFix build without CONFIG_CTRL_IFACE or CONFIG_NO_STDOUT_DEBUG
Solomon Peachy [Sat, 16 Mar 2013 10:07:18 +0000 (12:07 +0200)]
Fix build without CONFIG_CTRL_IFACE or CONFIG_NO_STDOUT_DEBUG

Signed-off-by: Solomon Peachy <pizza@shaftnet.org>
11 years agolibtommath: Avoid a compiler warning on unused variable
Jouni Malinen [Sat, 16 Mar 2013 10:03:37 +0000 (12:03 +0200)]
libtommath: Avoid a compiler warning on unused variable

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agolibtommath: Condition fast_s_mp_mul_digs() on LTM_FAST
Solomon Peachy [Sat, 16 Mar 2013 10:01:03 +0000 (12:01 +0200)]
libtommath: Condition fast_s_mp_mul_digs() on LTM_FAST

This function uses ~1.7kB of stack, and since there's a slower
alternative, wrap it with LTM_FAST.

Signed-off-by: Solomon Peachy <pizza@shaftnet.org>
11 years agotests: Use social-only scan by default to speed up tests
Jouni Malinen [Sat, 16 Mar 2013 09:47:01 +0000 (11:47 +0200)]
tests: Use social-only scan by default to speed up tests

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Add GO Negotiation without pre-authorization
Jouni Malinen [Sat, 16 Mar 2013 09:36:59 +0000 (11:36 +0200)]
tests: Add GO Negotiation without pre-authorization

This is the most common sequence for initiating GO Negotiation, so
include a test case that uses threads to follow both peers at the
same time to allow GO Negotiation to be re-initiated.

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agotests: Fix wait duration
Jouni Malinen [Sat, 16 Mar 2013 09:21:22 +0000 (11:21 +0200)]
tests: Fix wait duration

Signed-hostap: Jouni Malinen <j@w1.fi>

11 years agoP2P: Remove persistent group peer if it rejects invitation
Jouni Malinen [Fri, 15 Mar 2013 14:31:31 +0000 (16:31 +0200)]
P2P: Remove persistent group peer if it rejects invitation

If a peer replies to persistent group invitation with status code 8
(unknown group), remove the peer from the p2p_client_list if we are the
GO or remove the persistent group if we are the P2P client since it
looks like that the peer has dropped persistent group credentials and
the provisioning step needs to be executed again.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agoP2P: Allow shared interface channel preference to be ignored
Jouni Malinen [Thu, 14 Mar 2013 14:32:35 +0000 (16:32 +0200)]
P2P: Allow shared interface channel preference to be ignored

p2p_ignore_shared_freq=1 in the configuration file (or "SET
p2p_ignore_shared_freq 1" on control interface) can now be used to
configure wpa_supplicant to ignore the preference on shared operating
channel when the driver support multi-channel concurrency. The default
behavior is to try to start any new P2P group on an operating channel
that is already in use on another virtual interface to avoid extra cost
from hopping between multiple channels. If this new parameter is set to
1, such preference is not used and instead, the channel for the new P2P
group is selected based on other preferences while ignoring operating
channels of any concurrent connection.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agoP2P: Fix shared frequency preference for concurrent operations
Jouni Malinen [Thu, 14 Mar 2013 14:22:31 +0000 (16:22 +0200)]
P2P: Fix shared frequency preference for concurrent operations

Commit 50285f5ca8086cca45afa42cd23c3a3c1cd58f40 changed number of rules
in channel selection and among other things, it broke the design where
the currently used operating channel on a virtual interface that is
shared by the same radio is preferred to avoid costs related to
multi-channel concurrency. Fix this regression by making the P2P module
aware of the shared channel and using that preference as the highest
priority when re-selecting the channel during negotiation.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agoP2P: Use best-overall channel in p2p_reselect_channel()
Jouni Malinen [Thu, 14 Mar 2013 14:05:47 +0000 (16:05 +0200)]
P2P: Use best-overall channel in p2p_reselect_channel()

Commit 50285f5ca8086cca45afa42cd23c3a3c1cd58f40 ended up forcing channel
re-selection in number of cases where the peer would actually have
accepted our initial preference. Fix the parts related to best channel
information by using best_freq_overall as the highest priority and by
skipping the band changes if the peer supports the channel that we
picked since these were based on the assumption that
p2p_reselect_channel() is called only if the peer could not accept our
initial choice which is not the case anymore.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agoP2P: Allow all channels for multi-channel concurrency (no negotiation)
Jouni Malinen [Thu, 14 Mar 2013 13:38:11 +0000 (15:38 +0200)]
P2P: Allow all channels for multi-channel concurrency (no negotiation)

Commit 79879f4ae8f3eacee52699e3ccd5e0baba601c4d enabled all channels to
be used when negotiating channel with a driver that supports
multi-channel concurrency. Extend that to cover cases where the channel
is not being negotiated (e.g., p2p_group_add to start a GO).

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agoTDLS: Disable link to existing peer with lower address
Sunil Dutt [Thu, 14 Mar 2013 11:48:36 +0000 (13:48 +0200)]
TDLS: Disable link to existing peer with lower address

If the previously started setup is terminated in case both peers
initiate TDLS link at more or less the same time, disable the old link
to allow the dummy station entry to be deleted from cfg80211 so that a
new entry can be added for the setup direction that will be allowed to
proceed.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agoFix compiler warning when CONFIG_IEEE80211R is not included
Jouni Malinen [Wed, 13 Mar 2013 10:38:26 +0000 (12:38 +0200)]
Fix compiler warning when CONFIG_IEEE80211R is not included

Commit 6a1ce39599c857e6e612d8dd81e892ec5ca36c7c moved the bssid
variable declaration to be outside CONFIG_IEEE80211R block and
triggered a compiler warning about unused variable.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agoWPS NFC: Fix build without CONFIG_WPS_ER
Jouni Malinen [Tue, 12 Mar 2013 22:01:32 +0000 (00:01 +0200)]
WPS NFC: Fix build without CONFIG_WPS_ER

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agoAndroid: Enable IEEE 802.11r in wpa_supplicant builds
Deepthi Gowri [Tue, 12 Mar 2013 18:09:41 +0000 (20:09 +0200)]
Android: Enable IEEE 802.11r in wpa_supplicant builds

Signed-off-by: Deepthi Gowri <deepthi@codeaurora.org>
11 years agoFT: Add support for IEEE 802.11r with driver-based SME
Deepthi Gowri [Tue, 12 Mar 2013 18:08:53 +0000 (20:08 +0200)]
FT: Add support for IEEE 802.11r with driver-based SME

Add NL80211_CMD_UPDATE_FT_IES to support update of FT IEs to the
WLAN driver. Add NL80211_CMD_FT_EVENT to send FT event from the
WLAN driver. This will carry the target AP's MAC address along
with the relevant Information Elements. This event is used to
report received FT IEs (MDIE, FTIE, RSN IE, TIE, RICIE).

Signed-off-by: Deepthi Gowri <deepthi@codeaurora.org>
11 years agoP2P: Add a peer entry based on Association Request frame
Jouni Malinen [Tue, 12 Mar 2013 11:04:33 +0000 (13:04 +0200)]
P2P: Add a peer entry based on Association Request frame

It is possible for a P2P client to connect to an operating group without
exchanging any Probe Request/Response frames that would allow the GO to
discover the peer. To make sure there is a P2P peer entry at the GO, try
to add the peer information based on P2P IE in (Re)Association Request
frame.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agoP2P: Clear p2p_in_provisioning flag on group removal
Vivek Natarajan [Mon, 11 Mar 2013 18:47:24 +0000 (20:47 +0200)]
P2P: Clear p2p_in_provisioning flag on group removal

Commit 77dfafd07d3a0335e250b8ffaf74fe7b3714b0bc cancels group formation
timeout on group removal case but failed to reset the
p2p_in_provisioning flag. This can lead to repeated p2p_find failures if
the group gets removed before completion of the WPS provisioning step
(e.g., GO tears down the group). Fix this by clearing
p2p_pin_provisioning when cancelling group formation.

Signed-hostap: Vivek Natarajan <nataraja@qca.qualcomm.com>

11 years agoAndroid: Enable IEEE 802.11w support in the build
Chet Lanctot [Mon, 11 Mar 2013 11:52:13 +0000 (13:52 +0200)]
Android: Enable IEEE 802.11w support in the build

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

11 years agoAllow SME SA Query to be used by all drivers
Chet Lanctot [Mon, 11 Mar 2013 11:49:40 +0000 (13:49 +0200)]
Allow SME SA Query to be used by all drivers

The unprotected disconnection events were previously processed only for
drivers that used the wpa_supplicant SME implementation (separate
authentication and association commands). However, this can be useful
for drivers that use the connect API, so remove the limitation and allow
the same IEEE 802.11w SA Query mechanism to be used even without full
use of the wpa_supplicant SME.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>