3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-12-27 10:42:52 +01:00
The iNet Wireless Daemon (iwd) project aims to provide a comprehensive Wi-Fi connectivity solution for Linux based devices. The core goal of the project is to optimize resource utilization: storage, runtime memory and link-time costs. https://iwd.wiki.kernel.org/
Go to file
Andrew Zaborowski 7b45ad220d test-runner: Fix the has_virt flag usage
Use the same machine type regardless of has_virt: q35 with accelerators
list set to kvm:tcg, this will use KVM if available and fall back to TCG
if not available so there's no point checking has_virt.  We can't
reliably know if KVM is usable anyway: even if the CPU has the
virtualization extensions, the support might not be enabled in the QEMU
build or there may be no kernel module or we may be calling a different
qemu executable than the one supporting KVM.

Set CPU type to "host" if KVM available and "max" otherwise because
"host" is not supported without KVM.  We actually want to emulate the
host CPU as closely as possible so that host executables can run even if
optimized for the specific CPU.  "max" seems to be the new way (since
Feb only) to request "host" cpu without KVM.  It seems that the idea is
for "max" to become same as "host" if KVM is enabled so at some point we
will want to switch to using "max" in both cases.

The "level=9" flag seems to have been an error, there's no CPU with
cpuid max level of 9 and I can't see the purpose of setting the cpuid
level other than the host cpu's level.

-enable-kvm is redundant with accel=kvm:tcg in current qemu.

Again I'm not able to test this patch on a cpu that would be affected
by it but I hope this fixes some situations which are currently broken
anyway.
2017-05-16 15:56:06 -05:00
autotests autotests: Add IWD.wait utility for sleeping inside tests 2017-05-16 15:29:53 -05:00
client client: fix display completion leak 2017-05-12 17:46:44 -05:00
doc doc: add hostapd libnl32 option 2017-04-20 12:46:05 -05:00
linux linux: update nl80211.h to 4.12-rc1 2017-05-16 14:33:18 -05:00
monitor monitor: Receive Preauthentication frames and log them 2017-04-18 11:43:59 -05:00
src handshake: Fix valgrind warning 2017-05-15 15:23:03 -05:00
test test: Use StartPin in wps-pin 2017-02-22 17:11:42 -06:00
tools test-runner: Fix the has_virt flag usage 2017-05-16 15:56:06 -05:00
unit unit: Update tests to pass ETH_P_PAE to __eapol_rx_packet 2017-04-18 11:43:19 -05:00
.gitignore unit: Add tests for eap-mschapv2 functions 2016-12-14 22:47:00 -06:00
acinclude.m4 autotools: Only use -Wcast-align with gcc 2016-12-19 11:02:50 -06:00
AUTHORS AUTHORS: Mention Tim's contributions 2017-01-10 16:14:42 -06:00
bootstrap build: Add support for internal ELL compilation 2014-05-11 11:01:11 -07:00
bootstrap-configure configure: introduce dbusconfdir 2017-05-04 18:03:08 -05:00
ChangeLog build: Add ChangeLog file to satisfy distribution requirements 2014-05-22 19:53:56 -07:00
configure.ac configure: introduce dbusconfdir 2017-05-04 18:03:08 -05:00
COPYING build: Add COPYING and INSTALL template files 2014-05-22 10:09:24 -07:00
HACKING HACKING: Add Submitting Patches section 2015-01-22 08:53:10 -06:00
INSTALL build: Add COPYING and INSTALL template files 2014-05-22 10:09:24 -07:00
Makefile.am Makefile: install iwd-dbus.conf 2017-05-04 18:03:13 -05:00
README README: Fix typo 2017-03-21 15:42:30 -05:00
TODO TODO: Add PBC session overlap enhancement task 2017-01-17 18:20:50 -06:00

Wireless daemon for Linux
*************************

Copyright (C) 2013-2014  Intel Corporation. All rights reserved.


Compilation and installation
============================

In order to compile the source code you need following software packages:
	- GCC compiler
	- GNU C library
	- Embedded Linux library

To configure run:
	./configure --prefix=/usr

Configure automatically searches for all required components and packages.

To compile and install run:
	make && make install


Embedded Linux library
======================

In order to compile the daemon and control utility the development version
of Embedded Linux library is required to be present. The development
repositories can be found here:

	git://git.kernel.org/pub/scm/libs/ell/ell.git
	https://kernel.googlesource.com/pub/scm/libs/ell/ell.git

The build systems requires that the Embedded Linux library source code
is available on the same top level directory as the Wireless daemon
source code:

	.
	|--- ell
	|    |--- ell
	|    `--- unit
	`--- iwd
	     |--- src
	     `--- client

It is not required to build or install Embedded Linux library. The build
will happen when building the Wireless daemon and it will then be linked
internally.


Netlink monitoring
==================

The included iwmon utility can be used to monitor the 802.11 subsystem
generic netlink commands and events. It uses the nlmon kernel driver
from Linux 3.10 and later. On startup network monitor interface named
named 'nlmon' is created unless another interface name is given on the
command line. If the monitor interface was created by the iwmon utility,
it will be removed on program exit.

Manually the monitor interface can be created using the following
commands:

	ip link add name nlmon type nlmon
	ip link set dev nlmon allmulticast on
	ip link set dev nlmon up

It is possible to create netlink traces in PCAP format using tcpdump
and then read them via iwmon utility:

	tcpdump -i nlmon -w trace-file.pcap

The resulting PCAP files will use Linux cooked packet format containing
packets with ARPHRD_NETLINK type. They can be read using iwmon:

	iwmon -r trace-file.pcap

At this time iwmon is not able to write PCAP files by itself. This might
change in future versions.

When also the authentication protocol traffic on port 0x888e (ETH_P_PAE)
is needed, then a second capture is required:

	tcpdump -i any 'ether proto 0x888e' -w trace-pae.pcap

It is possible to combine these two PCAP files using the mergecap utility
and create a combined trace file:

	mergecap -F pcap -w trace.pcap trace-file.pcap trace-pae.pcap

This will create a trace.pcap file that includes the complete picture
of nl80211 netlink traffic and authentication messages. All packets are
merged in chronological order based on timestamps.

Unfortunately it is not possible to instruct tcpdump filtering to do
this in a single capture. Post-processing of the PCAP files is required
at the moment.


Simulating devices
==================

The Linux driver mac80211_hwsim provides the functionality to simulate
Wireless devices using fake virtual air. Just load the module.

	modprobe mac80211_hwsim radios=0

Providing the radios=0 is important since otherwise it starts out with
two new Wireless radios by default.

With the provided hwsim utility it is now possible to add and remove
virtual radio devices.

	hwsim --create --keep
	hwsim --destroy=<radio-id>

The radio id assigned to each virtual device is its internal id used
by the Wireless device.


Information
===========

Mailing list:
	https://lists.01.org/mailman/listinfo/iwd

IRC:
	irc://irc.freenode.net/#iwd