69 lines
2.8 KiB
Plaintext
69 lines
2.8 KiB
Plaintext
|
mac80211_hwsim - software simulator of 802.11 radio(s) for mac80211
|
||
|
Copyright (c) 2008, Jouni Malinen <j@w1.fi>
|
||
|
|
||
|
This program is free software; you can redistribute it and/or modify
|
||
|
it under the terms of the GNU General Public License version 2 as
|
||
|
published by the Free Software Foundation.
|
||
|
|
||
|
|
||
|
Introduction
|
||
|
|
||
|
mac80211_hwsim is a Linux kernel module that can be used to simulate
|
||
|
arbitrary number of IEEE 802.11 radios for mac80211 on a single
|
||
|
device. It can be used to test most of the mac80211 functionality and
|
||
|
user space tools (e.g., hostapd and wpa_supplicant) in a way that
|
||
|
matches very closely with the normal case of using real WLAN
|
||
|
hardware. From the mac80211 view point, mac80211_hwsim is yet another
|
||
|
hardware driver, i.e., no changes to mac80211 are needed to use this
|
||
|
testing tool.
|
||
|
|
||
|
The main goal for mac80211_hwsim is to make it easier for developers
|
||
|
to test their code and work with new features to mac80211, hostapd,
|
||
|
and wpa_supplicant. The simulated radios do not have the limitations
|
||
|
of real hardware, so it is easy to generate an arbitrary test setup
|
||
|
and always reproduce the same setup for future tests. In addition,
|
||
|
since all radio operation is simulated, any channel can be used in
|
||
|
tests regardless of regulatory rules.
|
||
|
|
||
|
mac80211_hwsim kernel module has a parameter 'radios' that can be used
|
||
|
to select how many radios are simulates (default 2). This allows
|
||
|
configuration of both very simply setups (e.g., just a single access
|
||
|
point and a station) or large scale tests (multiple access points with
|
||
|
hundreds of stations).
|
||
|
|
||
|
mac80211_hwsim works by tracking the current channel of each virtual
|
||
|
radio and copying all transmitted frames to all other radios that are
|
||
|
currently enabled and on the same channel as the transmitting
|
||
|
radio. Software encryption in mac80211 is used so that the frames are
|
||
|
actually encrypted over the virtual air interface to allow more
|
||
|
complete testing of encryption.
|
||
|
|
||
|
A global monitoring netdev, hwsim#, is created independent of
|
||
|
mac80211. This interface can be used to monitor all transmitted frames
|
||
|
regardless of channel.
|
||
|
|
||
|
|
||
|
Simple example
|
||
|
|
||
|
This example shows how to use mac80211_hwsim to simulate two radios:
|
||
|
one to act as an access point and the other as a station that
|
||
|
associates with the AP. hostapd and wpa_supplicant are used to take
|
||
|
care of WPA2-PSK authentication. In addition, hostapd is also
|
||
|
processing access point side of association.
|
||
|
|
||
|
Please note that the current Linux kernel does not enable AP mode, so a
|
||
|
simple patch is needed to enable AP mode selection:
|
||
|
http://johannes.sipsolutions.net/patches/kernel/all/LATEST/006-allow-ap-vlan-modes.patch
|
||
|
|
||
|
|
||
|
# Build mac80211_hwsim as part of kernel configuration
|
||
|
|
||
|
# Load the module
|
||
|
modprobe mac80211_hwsim
|
||
|
|
||
|
# Run hostapd (AP) for wlan0
|
||
|
hostapd hostapd.conf
|
||
|
|
||
|
# Run wpa_supplicant (station) for wlan1
|
||
|
wpa_supplicant -Dwext -iwlan1 -c wpa_supplicant.conf
|