1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- /**
- \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
- */
|