Jouni Malinen [Sat, 2 Nov 2013 13:39:25 +0000 (15:39 +0200)]
tests: Rename stop-wifi.sh to stop.sh
This makes script naming more consistent with start.sh.
Signed-hostap: Jouni Malinen <j@w1.fi>
Jouni Malinen [Sat, 2 Nov 2013 11:53:23 +0000 (13:53 +0200)]
tests: Simplify test_ap_bss_add_remove implementation
Use lists and loops to avoid duplicated operations.
Signed-hostap: Jouni Malinen <j@w1.fi>
Jouni Malinen [Sat, 2 Nov 2013 11:04:06 +0000 (13:04 +0200)]
tests: Use a helper function to rename wpa_supplicant/hostapd logs
Signed-hostap: Jouni Malinen <j@w1.fi>
Jouni Malinen [Sat, 2 Nov 2013 10:51:30 +0000 (12:51 +0200)]
Convert perror/printf calls to wpa_printf
This makes debug and error logging more consistent and allows them to be
directed to a file more easily.
Signed-hostap: Jouni Malinen <j@w1.fi>
Jouni Malinen [Sat, 2 Nov 2013 10:20:59 +0000 (12:20 +0200)]
tests: Always write run-tests.py debug logs a file
Remove the -l command like option from run-tests.py and always enable
writing of debug level logs to files. The stdout debug verbosity is
controlled independently of the debug log files.
Signed-hostap: Jouni Malinen <j@w1.fi>
Jouni Malinen [Sat, 2 Nov 2013 09:53:38 +0000 (11:53 +0200)]
tests: Split hostapd debug log into per test case files
Signed-hostap: Jouni Malinen <j@w1.fi>
Jouni Malinen [Sat, 2 Nov 2013 09:52:35 +0000 (11:52 +0200)]
hostapd: Accept RELOG from global control interface
This makes it easier to recycle log file (-f) when no active interface
is in use.
Signed-hostap: Jouni Malinen <j@w1.fi>
Jouni Malinen [Sat, 2 Nov 2013 09:32:19 +0000 (11:32 +0200)]
hostapd: Use wpa_printf() for hostapd_logger() to stdout
This allows log-to-file (-f command line option) to be used to redirect
these messages to the same file with all the other stdout debug.
Signed-hostap: Jouni Malinen <j@w1.fi>
Jouni Malinen [Sat, 2 Nov 2013 09:27:16 +0000 (11:27 +0200)]
tests: Ignore old scan results in test_grpform_pbc
This is needed to avoid invalid PBC session overlap detection when
the previous test case used active PBC mode and the old BSS entry
in cfg80211 may still be valid when starting the next test case.
Signed-hostap: Jouni Malinen <j@w1.fi>
Jouni Malinen [Sat, 2 Nov 2013 09:22:16 +0000 (11:22 +0200)]
tests: Use single channel scans to speed up test cases
A full scan in these specific test cases does not add anything to the
coverage, so use a single channel scan for the station connection to
remove undesired extra time needed for a full scan.
Signed-hostap: Jouni Malinen <j@w1.fi>
Jouni Malinen [Sat, 2 Nov 2013 08:30:37 +0000 (10:30 +0200)]
tests: Add run-tests.py --shuffle-test
This optional argument can be used to randomize the order in which the
test cases are run. This can provide more coverage on testing
interactions of common use cases in various different sequences. Such
issues have already been found even with the fixed order of test cases,
but being able to reorder the tests makes this more efficient.
Signed-hostap: Jouni Malinen <j@w1.fi>
Johannes Berg [Thu, 31 Oct 2013 15:08:01 +0000 (16:08 +0100)]
hwsim tests: Add build script
This is easier than to copy/paste from the README. We may
want to extend it later to change the .config for some
common differences between systems (e.g., libnl/libbfd).
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Johannes Berg [Thu, 31 Oct 2013 15:05:11 +0000 (16:05 +0100)]
hwsim tests: Prefill database in VM tests
In some cases, e.g., with the VM tests if the VM crashes, it
can be useful to know which tests should have run but didn't
(or didn't finish). In order to catch these more easily, add
an option to prefill the database with all tests at the very
beginning of the testing (in a new NOTRUN state) and use the
option in the VM tests.
Signed-hostap: Johannes Berg <johannes.berg@intel.com>
Johannes Berg [Thu, 31 Oct 2013 14:36:44 +0000 (15:36 +0100)]
hwsim tests: Create results database in VM tests
Create a results.db in the output directory when running
the tests in a VM. To make that easier, create the tables
in the python script if they don't exist.
Signed-hostap: Johannes Berg <johannes.berg@intel.com>
Johannes Berg [Thu, 31 Oct 2013 14:02:50 +0000 (15:02 +0100)]
hwsim tests: Refactor test results reporting
Refactor the test reporting to treat the different results
(success/skip/failure) identically. This makes the timing
seem a bit longer, but cleans up the code which will allow
for adding more checks (e.g., on the captured data files)
later.
Signed-hostap: Johannes Berg <johannes.berg@intel.com>
Johannes Berg [Thu, 31 Oct 2013 13:22:20 +0000 (14:22 +0100)]
hwsim tests: Allow setting KERNEL and KVMARGS
Rather than just having KERNELDIR, allow setting KERNEL directly.
Also remove the -s option that prevents running multiple machines
at the same time, but add a KVMARGS= variable that can be used to
restore that if needed.
Signed-hostap: Johannes Berg <johannes.berg@intel.com>
Jouni Malinen [Fri, 1 Nov 2013 08:31:55 +0000 (10:31 +0200)]
P2P: Clear pending group formation data on group removal
It was possible for the wpa_s->show_group_started and wpa_s->go_params
to be left set when a P2P group was removed before group formation had
completed. In case a separate P2P group interface was not used, this
could rsult in all future scans using the hardcoded DIRECT-* SSID and as
such, not find the network they were trying to find. Fix this by
clearing these P2P parameters on group removal.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Fri, 1 Nov 2013 08:30:50 +0000 (10:30 +0200)]
P2P: Debug print reason for specific SSID for scan
It can be useful to see whether the specific P2P SSID was used for scan
based on p2p_in_provisioning or show_group_started when debugging issues
where this case shows up unexpectedly.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Thu, 31 Oct 2013 15:28:43 +0000 (17:28 +0200)]
tests: Test dynamic BSS addition/removal
test_ap_bss_add_remove verifies hostapd behavior when BSSes are
added/removed in multi-BSS configuration.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Thu, 31 Oct 2013 17:41:42 +0000 (19:41 +0200)]
Allow add-BSS operation to re-use existing netdev
When removing and re-adding the first wlan# netdev to hostapd
dynamically, the netdev is already present and should not be removed and
re-added to maintain its state as not-added-by-hostapd so that it does
not get removed automatically.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Thu, 17 Oct 2013 15:56:30 +0000 (18:56 +0300)]
hostapd: Allow a single BSS to be removed from an interface
The global control interface command "REMOVE <ifname>" can now be used
to remove a single virtual interface (BSS) without affecting other
virtual interfaces on the same radio.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Kyeyoon Park [Wed, 23 Oct 2013 07:10:22 +0000 (00:10 -0700)]
hostapd: Allow a single BSS to be added to an interface
The global control interface command "ADD
bss_config=<phyname>:<config file>" can now be used to add a single
virtual interface (BSS) to an interface.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Kyeyoon Park [Tue, 29 Oct 2013 14:29:49 +0000 (16:29 +0200)]
hostapd: Make hostapd_interface_init_bss() available externally
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Kyeyoon Park [Tue, 29 Oct 2013 14:27:30 +0000 (16:27 +0200)]
hostapd: Make hostapd_init() available externally
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Kyeyoon Park [Wed, 30 Oct 2013 23:34:32 +0000 (16:34 -0700)]
hostapd: Allow the first BSS in a multi-BSS setup to be removed
This moves the vif added check from core hostapd to the driver wrapper
(only driver_nl80211.c uses this) and reorders operations a bit to allow
the first BSS (vif) to be removed from a multi-BSS setup.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Kyeyoon Park [Wed, 30 Oct 2013 00:41:39 +0000 (17:41 -0700)]
nl80211: Make wpa_driver_nl80211_data::first_bss pointer
This is needed to allow the first BSS to be removed and replaced by the
next one in the list.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Thu, 31 Oct 2013 19:55:17 +0000 (21:55 +0200)]
nl80211: Fix monitor interface reference counting
The first user of monitor interface was not counted and that could
result in the monitor interface getting removed if the initial interface
was removed from a multi-BSS setup.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Thu, 31 Oct 2013 19:56:40 +0000 (21:56 +0200)]
nl80211: Add a debug print for DEL_BEACON
This is quite helpful in debugging beaconing issues.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Kyeyoon Park [Tue, 29 Oct 2013 14:32:23 +0000 (16:32 +0200)]
hostapd: Fix error path in hostapd_add_iface()
Incorrect count variable was used in freeing up the BSS data.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Helmut Schaa [Thu, 31 Oct 2013 12:54:55 +0000 (14:54 +0200)]
ACS: Do not get stuck while failing to do a subsequent scan
Return control flow to hostapd by calling hostapd_acs_completed()
if requesting a scan from the underlying device fails.
Signed-hostapd: Helmut Schaa <helmut.schaa@googlemail.com>
Michal Kazior [Thu, 31 Oct 2013 12:51:44 +0000 (14:51 +0200)]
DFS: Add support for multi-BSS
If radar was detected single BSS is notified about it. This caused only
that single BSS to be stopped and restarted. However, due to nl80211
interface combinations the BSS was not started on a new channel and
other BSSes remained operating on the old channel.
The downside is that hostapd_disable_iface() causes deauth frames to be
sent. This is undesired but on the other hand it doesn't make sense to
create workarounds that imitate CSA's 'block tx'. For proper Tx
quiescing CSA should be properly implemented.
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Michal Kazior [Thu, 31 Oct 2013 12:49:38 +0000 (14:49 +0200)]
DFS: Reset cac_started properly
If CAC was stopped but hostapd was not terminated cac_started would
remain set to 1.
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Michal Kazior [Thu, 31 Oct 2013 12:48:34 +0000 (14:48 +0200)]
DFS: Sanitize channel availability checks
Fixes corner case of holes in channel list and simplifies availability
checks.
Signed-hostap: Michal Kazior <michal.kazior@tieto.com>
Michal Kazior [Thu, 31 Oct 2013 12:46:09 +0000 (14:46 +0200)]
DFS: Fix HT40/VHT calculation
Decouple HT/VHT offset/center-freq calculations from channel lookup.
This will be necessary for further improvements on the DFS codebase.
Signed-hostap: Michal Kazior <michal.kazior@tieto.com>
Jouni Malinen [Thu, 31 Oct 2013 12:39:09 +0000 (14:39 +0200)]
tests: Remove separate error/failed text file
The new sqlite database for results deprecated this.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Thu, 31 Oct 2013 12:36:26 +0000 (14:36 +0200)]
tests: Remove separate results text file
The new sqlite database for results deprecated this.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Thu, 31 Oct 2013 12:27:57 +0000 (14:27 +0200)]
tests: Use a symlink for default LOGDIR between scripts
This allows run-tests.py to use the same logs/<date> default logdir as
start.sh which is quite convenient for manual test runs.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Thu, 31 Oct 2013 11:09:14 +0000 (13:09 +0200)]
tests: Split wpa_supplicant debug logs into per test case files
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Thu, 31 Oct 2013 10:46:42 +0000 (12:46 +0200)]
tests: Split run-tests.py logger info into per test case files
The run-tests.py -l argument does not take an argument value anymore.
Instead, debug output is directed to a separate file <test>.log for each
test case.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Thu, 31 Oct 2013 09:47:43 +0000 (11:47 +0200)]
tests: Remove the 'test_' prefix from test module names
This is unnecessary extra complexity for user, so use the 'test_' prefix
only internally within the python scripts and file names.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Thu, 31 Oct 2013 09:43:45 +0000 (11:43 +0200)]
tests: Remove the 'test_' prefix from test names
This is unnecessary extra complexity for user and reports, so use the
'test_' prefix only internally within the python scripts.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Thu, 31 Oct 2013 09:35:02 +0000 (11:35 +0200)]
tests: Replace tcpdump with wlantest file write
There is no need to run a separate tcpdump process to capture frames
from hwsim0 since wlantest is already doing that can write the results
to a file.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Thu, 31 Oct 2013 09:26:52 +0000 (11:26 +0200)]
tests: Remove last-debug creation
This file was used for adding debug info into the buildbot logs. The new
sqlite database-based design will replace that, so there is no need to
create last-debug and getting rid of it will make it easier to split the
run log into per-test case files.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Thu, 31 Oct 2013 08:43:02 +0000 (10:43 +0200)]
tests: Fix sqlite run column to be an integer
Commit
781b65cfbb444e2a479f2ea282879b5678235413 ended up accidentally
changing this from an integer to a string. Fix this by not converting
the variable into a string.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Johannes Berg [Wed, 30 Oct 2013 23:23:57 +0000 (00:23 +0100)]
hwsim tests: Add scripts to run in a VM
Instead of running on the host, it can be useful to run in a
VM, particularly to test kernel rather than userspace changes,
so add a few scripts that allow doing so easily.
The basic idea is that the VM kernel is the same architecture
as the host kernel, so the host's root filesystem can be used
(in read-only mode) to run everything. Only a log filesystem
is mounted read-write and will get all the test output.
The kernel console output is collected to a special 'console'
file in the logs directory and kernel crashes are detected.
Signed-hostap: Johannes Berg <johannes.berg@intel.com>
Johannes Berg [Wed, 30 Oct 2013 22:16:05 +0000 (23:16 +0100)]
hwsim tests: Silence chown warnings
If running in a VM with the logs going to a host filesystem
chown isn't actually possible, silence any warnings from it.
Signed-hostap: Johannes Berg <johannes.berg@intel.com>
Johannes Berg [Wed, 30 Oct 2013 22:14:55 +0000 (23:14 +0100)]
hwsim tests: Silence modprobe warnings
If module loading isn't enabled (e.g., in VM tests) then
don't try to load/unload the modules.
Signed-hostap: Johannes Berg <johannes.berg@intel.com>
Johannes Berg [Wed, 30 Oct 2013 21:53:29 +0000 (22:53 +0100)]
hwsim tests: Reset at the end of a test
Resetting at the beginning causes the reset logging/tracing
data to leak from the previous test into the next, and the
last one being missed at all - reset at the end of each run
instead. Also reset before all tests just in case running a
test actually crashed the python script.
Signed-hostap: Johannes Berg <johannes.berg@intel.com>
Johannes Berg [Wed, 30 Oct 2013 21:50:56 +0000 (22:50 +0100)]
hwsim tests: Allow collecting dmesg
In addition to tracing, allow collecting dmesg. There's no
provision for actually looking at it and finding problems
in it yet though.
Signed-hostap: Johannes Berg <johannes.berg@intel.com>
Johannes Berg [Wed, 30 Oct 2013 21:37:15 +0000 (22:37 +0100)]
hwsim tests: Pass --logdir to run-tests.py
Instead of passing the log directory for each option
(-l, -r, -e, and -T) pass it once and make the other
options just take the filename (optionally, even).
This will also make it easier to extend later.
Signed-hostap: Johannes Berg <johannes.berg@intel.com>
Johannes Berg [Wed, 30 Oct 2013 21:08:10 +0000 (22:08 +0100)]
hwsim tests: Move logging into timestamped subdirectory
Instead of logging many files called "<timestamp>-*", log into
a new "<timestamp>/*" in the logs/ subdirectory and only put
the last-debug file into logs/. If a LOGDIR is specified in the
environment, instead just put everything into that directory
(so the caller should make sure to give it a timestamp or so)
and skip the creation of last-debug entirely.
Also clean up a bit and pass the LOGDIR from run-all.sh to
start.sh rather than having start.sh create the timestamp and
run-all.sh detect the latest one when having run start.sh.
Signed-hostap: Johannes Berg <johannes.berg@intel.com>
Johannes Berg [Wed, 30 Oct 2013 20:05:24 +0000 (21:05 +0100)]
hwsim tests: Allow run-tests.py to start tracing
In order to get tracing per test, allow run-tests.py to start
and stop tracing per test case. This is implemented using a
python 'with' context so it starts/stops automatically at the
right spots.
Instead of starting global tracing, also use it from run-all.sh
and put the trace files into the log dir.
Note that this only works right if you use a separate log dir
for all test runs as the trace files aren't timestamped.
Signed-hostap: Johannes Berg <johannes.berg@intel.com>
Johannes Berg [Wed, 30 Oct 2013 18:29:58 +0000 (19:29 +0100)]
hostapd: Add -T Linux tracing option
Just like wpa_supplicant, give hostapd the -T option to
send all debug messages into the Linux tracing buffer.
Enable this option for hwsim test builds by default.
Signed-hostap: Johannes Berg <johannes.berg@intel.com>
Johannes Berg [Wed, 30 Oct 2013 18:01:56 +0000 (19:01 +0100)]
hwsim tests: Pass run-all arguments on
Allow run-all to pass on extra arguments from the command
line that aren't built by the script itself.
Signed-hostap: Johannes Berg <johannes.berg@intel.com>
Johannes Berg [Wed, 30 Oct 2013 19:01:11 +0000 (21:01 +0200)]
hwsim tests: Pass commit as an argument
Rather than saving the current commit to a file, pass it
as an argument to run-tests.py.
Signed-hostap: Johannes Berg <johannes.berg@intel.com>
Jouni Malinen [Wed, 30 Oct 2013 17:55:00 +0000 (19:55 +0200)]
tests: Silence chmod errors
These will fail if used on a readonly file system and are only needed
for valgrind runs.
Signed-hostap: Jouni Malinen <j@w1.fi>
Johannes Berg [Wed, 30 Oct 2013 17:49:12 +0000 (19:49 +0200)]
tests: Refactor run-all.sh
Reuse the code rather than duplicating the implementation
of starting the tests. To make that easier, allow passing
multiple modules with -f to run-tests.py.
Signed-hostap: Johannes Berg <johannes.berg@intel.com>
Johannes Berg [Wed, 30 Oct 2013 17:43:59 +0000 (19:43 +0200)]
tests: Reduce duplication in startup code
Instead of hard-coding four different cases, use variables
(and printf) to reduce the duplication.
Signed-hostap: Johannes Berg <johannes.berg@intel.com>
Johannes Berg [Wed, 30 Oct 2013 17:28:22 +0000 (19:28 +0200)]
tests: Use argparse module with hwsim
Instead of re-implementing a command-line parser, use the
argparse module.
The only real change (I hope) is that the test module must
now be given to the -f option without the .py suffix.
Also, --help now works, and if a test module/test name is
given that doesn't exist, the valid list is printed.
Signed-hostap: Johannes Berg <johannes.berg@intel.com>
Johannes Berg [Wed, 30 Oct 2013 17:20:07 +0000 (19:20 +0200)]
tests: Import sqlite3 only if used
Might help some systems that don't have/need it.
Signed-hostap: Johannes Berg <johannes.berg@intel.com>
Johannes Berg [Wed, 30 Oct 2013 17:19:07 +0000 (19:19 +0200)]
tests: Use proper SQL construction in hwsim test reporting
Don't construct SQL strings on the fly but instead use the
argument placeholders.
Signed-hostap: Johannes Berg <johannes.berg@intel.com>
Johannes Berg [Wed, 30 Oct 2013 13:55:58 +0000 (15:55 +0200)]
tests: Allow specifying LOGDIR for hwsim scripts
Instead of hardcoding logs/, allow putting LOGDIR into
the environment. This helps run tests in a VM where the
rootfs might be mounted read-only.
Signed-hostap: Johannes Berg <johannes.berg@intel.com>
Sunil Dutt [Wed, 30 Oct 2013 09:41:40 +0000 (11:41 +0200)]
Set GTK rekey offload information after initial group key handshake
The GTK rekey offload information was sent to the driver immediately
after the 4-way handshake which ended up being before the initial group
key exchange in the case of WPA (v1). This could result in even that
initial GTK handshake being offloaded and wpa_supplicant being left in
WPA_GROUP_HANDSHAKE state. Fix this by postponing the operation to
happen only after the full set of initial EAPOL-Key exchanges have been
completed (i.e., in the existing location for WPA2 and a after the group
key handshake for WPA).
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Tue, 29 Oct 2013 22:31:14 +0000 (00:31 +0200)]
tests: Enable verbose logger_stdout debug in hostapd
This makes hostapd debug logs more helpful for debugging.
Signed-hostap: Jouni Malinen <j@w1.fi>
Jouni Malinen [Tue, 29 Oct 2013 22:37:47 +0000 (00:37 +0200)]
nl80211: Add debug prints for NL80211_CMD_SET_STATION
Signed-hostap: Jouni Malinen <j@w1.fi>
Vinay Krishna Eranna [Tue, 29 Oct 2013 21:03:23 +0000 (23:03 +0200)]
Update regulatory change to all virtual interface for the phy
wpas_p2p_setup_channels function uses the per interface information
(wpa_s->hw.modes) for setting up the available channel list for P2P
operation, but if a separate P2P interface is used (e.g., p2p0 on
Android), the wpa_s instance for that interface may not get an updated
channel list. This can result in some operations, like "P2P_SET
disallow_freq", using old channel list information (e.g., world roaming
information with passive-scan/no-ibss flags) which was initialized
during the start-up. This could result in P2P functionality using
conflicting or obsolete channel information.
To resolve this issue, update channel list information on regulatory
change events to all of the virtual interfaces sharing the same phy for
which the event is received.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Tue, 29 Oct 2013 15:14:02 +0000 (17:14 +0200)]
tests: Add a test for dynamic hostapd config change
test_ap_change_ssid verifies that the SET and RELOAD control interface
commands can be used to change the SSID of a hostapd-controlled WPA2-PSK
AP, i.e., for a case where the PSK needs to be derived again after the
SSID change.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Tue, 29 Oct 2013 14:42:39 +0000 (16:42 +0200)]
hostapd: Validate configuration parameters on RELOAD command
Reject RELOAD control interface command if the dynamic configuration
changes have resulted into a state where the configuration is invalid.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Tue, 29 Oct 2013 14:40:12 +0000 (16:40 +0200)]
hostapd: Move generic configuration functions into src/ap
This allows the configuration validation routines to be called from
src/ap/*.c for runtime updates of configuration without reprocessing the
full configuration file.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Thu, 17 Oct 2013 14:41:26 +0000 (17:41 +0300)]
hostapd: Allow per-BSS (vif) configuration files
This provides a new option for configuring multiple virtual interfaces
(BSS) that share a single radio. The new command line parameter
-b<phyname>:<config file name> is used to define one or more virtual
interfaces for each PHY. The first such entry for a new PHY is used to
initialize the interface structure and all consecutive parameters that
have the same PHY name will be added as virtual BSS entries to that
interface. The radio parameters in the configuration files have to be
identical.
This can be used as an alternative for the bss=<ifname> separator and
multiple BSSes in a single configuration file design while still
allowing hostapd to control the PHY (struct hostapd_iface) as a group of
virtual interfaces (struct hostapd_data) so that common radio operations
like OLBC detection and HT40 co-ex scans can be done only once per real
radio.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Tue, 29 Oct 2013 14:23:23 +0000 (16:23 +0200)]
hostapd: Make hostapd_config::bss array of pointers
This makes it more convenient to move BSS configuration entries between
struct hostapd_config instances to clean up per-BSS configuration file
design.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Tue, 29 Oct 2013 14:55:15 +0000 (16:55 +0200)]
hostapd: Force PSK to be derived again on BSS reload
This may be needed if the wpa_psk information for previously derived
from passphrase and either the SSID or the passphrase has changed.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Tue, 29 Oct 2013 14:09:34 +0000 (16:09 +0200)]
hostapd: Reuse hostapd_clear_old() for RELOAD command
Instead of duplicating the functionality and missing changes (like the
hostapd_broadcast_wep_clear() call), use the hostapd_clear_old()
function that was already used for the similar case with configuration
file reload.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Dmitry Shmidt [Tue, 29 Oct 2013 12:40:15 +0000 (14:40 +0200)]
Android: Fix ARRAY_SIZE() compilation
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Jouni Malinen [Tue, 29 Oct 2013 12:38:31 +0000 (14:38 +0200)]
tests: Add Hotspot 2.0 test cases for connecting with username
The test_ap_hs20_username* test cases verify that a username/password
credential can be used for Hotspot 2.0 connection and that the network
type is reported correctly.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Tue, 29 Oct 2013 12:23:31 +0000 (14:23 +0200)]
tests: Add external_sim test cases with roaming network
test_ap_hs20_ext_sim_roaming is otherwise identical with
test_ap_hs20_ext_sim, but the network is operated by a roaming partner.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Tue, 29 Oct 2013 12:20:29 +0000 (14:20 +0200)]
tests: Add helper functions for Hotspot 2.0 test cases
These make it easier to add new test cases for Interworking network
selection.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Tue, 29 Oct 2013 11:57:33 +0000 (13:57 +0200)]
tests: Verify that STATUS sp_type is valid for Interworking
This verifies that the network type (home/roaming/unknown) is available
and set properly in the test_ap_hs20_ext_sim test case.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Tue, 29 Oct 2013 11:51:18 +0000 (13:51 +0200)]
Interworking: Report STATUS:sp_type even if domain is not configured
This allows sp_type={home,roaming,unknown} to be used to determine
network type with SIM-based credentials even if the domain name
parameter is not configured explicitly.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen [Sun, 27 Oct 2013 18:46:19 +0000 (20:46 +0200)]
P2P: Remove compiler warning without CONFIG_IEEE80211N
Commit
ca9bc5b5666a08c741ddd21c451ecb92aa33a11a added wpas_conf_ap_vht()
as a static function with the caller within CONFIG_IEEE80211N, but the
function outside. This resulted in a compiler warning for wpa_supplicant
AP/P2P builds when CONFIG_IEEE80211N=y was not used. Fix that by using
matching conditional block around the function.
Signed-hostap: Jouni Malinen <j@w1.fi>
Eliad Peller [Sun, 27 Oct 2013 18:08:36 +0000 (20:08 +0200)]
P2P: Add VHT support
Start GO with VHT support if VHT option was requested
and the appropriate channels are available.
Signed-hostap: Eliad Peller <eliadx.peller@intel.com>
Eliad Peller [Sun, 27 Oct 2013 17:46:17 +0000 (19:46 +0200)]
P2P: Add VHT parameter to P2P operations
Add the option to ask for VHT operation similarly to the way ht40 is
configured - either by adding 'vht' param to the relevant p2p_*
commands or by configuring p2p_go_vht=1 in the configuration file.
This patch only adds the configuration option (e.g., via control
interface). The actual handling of the VHT parameter (asking the driver
to use VHT, etc.) will be done by the following patch.
Signed-hostap: Eliad Peller <eliadx.peller@intel.com>
Eliad Peller [Sun, 27 Oct 2013 17:37:10 +0000 (19:37 +0200)]
nl80211: Mark VHT 80 MHz channels
Later on, we'll consider the availability of these
channels when starting P2P GO with VHT support.
Signed-hostap: Eliad Peller <eliadx.peller@intel.com>
Eliad Peller [Sun, 27 Oct 2013 17:32:03 +0000 (19:32 +0200)]
wpa_supplicant: Add CONFIG_IEEE80211AC
In order to support P2P GO with 11ac support, add CONFIG_IEEE80211AC
config option support to the Makefile.
Signed-hostap: Eliad Peller <eliadx.peller@intel.com>
Eliad Peller [Sun, 27 Oct 2013 17:28:40 +0000 (19:28 +0200)]
hostapd: Mask out not-supported VHT capabilities
Mask the remote VHT capabilities with our own capabilities, similarly
to what is done for HT capabilities.
Signed-hostap: Eliad Peller <eliadx.peller@intel.com>
Eliad Peller [Sun, 27 Oct 2013 17:17:23 +0000 (19:17 +0200)]
hostapd: Verify VHT 160/80+80 MHz driver support
Make sure the driver supports 160/80+80 MHz VHT capabilities
before trying to configure these channels.
Signed-hostap: Eliad Peller <eliadx.peller@intel.com>
Eliad Peller [Sun, 27 Oct 2013 17:11:29 +0000 (19:11 +0200)]
hostapd: Verify VHT capabilities are supported by driver
Make sure the defined VHT capabilities are supported by the driver.
Signed-hostap: Eliad Peller <eliadx.peller@intel.com>
Eliad Peller [Sun, 27 Oct 2013 17:05:58 +0000 (19:05 +0200)]
Fix some VHT Capabilities definitions
VHT_CAP_BEAMFORMEE_STS_MAX, VHT_CAP_SOUNDING_DIMENSION_OFFSET, and
VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT were not defined properly (wrong
name/size). Fix that and update the hostapd.conf parsing accordingly.
Signed-hostap: Eliad Peller <eliadx.peller@intel.com>
Eliad Peller [Sun, 27 Oct 2013 16:59:37 +0000 (18:59 +0200)]
hostapd: Fix wrong VHT configuration capabilities flags
Wrong capabilities flags were used when certain VHT
capabilities were defined.
Signed-hostap: Eliad Peller <eliadx.peller@intel.com>
Helmut Schaa [Sun, 27 Oct 2013 16:42:16 +0000 (18:42 +0200)]
nl80211: Use max tx power from regulatory domain
Previously the Country element contained the max TX power the local
hardware was capable of. Change this to just use the regulatory limit.
Signed-hostap: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Johannes Berg [Sun, 27 Oct 2013 16:28:28 +0000 (18:28 +0200)]
tests: Do not require wpaspy installation
Since the scripts must be run from the source directory to
find the tests to run, they can use a relative path to the
wpaspy module instead of requiring it to be installed.
Signed-hostap: Johannes Berg <johannes.berg@intel.com>
Jouni Malinen [Sun, 27 Oct 2013 15:58:12 +0000 (17:58 +0200)]
nl80211: Replace perror() and printf() calls with wpa_printf()
This avoids use of stderr and makes debug messages more consistent.
Signed-hostap: Jouni Malinen <j@w1.fi>
Jouni Malinen [Sun, 27 Oct 2013 10:56:56 +0000 (12:56 +0200)]
WPS: Clear known_wps_freq in addition to after_wps
Both of these variables can result in optimized WPS scans, so better
clear these more consistently to avoid unexpected single-channel scans.
Signed-hostap: Jouni Malinen <j@w1.fi>
Jouni Malinen [Sun, 27 Oct 2013 10:55:09 +0000 (12:55 +0200)]
Interworking: Clear known_wps_freq for network selection
This was forgotten from the previous commit which allowed some cases to
trigger single-channel scan incorrectly if an optimized WPS scan had not
yet been completed at the time network selection was started.
Signed-hostap: Jouni Malinen <j@w1.fi>
Jouni Malinen [Sun, 27 Oct 2013 10:16:36 +0000 (12:16 +0200)]
tests: Allow test case descriptions to be written into database
"run-tests.py -S <db file> -L" can now be used to update a database
table with the current set of test cases and their descriptions.
Signed-hostap: Jouni Malinen <j@w1.fi>
Jouni Malinen [Sun, 27 Oct 2013 09:26:58 +0000 (11:26 +0200)]
Interworking: Force normal scan for network selection
Make sure special optimized scans (like WPS-single-channel or
sched_scan) do not get used during the network selection scan. This
could have been hit in cases where a previous operation has been stopped
in a state where special scan parameters were going to be used.
Signed-hostap: Jouni Malinen <j@w1.fi>
Jouni Malinen [Sat, 26 Oct 2013 22:05:45 +0000 (01:05 +0300)]
tests: Add support for sqlite results database
This is more convenient to use directly than going through the
text-based results file.
Signed-hostap: Jouni Malinen <j@w1.fi>
Jouni Malinen [Sat, 26 Oct 2013 21:08:51 +0000 (00:08 +0300)]
tests: Unload cfg80211 on stop-wifi.sh
cfg80211 may keep some state (e.g., regulatory domain), so make sure
this gets cleared between each full testing cycle.
Signed-hostap: Jouni Malinen <j@w1.fi>
Jouni Malinen [Sat, 26 Oct 2013 18:50:44 +0000 (21:50 +0300)]
tests: Add P2P channel selection test cases for group re-invocation
Signed-hostap: Jouni Malinen <j@w1.fi>
Jouni Malinen [Sat, 26 Oct 2013 18:02:42 +0000 (21:02 +0300)]
tests: Add P2P channel selection test cases with world roaming
This verifies that passive scan 5 GHz channels are not selected with and
without p2p_add_cli_chan=1.
Signed-hostap: Jouni Malinen <j@w1.fi>