5eb513c3ba
The way autolink support is implementing in Doxygen is a bit inconvenient with wpa_supplicant being recognized as something that would always be linked to struct wpa_supplicant. In addition, number of links were not really noticed automatically. To get this working more robustly and without having to use the %wpa_supplicant workaround (which had its own issues, e.g., with titles), disable autolinking and use explicit \ref commands instead. This is also updating some of the obsolete notes to point to correct file names, etc. changes in the source code tree. Signed-off-by: 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
|
|
|
|
*/
|