mech_eap.git
10 years agotests: Rename stop-wifi.sh to stop.sh
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>

10 years agotests: Simplify test_ap_bss_add_remove implementation
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>

10 years agotests: Use a helper function to rename wpa_supplicant/hostapd logs
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>

10 years agoConvert perror/printf calls to wpa_printf
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>

10 years agotests: Always write run-tests.py debug logs a file
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>

10 years agotests: Split hostapd debug log into per test case files
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>

10 years agohostapd: Accept RELOG from global control interface
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>

10 years agohostapd: Use wpa_printf() for hostapd_logger() to stdout
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>

10 years agotests: Ignore old scan results in test_grpform_pbc
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>

10 years agotests: Use single channel scans to speed up test cases
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>

10 years agotests: Add run-tests.py --shuffle-test
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>

10 years agohwsim tests: Add build script
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>
10 years agohwsim tests: Prefill database in VM tests
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>

10 years agohwsim tests: Create results database in VM tests
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>

10 years agohwsim tests: Refactor test results reporting
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>

10 years agohwsim tests: Allow setting KERNEL and KVMARGS
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>

10 years agoP2P: Clear pending group formation data on group removal
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>

10 years agoP2P: Debug print reason for specific SSID for scan
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>

10 years agotests: Test dynamic BSS addition/removal
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>

10 years agoAllow add-BSS operation to re-use existing netdev
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>

10 years agohostapd: Allow a single BSS to be removed from an interface
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>

10 years agohostapd: Allow a single BSS to be added to an interface
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>

10 years agohostapd: Make hostapd_interface_init_bss() available externally
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>

10 years agohostapd: Make hostapd_init() available externally
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>

10 years agohostapd: Allow the first BSS in a multi-BSS setup to be removed
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>

10 years agonl80211: Make wpa_driver_nl80211_data::first_bss pointer
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>

10 years agonl80211: Fix monitor interface reference counting
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>

10 years agonl80211: Add a debug print for DEL_BEACON
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>

10 years agohostapd: Fix error path in hostapd_add_iface()
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>

10 years agoACS: Do not get stuck while failing to do a subsequent scan
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>

10 years agoDFS: Add support for multi-BSS
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>
10 years agoDFS: Reset cac_started properly
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>
10 years agoDFS: Sanitize channel availability checks
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>

10 years agoDFS: Fix HT40/VHT calculation
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>

10 years agotests: Remove separate error/failed text file
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>

10 years agotests: Remove separate results text file
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>

10 years agotests: Use a symlink for default LOGDIR between scripts
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>

10 years agotests: Split wpa_supplicant debug logs into per test case files
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>

10 years agotests: Split run-tests.py logger info into per test case files
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>

10 years agotests: Remove the 'test_' prefix from test module names
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>

10 years agotests: Remove the 'test_' prefix from test names
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>

10 years agotests: Replace tcpdump with wlantest file write
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>

10 years agotests: Remove last-debug creation
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>

10 years agotests: Fix sqlite run column to be an integer
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>

10 years agohwsim tests: Add scripts to run in a VM
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>

10 years agohwsim tests: Silence chown warnings
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>

10 years agohwsim tests: Silence modprobe warnings
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>

10 years agohwsim tests: Reset at the end of a test
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>

10 years agohwsim tests: Allow collecting dmesg
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>

10 years agohwsim tests: Pass --logdir to run-tests.py
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>

10 years agohwsim tests: Move logging into timestamped subdirectory
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>

10 years agohwsim tests: Allow run-tests.py to start tracing
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>

10 years agohostapd: Add -T Linux tracing option
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>

10 years agohwsim tests: Pass run-all arguments on
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>

10 years agohwsim tests: Pass commit as an argument
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>

10 years agotests: Silence chmod errors
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>

10 years agotests: Refactor run-all.sh
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>

10 years agotests: Reduce duplication in startup code
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>

10 years agotests: Use argparse module with hwsim
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>

10 years agotests: Import sqlite3 only if used
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>

10 years agotests: Use proper SQL construction in hwsim test reporting
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>

10 years agotests: Allow specifying LOGDIR for hwsim scripts
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>

10 years agoSet GTK rekey offload information after initial group key handshake
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>

10 years agotests: Enable verbose logger_stdout debug in hostapd
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>

10 years agonl80211: Add debug prints for NL80211_CMD_SET_STATION
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>

10 years agoUpdate regulatory change to all virtual interface for the phy
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>

10 years agotests: Add a test for dynamic hostapd config change
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>

10 years agohostapd: Validate configuration parameters on RELOAD command
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>

10 years agohostapd: Move generic configuration functions into src/ap
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>

10 years agohostapd: Allow per-BSS (vif) configuration files
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>

10 years agohostapd: Make hostapd_config::bss array of pointers
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>

10 years agohostapd: Force PSK to be derived again on BSS reload
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>

10 years agohostapd: Reuse hostapd_clear_old() for RELOAD command
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>

10 years agoAndroid: Fix ARRAY_SIZE() compilation
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>
10 years agotests: Add Hotspot 2.0 test cases for connecting with username
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>

10 years agotests: Add external_sim test cases with roaming network
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>

10 years agotests: Add helper functions for Hotspot 2.0 test cases
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>

10 years agotests: Verify that STATUS sp_type is valid for Interworking
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>

10 years agoInterworking: Report STATUS:sp_type even if domain is not configured
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>

10 years agoP2P: Remove compiler warning without CONFIG_IEEE80211N
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>

10 years agoP2P: Add VHT support
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>

10 years agoP2P: Add VHT parameter to P2P operations
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>

10 years agonl80211: Mark VHT 80 MHz channels
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>

10 years agowpa_supplicant: Add CONFIG_IEEE80211AC
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>

10 years agohostapd: Mask out not-supported VHT capabilities
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>

10 years agohostapd: Verify VHT 160/80+80 MHz driver support
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>

10 years agohostapd: Verify VHT capabilities are supported by driver
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>

10 years agoFix some VHT Capabilities definitions
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>

10 years agohostapd: Fix wrong VHT configuration capabilities flags
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>

10 years agonl80211: Use max tx power from regulatory domain
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>
10 years agotests: Do not require wpaspy installation
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>

10 years agonl80211: Replace perror() and printf() calls with wpa_printf()
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>

10 years agoWPS: Clear known_wps_freq in addition to after_wps
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>

10 years agoInterworking: Clear known_wps_freq for network selection
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>

10 years agotests: Allow test case descriptions to be written into database
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>

10 years agoInterworking: Force normal scan for network selection
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>

10 years agotests: Add support for sqlite results database
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>

10 years agotests: Unload cfg80211 on stop-wifi.sh
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>

10 years agotests: Add P2P channel selection test cases for group re-invocation
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>

10 years agotests: Add P2P channel selection test cases with world roaming
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>