]> git.ipfire.org Git - thirdparty/hostap.git/blame - doc/mainpage.doxygen
tests: sigma_dut controlled STA and beacon protection
[thirdparty/hostap.git] / doc / mainpage.doxygen
CommitLineData
30c28971
JM
1/**
2\mainpage Developers' documentation for wpa_supplicant and hostapd
3
4The goal of this documentation and comments in the source code is to
5give enough information for other developers to understand how
5eb513c3 6wpa_supplicant and hostapd have been implemented, how they can be
30c28971
JM
7modified, how new drivers can be supported, and how the source code
8can be ported to other operating systems. If any information is
9missing, feel free to contact Jouni Malinen <j@w1.fi> for more
10information. Contributions as patch files are also very welcome at the
331f89ff
JM
11same address. Please note that this software is licensed under the
12BSD license (the one with advertisement clause removed). All
5eb513c3 13contributions to wpa_supplicant and hostapd are expected to use
331f89ff 14compatible licensing terms.
30c28971 15
5eb513c3 16The source code and read-only access to the combined wpa_supplicant
30c28971
JM
17and hostapd Git repository is available from the project home page at
18http://w1.fi/wpa_supplicant/. This developers' documentation is also
19available as a PDF file from
20http://w1.fi/wpa_supplicant/wpa_supplicant-devel.pdf .
21
22
7c4e9211 23\section _wpa_supplicant wpa_supplicant
30c28971 24
5eb513c3 25wpa_supplicant is a WPA Supplicant for Linux, BSD and Windows with
30c28971
JM
26support for WPA and WPA2 (IEEE 802.11i / RSN). Supplicant is the IEEE
27802.1X/WPA component that is used in the client stations. It
28implements key negotiation with a WPA Authenticator and it can optionally
29control roaming and IEEE 802.11 authentication/association of the wlan
30driver.
31
5eb513c3 32The design goal for wpa_supplicant was to use hardware, driver, and
30c28971
JM
33OS independent, portable C code for all WPA functionality. The source
34code is divided into separate C files as shown on the \ref
35code_structure "code structure page". All hardware/driver specific
36functionality is in separate files that implement a \ref
37driver_wrapper "well-defined driver API". Information about porting
38to different target boards and operating systems is available on
39the \ref porting "porting page".
40
41EAPOL (IEEE 802.1X) state machines are implemented as a separate
84a690ed 42module that interacts with \ref eap_peer_module "EAP peer implementation".
30c28971 43In addition to programs aimed at normal production use,
5eb513c3 44wpa_supplicant source tree includes number of \ref testing_tools
30c28971
JM
45"testing and development tools" that make it easier to test the
46programs without having to setup a full test setup with wireless
47cards. These tools can also be used to implement automatic test
48suites.
49
5eb513c3 50wpa_supplicant implements a
30c28971 51\ref ctrl_iface_page "control interface" that can be used by
5eb513c3 52external programs to control the operations of the wpa_supplicant
30c28971
JM
53daemon and to get status information and event notifications. There is
54a small C library that provides helper functions to facilitate the use of the
55control interface. This library can also be used with C++.
56
7c4e9211
JM
57\image html _wpa_supplicant.png "wpa_supplicant modules"
58\image latex _wpa_supplicant.eps "wpa_supplicant modules" width=15cm
30c28971
JM
59
60
7c4e9211 61\section _hostapd hostapd
30c28971
JM
62
63hostapd includes IEEE 802.11 access point management (authentication /
64association), IEEE 802.1X/WPA/WPA2 Authenticator, EAP server, and
65RADIUS authentication server functionality. It can be build with
66various configuration option, e.g., a standalone AP management
67solution or a RADIUS authentication server with support for number of
68EAP methods.
69
70The design goal for hostapd was to use hardware, driver, and
71OS independent, portable C code for all WPA functionality. The source
72code is divided into separate C files as shown on the \ref
73code_structure "code structure page". All hardware/driver specific
74functionality is in separate files that implement a \ref
75driver_wrapper "well-defined driver API". Information about porting
76to different target boards and operating systems is available on
77the \ref porting "porting page".
78
79EAPOL (IEEE 802.1X) state machines are implemented as a separate
84a690ed 80module that interacts with \ref eap_server_module "EAP server implementation".
30c28971
JM
81Similarly, RADIUS authentication server is in its own separate module.
82Both IEEE 802.1X and RADIUS authentication server can use EAP server
83functionality.
84
85hostapd implements a \ref hostapd_ctrl_iface_page "control interface"
86that can be used by external programs to control the operations of the
87hostapdt daemon and to get status information and event notifications.
88There is a small C library that provides helper functions to facilitate
89the use of the control interface. This library can also be used with
90C++.
91
92\image html hostapd.png "hostapd modules"
93\image latex hostapd.eps "hostapd modules" width=15cm
94
95*/