331f89ff5b
Simplify licensing terms for hostap.git by selecting the BSD license alternative for any future distribution. This drops the GPL v2 alternative from distribution terms and from contribution requirements. The BSD license alternative that has been used in hostap.git (the one with advertisement clause removed) is compatible with GPL and as such the software in hostap.git can still be used with GPL projects. In addition, any new contribution to hostap.git is expected to be licensed under the BSD terms that allow the changes to be merged into older hostap repositories that still include the GPL v2 alternative. Signed-hostap: Jouni Malinen <j@w1.fi>
95 lines
4.4 KiB
Text
95 lines
4.4 KiB
Text
/**
|
|
\mainpage Developers' documentation for wpa_supplicant and hostapd
|
|
|
|
The goal of this documentation and comments in the source code is to
|
|
give enough information for other developers to understand how
|
|
%wpa_supplicant and hostapd have been implemented, how they can be
|
|
modified, how new drivers can be supported, and how the source code
|
|
can be ported to other operating systems. If any information is
|
|
missing, feel free to contact Jouni Malinen <j@w1.fi> for more
|
|
information. Contributions as patch files are also very welcome at the
|
|
same address. Please note that this software is licensed under the
|
|
BSD license (the one with advertisement clause removed). All
|
|
contributions to %wpa_supplicant and hostapd are expected to use
|
|
compatible licensing terms.
|
|
|
|
The source code and read-only access to the combined %wpa_supplicant
|
|
and hostapd Git repository is available from the project home page at
|
|
http://w1.fi/wpa_supplicant/. This developers' documentation is also
|
|
available as a PDF file from
|
|
http://w1.fi/wpa_supplicant/wpa_supplicant-devel.pdf .
|
|
|
|
|
|
\section wpa_supplicant wpa_supplicant
|
|
|
|
%wpa_supplicant is a WPA Supplicant for Linux, BSD and Windows with
|
|
support for WPA and WPA2 (IEEE 802.11i / RSN). Supplicant is the IEEE
|
|
802.1X/WPA component that is used in the client stations. It
|
|
implements key negotiation with a WPA Authenticator and it can optionally
|
|
control roaming and IEEE 802.11 authentication/association of the wlan
|
|
driver.
|
|
|
|
The design goal for %wpa_supplicant was to use hardware, driver, and
|
|
OS independent, portable C code for all WPA functionality. The source
|
|
code is divided into separate C files as shown on the \ref
|
|
code_structure "code structure page". All hardware/driver specific
|
|
functionality is in separate files that implement a \ref
|
|
driver_wrapper "well-defined driver API". Information about porting
|
|
to different target boards and operating systems is available on
|
|
the \ref porting "porting page".
|
|
|
|
EAPOL (IEEE 802.1X) state machines are implemented as a separate
|
|
module that interacts with \ref eap_peer_module "EAP peer implementation".
|
|
In addition to programs aimed at normal production use,
|
|
%wpa_supplicant source tree includes number of \ref testing_tools
|
|
"testing and development tools" that make it easier to test the
|
|
programs without having to setup a full test setup with wireless
|
|
cards. These tools can also be used to implement automatic test
|
|
suites.
|
|
|
|
%wpa_supplicant implements a
|
|
\ref ctrl_iface_page "control interface" that can be used by
|
|
external programs to control the operations of the %wpa_supplicant
|
|
daemon and to get status information and event notifications. There is
|
|
a small C library that provides helper functions to facilitate the use of the
|
|
control interface. This library can also be used with C++.
|
|
|
|
\image html wpa_supplicant.png "wpa_supplicant modules"
|
|
\image latex wpa_supplicant.eps "wpa_supplicant modules" width=15cm
|
|
|
|
|
|
\section hostapd hostapd
|
|
|
|
hostapd includes IEEE 802.11 access point management (authentication /
|
|
association), IEEE 802.1X/WPA/WPA2 Authenticator, EAP server, and
|
|
RADIUS authentication server functionality. It can be build with
|
|
various configuration option, e.g., a standalone AP management
|
|
solution or a RADIUS authentication server with support for number of
|
|
EAP methods.
|
|
|
|
The design goal for hostapd was to use hardware, driver, and
|
|
OS independent, portable C code for all WPA functionality. The source
|
|
code is divided into separate C files as shown on the \ref
|
|
code_structure "code structure page". All hardware/driver specific
|
|
functionality is in separate files that implement a \ref
|
|
driver_wrapper "well-defined driver API". Information about porting
|
|
to different target boards and operating systems is available on
|
|
the \ref porting "porting page".
|
|
|
|
EAPOL (IEEE 802.1X) state machines are implemented as a separate
|
|
module that interacts with \ref eap_server_module "EAP server implementation".
|
|
Similarly, RADIUS authentication server is in its own separate module.
|
|
Both IEEE 802.1X and RADIUS authentication server can use EAP server
|
|
functionality.
|
|
|
|
hostapd implements a \ref hostapd_ctrl_iface_page "control interface"
|
|
that can be used by external programs to control the operations of the
|
|
hostapdt daemon and to get status information and event notifications.
|
|
There is a small C library that provides helper functions to facilitate
|
|
the use of the control interface. This library can also be used with
|
|
C++.
|
|
|
|
\image html hostapd.png "hostapd modules"
|
|
\image latex hostapd.eps "hostapd modules" width=15cm
|
|
|
|
*/
|